Réserver une Démo
Pré. Proc.

Code Java généré à partir d' Statemachine héritée Gabarit

UML State-machine Diagram in Sparx Systems Enterprise Architect.

énumération privée StateType : int

{

ProcessusCommande_Livrée,

ProcessusCommande_Emballée,

ProcessusCommande_Fermée,

ProcessusOrder_Dispatched,

ProcessOrder_New,

ST_NOSTATE

}

énumération privée TransitionType : int

{

ProcessOrder_Delivered_to_ProcessOrder_Closed,

TT_NOTRANSITION

}

énumération privée CommandType

{

Faire,

Entrée,

Sortie

}

État privéType currState;

État privéType nextState;

TransitionType privé currTransition;

transcendance booléenne privée ;

État privé Type ProcessOrder_history ;

processus privé voidOrder_Delivered(CommandType commande)

{

commutateur(commande)

{

affaire à faire :

{

// Faire des comportements..

setStatus(Livré);

// Les transitions State

si((statut==Livré))

{

nextState = StateType.ProcessOrder_Closed;

currTransition = TransitionType.ProcessOrder_Delivered_to_ProcessOrder_Closed;

}

casser;

}

défaut:

{

casser;

}

}

}

processus privé voidOrder_Packed(CommandType commande)

{

commutateur(commande)

{

affaire à faire :

{

// Faire des comportements..

setStatus(Emballé);

// Les transitions State

nextState = StateType.ProcessOrder_Dispatched;

casser;

}

défaut:

{

casser;

}

}

}

processus privé voidOrder_Closed(CommandType commande)

{

commutateur(commande)

{

affaire à faire :

{

// Faire des comportements..

// Les transitions State

casser;

}

défaut:

{

casser;

}

}

}

processus privé voidOrder_Dispatched(CommandType commande)

{

commutateur(commande)

{

affaire à faire :

{

// Faire des comportements..

setStatus(Expédié);

// Les transitions State

nextState = StateType.ProcessOrder_Delivered;

casser;

}

défaut:

{

casser;

}

}

}

processus privé voidOrder_New(CommandType commande)

{

commutateur(commande)

{

affaire à faire :

{

// Faire des comportements..

setStatus(nouveau);

// Les transitions State

nextState = StateType.ProcessOrder_Packed;

casser;

}

défaut:

{

casser;

}

}

}

privé void StatesProc(StateType currState, CommandType commande)

{

commutateur(état actuel)

{

cas ProcessOrder_Delivered :

{

processOrder_Delivered(commande);

casser;

}

cas ProcessOrder_Packed :

{

processOrder_Packed(commande);

casser;

}

dossier ProcessOrder_Closed :

{

processOrder_Closed(commande);

casser;

}

cas ProcessOrder_Dispatched :

{

processOrder_Dispatched(commande);

casser;

}

affaire ProcessOrder_New :

{

processOrder_New(commande);

casser;

}

défaut:

casser;

}

}

privé void TransitionsProc(TransitionType transition)

{

commutateur (transition)

{

dossier ProcessOrder_Delivered_to_ProcessOrder_Closed :

{

setStatus(fermé);

casser;

}

défaut:

casser;

}

}

privé void initalizeStateMachine()

{

currState = StateType.ProcessOrder_New;

État suivant = Type d'État.ST_NOSTATE;

currTransition = TransitionType.TT_NOTRANSITION;

}

privé void runStateMachine()

{

tandis que (vrai)

{

si (currState == StateType.ST_NOSTATE)

{

casser;

}

currTransition = TransitionType.TT_NOTRANSITION;

ÉtatsProc(currState, CommandType.Do);

// puis vérifiez s'il existe une transition valide attribuée après le comportement do

si (nextState == StateType.ST_NOSTATE)

{

casser;

}

si (currTransition != TransitionType.TT_NOTRANSITION)

{

TransitionsProc(currTransition);

}

si (état actuel != état suivant)

{

ÉtatsProc(currState, CommandType.Exit);

StatesProc(nextState, CommandType.Entry);

currState = État suivant;

}

}

}