Package com.tnsai.fsm

Class StateMachineVisualizer

java.lang.Object
com.tnsai.fsm.StateMachineVisualizer

public final class StateMachineVisualizer extends Object
Generates visual representations of state machines.

Supports export to Mermaid and Graphviz (DOT) formats for documentation and debugging purposes.

Usage


 StateMachine sm = ...; // your state machine

 // Export to Mermaid
 String mermaid = StateMachineVisualizer.toMermaid(sm);
 System.out.println(mermaid);
 // Output:
 // stateDiagram-v2
 //     [*] --> IDLE
 //     IDLE --> PROCESSING : START
 //     PROCESSING --> COMPLETED : FINISH
 //     COMPLETED --> [*]

 // Export to Graphviz DOT
 String dot = StateMachineVisualizer.toDot(sm);
 System.out.println(dot);

 // Save to file
 Files.writeString(Path.of("workflow.mmd"), mermaid);
 
  • Method Details

    • toMermaid

      public static String toMermaid(StateMachine stateMachine)
      Generates Mermaid state diagram syntax.
      Parameters:
      stateMachine - the state machine
      Returns:
      Mermaid diagram string
    • toMermaid

      public static String toMermaid(StateMachine stateMachine, StateMachineVisualizer.MermaidOptions options)
      Generates Mermaid state diagram syntax with options.
      Parameters:
      stateMachine - the state machine
      options - visualization options
      Returns:
      Mermaid diagram string
    • toDot

      public static String toDot(StateMachine stateMachine)
      Generates Graphviz DOT syntax.
      Parameters:
      stateMachine - the state machine
      Returns:
      DOT graph string
    • toDot

      public static String toDot(StateMachine stateMachine, StateMachineVisualizer.DotOptions options)
      Generates Graphviz DOT syntax with options.
      Parameters:
      stateMachine - the state machine
      options - visualization options
      Returns:
      DOT graph string
    • toText

      public static String toText(StateMachine stateMachine)
      Generates a simple text representation.
      Parameters:
      stateMachine - the state machine
      Returns:
      text representation