SubVehicle(VehicleDTO pDto, boolean allowDelayedRouteChanging) { super(pDto, allowDelayedRouteChanging); extraState = stateMachine.getStateOfType(ExtraState.class); }
waitState = stateMachine.getStateOfType(Wait.class); gotoState = stateMachine.getStateOfType(Goto.class); waitForServiceState = stateMachine.getStateOfType(WaitAtService.class); serviceState = stateMachine.getStateOfType(Service.class);
waitState = stateMachine.getStateOfType(Wait.class); gotoState = stateMachine.getStateOfType(Goto.class); waitForServiceState = stateMachine.getStateOfType(WaitAtService.class); serviceState = stateMachine.getStateOfType(Service.class);
/** * Tests the query by class method. */ @Test public void testGetStateOfType() { final StateA a = new StateA(); final StateB b = new StateB(); final StateC c = new StateC(); final StateMachineBuilder<Events, Context> smb = StateMachine.create(a) .addTransition(a, Events.START, b) .addTransition(b, Events.START, c) .addTransition(c, Events.START, a); if (explicitRecursiveTransitions) { smb.explicitRecursiveTransitions(); } fsm = smb.build(); final State<Events, Context> first = fsm.getStates().iterator().next(); assertEquals(first, fsm.getStateOfType(Object.class)); assertEquals(b, fsm.getStateOfType(StateB.class)); assertEquals(c, fsm.getStateOfType(StateC.class)); boolean fail = false; try { fsm.getStateOfType(Enum.class); } catch (final IllegalArgumentException e) { fail = true; } assertTrue(fail); }
@Override protected StateMachine<StateEvent, RouteFollowingVehicle> createStateMachine() { // when overriding, please see doc of super method! // reuse super implementation final StateMachine<StateEvent, RouteFollowingVehicle> fsm = super.createStateMachine(); // get ref to existing state final Wait wait = fsm.getStateOfType(Wait.class); // add new state final ExtraState extra = new ExtraState(); // add two new transitions return StateMachine.create(wait) .addTransition(wait, ExtraEvent.TEST_EVENT, extra) .addTransition(extra, DefaultEvent.DONE, wait) .addTransitionsFrom(fsm) .build(); }