steelbreeze/state

View on GitHub
src/Visitor.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { PseudoState, State, Region } from ".";

/**
 * Interface for classes implementing the visitor pattern, used to walk a state machine model structure.
 */
export interface Visitor {
    /**
     * Called when the visitor starts to visit a state; before child regions are visited.
     * @param state The state being visited.
     */
    visitState(state: State): any;

    /**
     * Called when the visitor finishes visiting a state; after child regions are visited.
     * @param state The state being visited.
     */
    visitStateTail(state: State): any;

    /**
     * Called when the visitor starts to visit a pseudo state.
     * @param pseudoState The pseudo state being visited.
     */
    visitPseudoState(pseduoState: PseudoState): any;
    
    /**
     * Called when the visitor finished visiting a pseudo state.
     * @param pseudoState The pseudo state being visited.
     */
    visitPseudoStateTail(pseduoState: PseudoState): any;
    
    /**
     * Called when the visitor starts to visit a region; before child states are visited.
     * @param state The state being visited.
     */
    visitRegion(region: Region): any;

    /**
     * Called when the visitor finishes visiting a region; after child states are visited.
     * @param state The state being visited.
     */
    visitRegionTail(region: Region): any
}