src/Visitor.ts
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
}