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}