1 // license-header java merge-point 2 // 3 // Attention: generated code (by Metafacade.vsl) - do not modify! 4 // 5 package org.andromda.metafacades.uml; 6 7 import java.util.Collection; 8 9 /** 10 * State machines can be used to express the behavior of part of a system. Behavior is modeled as a 11 * traversal of a graph of state nodes interconnected by one or more joined transition arcs that are 12 * triggered by the dispatching of series of (event) occurrences. During this traversal, the state 13 * machine executes a series of activities associated with various elements of the state machine. 14 * 15 * Metafacade interface to be used by AndroMDA cartridges. 16 */ 17 public interface StateMachineFacade 18 extends ModelElementFacade 19 { 20 /** 21 * Indicates the metafacade type (used for metafacade mappings). 22 * 23 * @return boolean always <code>true</code> 24 */ 25 public boolean isStateMachineFacadeMetaType(); 26 27 /** 28 * Represents a model element. It may be an Element or NamedElement. A named element is an 29 * element in a 30 * model that may have a name. An element is a constituent of a model. As such, it has the 31 * capability 32 * of owning other elements. 33 * @return ModelElementFacade 34 */ 35 public ModelElementFacade getContextElement(); 36 37 /** 38 * A special kind of state signifying that the enclosing region is completed. If the enclosing 39 * region 40 * is directly contained in a state machine and all other regions in the state machine also are 41 * completed, then it means that the entire state machine is completed. 42 * @return Collection<FinalStateFacade> 43 */ 44 public Collection<FinalStateFacade> getFinalStates(); 45 46 /** 47 * The first initial state (if any) found in this activity graph. Although technically many 48 * initial states per graph are allowed, it makes sense to have only one, for this reason we 49 * provide this property. 50 * @return PseudostateFacade 51 */ 52 public PseudostateFacade getInitialState(); 53 54 /** 55 * An abstraction that encompasses different types of transient vertices in the state machine 56 * graph. 57 * @return Collection<PseudostateFacade> 58 */ 59 public Collection<PseudostateFacade> getInitialStates(); 60 61 /** 62 * The first transition on the first initial state found for this activity graph. 63 * @return TransitionFacade 64 */ 65 public TransitionFacade getInitialTransition(); 66 67 /** 68 * An abstraction that encompasses different types of transient vertices in the state machine 69 * graph. 70 * @return Collection<PseudostateFacade> 71 */ 72 public Collection<PseudostateFacade> getPseudostates(); 73 74 /** 75 * Models a situation during which some (usually implicit) invariant condition holds. The states 76 * of 77 * protocol state machines are exposed to the users of their context classifiers. A protocol 78 * state 79 * represents an exposed stable situation of its context classifier: when an instance of the 80 * classifier 81 * is not processing any operation, users of this instance can always know its state 82 * configuration. 83 * @return Collection<StateFacade> 84 */ 85 public Collection<StateFacade> getStates(); 86 87 /** 88 * A directed relationship between a source vertex and a target vertex. It may be part of a 89 * compound 90 * transition, which takes the state machine from one state configuration to another, 91 * representing the 92 * complete response of the state machine to an occurrence of an event of a particular type. 93 * @return Collection<TransitionFacade> 94 */ 95 public Collection<TransitionFacade> getTransitions(); 96 }