001// license-header java merge-point 002// 003// Attention: generated code (by Metafacade.vsl) - do not modify! 004// 005package org.andromda.metafacades.uml; 006 007import java.util.Collection; 008 009/** 010 * A representation of the model object 'Vertex'. An abstraction of a node in a state machine graph. 011 * In general, it can be the source or destination of any number of transitions. 012 * 013 * Metafacade interface to be used by AndroMDA cartridges. 014 */ 015public interface StateVertexFacade 016 extends ModelElementFacade 017{ 018 /** 019 * Indicates the metafacade type (used for metafacade mappings). 020 * 021 * @return boolean always <code>true</code> 022 */ 023 public boolean isStateVertexFacadeMetaType(); 024 025 /** 026 * Models a situation during which some (usually implicit) invariant condition holds. The states 027 * of 028 * protocol state machines are exposed to the users of their context classifiers. A protocol 029 * state 030 * represents an exposed stable situation of its context classifier: when an instance of the 031 * classifier 032 * is not processing any operation, users of this instance can always know its state 033 * configuration. 034 * @return StateFacade 035 */ 036 public StateFacade getContainer(); 037 038 /** 039 * A directed relationship between a source vertex and a target vertex. It may be part of a 040 * compound 041 * transition, which takes the state machine from one state configuration to another, 042 * representing the 043 * complete response of the state machine to an occurrence of an event of a particular type. 044 * @return Collection<TransitionFacade> 045 */ 046 public Collection<TransitionFacade> getIncomings(); 047 048 /** 049 * A directed relationship between a source vertex and a target vertex. It may be part of a 050 * compound 051 * transition, which takes the state machine from one state configuration to another, 052 * representing the 053 * complete response of the state machine to an occurrence of an event of a particular type. 054 * @return Collection<TransitionFacade> 055 */ 056 public Collection<TransitionFacade> getOutgoings(); 057 058 /** 059 * The partition (if any) to which this vertex belongs. 060 * @return PartitionFacade 061 */ 062 public PartitionFacade getPartition(); 063 064 /** 065 * State machines can be used to express the behavior of part of a system. Behavior is modeled 066 * as a 067 * traversal of a graph of state nodes interconnected by one or more joined transition arcs that 068 * are 069 * triggered by the dispatching of series of (event) occurrences. During this traversal, the 070 * state 071 * machine executes a series of activities associated with various elements of the state 072 * machine. 073 * @return StateMachineFacade 074 */ 075 public StateMachineFacade getStateMachine(); 076}