package de.persosim.simulator.platform; /* * AUTOMATICALLY GENERATED CODE - DO NOT EDIT! * * (C) 2013 HJP-Consulting GmbH */ @SuppressWarnings("all")//generated code /* Command line options: -verbose -p EA -o CommandProcessorStateMachine -l java -t commandProcessor:commandProcessorClass C:\develop\wd\commandProcessor.xml */ /* This file is generated from commandProcessor.xml - do not edit manually */ /* Generated on: Tue Jul 21 15:25:05 CEST 2015 / version 3.52beta2 */ public class CommandProcessorStateMachine extends AbstractCommandProcessor { public static final int INITIALIZATION = 0; public static final int PROTOCOL_UNABLE_TO_PROCESS_APDU = 1; public static final int END_OF_STACK_OR_EMPTY = 2; public static final int PROTOCOL_INACTIVE = 3; public static final int PROTOCOL_FROM_STACK_ACTIVE = 4; public static final int COMMAND_PROCESSOR = 5; public static final int PROTOCOL_PROCESSED = 6; public static final int PROTOCOL_FROM_LIST_ACTIVE = 7; public static final int WAITING_FOR_COMMAND = 8; public static final int START_OF_STACK = 9; public static final int START_PROTOCOL_ITERATION = 10; public static final int WAITING_FOR_PROTOCOL_TO_PROCESS_APDU = 11; public static final int __UNKNOWN_STATE__ = 12; public static final int COMMANDPROCESSORSTATEMACHINE_NO_MSG = 0; // flag if initialized protected boolean m_initialized=false; int stateVar; int stateVarCOMMAND_PROCESSOR; // State handler class default ctor public CommandProcessorStateMachine() { } /* Helper(s) to reset history */ public void resetHistoryCOMMAND_PROCESSOR(){stateVarCOMMAND_PROCESSOR= WAITING_FOR_COMMAND;} /* Helper to get innermost active state id */ public int getInnermostActiveState() { if(isInWAITING_FOR_PROTOCOL_TO_PROCESS_APDU()){ return WAITING_FOR_PROTOCOL_TO_PROCESS_APDU; }else if(isInSTART_PROTOCOL_ITERATION()){ return START_PROTOCOL_ITERATION; }else if(isInSTART_OF_STACK()){ return START_OF_STACK; }else if(isInWAITING_FOR_COMMAND()){ return WAITING_FOR_COMMAND; }else if(isInPROTOCOL_FROM_LIST_ACTIVE()){ return PROTOCOL_FROM_LIST_ACTIVE; }else if(isInPROTOCOL_PROCESSED()){ return PROTOCOL_PROCESSED; }else if(isInPROTOCOL_FROM_STACK_ACTIVE()){ return PROTOCOL_FROM_STACK_ACTIVE; }else if(isInPROTOCOL_INACTIVE()){ return PROTOCOL_INACTIVE; }else if(isInEND_OF_STACK_OR_EMPTY()){ return END_OF_STACK_OR_EMPTY; }else if(isInPROTOCOL_UNABLE_TO_PROCESS_APDU()){ return PROTOCOL_UNABLE_TO_PROCESS_APDU; }else if(isInINITIALIZATION()){ return INITIALIZATION; }else{ return __UNKNOWN_STATE__; } } // Helper(s) to find out if the machine is in a certain state public boolean isInINITIALIZATION(){return (((stateVar== INITIALIZATION)) ? (true) : (false));} public boolean isInPROTOCOL_UNABLE_TO_PROCESS_APDU(){return (((stateVarCOMMAND_PROCESSOR== PROTOCOL_UNABLE_TO_PROCESS_APDU)&&(stateVar== COMMAND_PROCESSOR)) ? (true) : (false));} public boolean isInEND_OF_STACK_OR_EMPTY(){return (((stateVarCOMMAND_PROCESSOR== END_OF_STACK_OR_EMPTY)&&(stateVar== COMMAND_PROCESSOR)) ? (true) : (false));} public boolean isInPROTOCOL_INACTIVE(){return (((stateVarCOMMAND_PROCESSOR== PROTOCOL_INACTIVE)&&(stateVar== COMMAND_PROCESSOR)) ? (true) : (false));} public boolean isInPROTOCOL_FROM_STACK_ACTIVE(){return (((stateVarCOMMAND_PROCESSOR== PROTOCOL_FROM_STACK_ACTIVE)&&(stateVar== COMMAND_PROCESSOR)) ? (true) : (false));} public boolean isInCOMMAND_PROCESSOR(){return (((stateVar== COMMAND_PROCESSOR)) ? (true) : (false));} public boolean isInPROTOCOL_PROCESSED(){return (((stateVarCOMMAND_PROCESSOR== PROTOCOL_PROCESSED)&&(stateVar== COMMAND_PROCESSOR)) ? (true) : (false));} public boolean isInPROTOCOL_FROM_LIST_ACTIVE(){return (((stateVarCOMMAND_PROCESSOR== PROTOCOL_FROM_LIST_ACTIVE)&&(stateVar== COMMAND_PROCESSOR)) ? (true) : (false));} public boolean isInWAITING_FOR_COMMAND(){return (((stateVarCOMMAND_PROCESSOR== WAITING_FOR_COMMAND)&&(stateVar== COMMAND_PROCESSOR)) ? (true) : (false));} public boolean isInSTART_OF_STACK(){return (((stateVarCOMMAND_PROCESSOR== START_OF_STACK)&&(stateVar== COMMAND_PROCESSOR)) ? (true) : (false));} public boolean isInSTART_PROTOCOL_ITERATION(){return (((stateVarCOMMAND_PROCESSOR== START_PROTOCOL_ITERATION)&&(stateVar== COMMAND_PROCESSOR)) ? (true) : (false));} public boolean isInWAITING_FOR_PROTOCOL_TO_PROCESS_APDU(){return (((stateVarCOMMAND_PROCESSOR== WAITING_FOR_PROTOCOL_TO_PROCESS_APDU)&&(stateVar== COMMAND_PROCESSOR)) ? (true) : (false));} // Reinitialize the state machine public void reInitialize(){ m_initialized=false; initialize(); } public void initialize(){ if(m_initialized==false){ m_initialized=true; //call on entry code of default states initialize(); // Set state vars to default states stateVar = INITIALIZATION; /* set init state of top state */ stateVarCOMMAND_PROCESSOR = WAITING_FOR_COMMAND; /* set init state of COMMAND_PROCESSOR */ } } protected void commandprocessorstatemachineChangeToState(int state){ stateVar=state; } protected void commandprocessorstatemachineChangeToStateCOMMAND_PROCESSOR(int state){ stateVarCOMMAND_PROCESSOR = state; } public int processEvent(int msg){ int evConsumed = 0; if(m_initialized==false) return 0; /* action code */ this.continueProcessing = true; do{ evConsumed = 0; switch (stateVar) { case COMMAND_PROCESSOR: switch (stateVarCOMMAND_PROCESSOR) { case END_OF_STACK_OR_EMPTY: if(true){ if(apduHasBeenProcessed()){ /* Transition from END_OF_STACK_OR_EMPTY to WAITING_FOR_COMMAND */ evConsumed=16; /* Action code for transition */ returnResult(); /* adjust state variables */ stateVarCOMMAND_PROCESSOR = WAITING_FOR_COMMAND; }else{ /* Transition from END_OF_STACK_OR_EMPTY to START_PROTOCOL_ITERATION */ evConsumed=16; /* Action code for transition */ setProtocolPointerToFirstElementOfProtocolList(); /* adjust state variables */ stateVarCOMMAND_PROCESSOR = START_PROTOCOL_ITERATION; } /*end of event selection */ }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case END_OF_STACK_OR_EMPTY */ case PROTOCOL_FROM_LIST_ACTIVE: if(true){ if(apduHasBeenProcessed() || protocolAtPointerWantsToGetOnStack()){ /* Transition from PROTOCOL_FROM_LIST_ACTIVE to PROTOCOL_PROCESSED */ evConsumed=16; /* Action code for transition */ addProtocolAtProtocolPointerToStack(); /* adjust state variables */ stateVarCOMMAND_PROCESSOR = PROTOCOL_PROCESSED; }else{ /* Transition from PROTOCOL_FROM_LIST_ACTIVE to PROTOCOL_UNABLE_TO_PROCESS_APDU */ evConsumed=16; /* Action code for transition */ setProtocolPointerToNextElementOfProtocolList(); /* adjust state variables */ stateVarCOMMAND_PROCESSOR = PROTOCOL_UNABLE_TO_PROCESS_APDU; } /*end of event selection */ }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case PROTOCOL_FROM_LIST_ACTIVE */ case PROTOCOL_FROM_STACK_ACTIVE: if(true){ /* Transition from PROTOCOL_FROM_STACK_ACTIVE to PROTOCOL_PROCESSED */ evConsumed=16; /* Action code for transition */ currentProtocolProcess(); /* adjust state variables */ stateVarCOMMAND_PROCESSOR = PROTOCOL_PROCESSED; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case PROTOCOL_FROM_STACK_ACTIVE */ case PROTOCOL_INACTIVE: if(true){ /* Transition from PROTOCOL_INACTIVE to START_OF_STACK */ evConsumed=16; /* adjust state variables */ stateVarCOMMAND_PROCESSOR = START_OF_STACK; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case PROTOCOL_INACTIVE */ case PROTOCOL_PROCESSED: if(true){ if(isProtocolFinished()){ /* Transition from PROTOCOL_PROCESSED to PROTOCOL_INACTIVE */ evConsumed=16; /* Action code for transition */ removeCurrentProtocolAndAboveFromStack(); /* adjust state variables */ stateVarCOMMAND_PROCESSOR = PROTOCOL_INACTIVE; }else{ /* Transition from PROTOCOL_PROCESSED to PROTOCOL_INACTIVE */ evConsumed=16; /* Action code for transition */ incrementStackPointer(); /* adjust state variables */ stateVarCOMMAND_PROCESSOR = PROTOCOL_INACTIVE; } /*end of event selection */ }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case PROTOCOL_PROCESSED */ case PROTOCOL_UNABLE_TO_PROCESS_APDU: if(true){ if(allProtocolsOfProtocolListProcessed()){ /* Transition from PROTOCOL_UNABLE_TO_PROCESS_APDU to WAITING_FOR_COMMAND */ evConsumed=16; /* Action code for transition */ setStatusWordForUnsupportedCommand(); returnResult(); /* adjust state variables */ stateVarCOMMAND_PROCESSOR = WAITING_FOR_COMMAND; }else{ /* Transition from PROTOCOL_UNABLE_TO_PROCESS_APDU to WAITING_FOR_PROTOCOL_TO_PROCESS_APDU */ evConsumed=16; /* adjust state variables */ stateVarCOMMAND_PROCESSOR = WAITING_FOR_PROTOCOL_TO_PROCESS_APDU; } /*end of event selection */ }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case PROTOCOL_UNABLE_TO_PROCESS_APDU */ case START_OF_STACK: if(true){ if(stackPointerIsNull()){ /* Transition from START_OF_STACK to END_OF_STACK_OR_EMPTY */ evConsumed=16; /* adjust state variables */ stateVarCOMMAND_PROCESSOR = END_OF_STACK_OR_EMPTY; }else{ /* Transition from START_OF_STACK to PROTOCOL_FROM_STACK_ACTIVE */ evConsumed=16; /* Action code for transition */ makeStackPointerCurrentlyActiveProtocol(); /* adjust state variables */ stateVarCOMMAND_PROCESSOR = PROTOCOL_FROM_STACK_ACTIVE; } /*end of event selection */ }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case START_OF_STACK */ case START_PROTOCOL_ITERATION: if(true){ if(allProtocolsOfProtocolListProcessed()){ /* Transition from START_PROTOCOL_ITERATION to WAITING_FOR_COMMAND */ evConsumed=16; /* Action code for transition */ setStatusWordForUnsupportedCommand(); returnResult(); /* adjust state variables */ stateVarCOMMAND_PROCESSOR = WAITING_FOR_COMMAND; }else{ /* Transition from START_PROTOCOL_ITERATION to WAITING_FOR_PROTOCOL_TO_PROCESS_APDU */ evConsumed=16; /* adjust state variables */ stateVarCOMMAND_PROCESSOR = WAITING_FOR_PROTOCOL_TO_PROCESS_APDU; } /*end of event selection */ }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case START_PROTOCOL_ITERATION */ case WAITING_FOR_COMMAND: if(true){ /* Transition from WAITING_FOR_COMMAND to START_OF_STACK */ evConsumed=16; /* Action code for transition */ setStackPointerToBottom(); /* adjust state variables */ stateVarCOMMAND_PROCESSOR = START_OF_STACK; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case WAITING_FOR_COMMAND */ case WAITING_FOR_PROTOCOL_TO_PROCESS_APDU: if(true){ /* Transition from WAITING_FOR_PROTOCOL_TO_PROCESS_APDU to PROTOCOL_FROM_LIST_ACTIVE */ evConsumed=16; /* Action code for transition */ resetProtocolAtProtocolPointer(); makeProtocolAtProtocolPointerCurrentlyActiveProtocol(); currentProtocolProcess(); /* adjust state variables */ stateVarCOMMAND_PROCESSOR = PROTOCOL_FROM_LIST_ACTIVE; }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case WAITING_FOR_PROTOCOL_TO_PROCESS_APDU */ default: /* Intentionally left blank */ break; } /* end switch COMMAND_PROCESSOR */ break; /* end of case COMMAND_PROCESSOR */ case INITIALIZATION: if(true){ /* Transition from INITIALIZATION to COMMAND_PROCESSOR */ evConsumed=16; /* Action code for transition */ returnResult(); stateVar = COMMAND_PROCESSOR;/* Default in entry chain */ stateVarCOMMAND_PROCESSOR = WAITING_FOR_COMMAND;/* Default in entry chain */ }else{ /* Intentionally left blank */ } /*end of event selection */ break; /* end of case INITIALIZATION */ default: /* Intentionally left blank */ break; } /* end switch stateVar_root */ /* Post Action Code */ }while (this.continueProcessing); return evConsumed; } }