engine = StateEngineFactory.create() ;
// State, Input, Guard, Action, new State
engine.add( INVALID, ENTER, incrementAction, INCARN ) ;
engine.add( INVALID, ACTIVATE, null, VALID ) ;
engine.setDefault( INVALID ) ;
engine.add( INCARN, ENTER, waitGuard, null, INCARN ) ;
engine.add( INCARN, EXIT, null, INCARN ) ;
engine.add( INCARN, START_ETH, waitGuard, null, INCARN ) ;
engine.add( INCARN, INC_DONE, null, VALID ) ;
engine.add( INCARN, INC_FAIL, decrementAction, INVALID ) ;
engine.add( VALID, ENTER, incrementAction, VALID ) ;
engine.add( VALID, EXIT, decrementAction, VALID ) ;
engine.add( VALID, START_ETH, greaterZeroGuard, null, ETHP ) ;
engine.add( VALID, START_ETH, zeroGuard, null, ETH ) ;
engine.add( ETHP, ENTER, waitGuard, null, ETHP ) ;
engine.add( ETHP, START_ETH, null, ETHP ) ;
engine.add( ETHP, EXIT, greaterOneGuard, decrementAction, ETHP ) ;
engine.add( ETHP, EXIT, oneGuard, decrementAction, ETH ) ;
engine.add( ETH, START_ETH, null, ETH ) ;
engine.add( ETH, ETH_DONE, null, DESTROYED ) ;
engine.add( ETH, ENTER, waitGuard, null, ETH ) ;
engine.setDefault( DESTROYED, throwIllegalStateExceptionAction, DESTROYED ) ;
engine.done() ;
super( engine, INVALID, ((ORB)poa.getORB()).poaFSMDebugFlag ) ;
this.poa = poa ;
etherealizer = new Thread[1] ;
etherealizer[0] = null ;
counter = new int[1] ;
counter[0] = 0 ;
wait = new CondVar( poa.poaMutex,
((ORB)poa.getORB()).poaConcurrencyDebugFlag ) ;