Interface IStateMachine
The public interface for StateMachine
[DefaultImplementationType(typeof(StateMachine))]
[XmlDefaultImplementationType(typeof(StateMachine))]
[ModelRepresentationClass("http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine")]
public interface IStateMachine : IBehavior, IClass, IBehavioredClassifier, IEncapsulatedClassifier, IStructuredClassifier, IClassifier, ITemplateableElement, IType, IPackageableElement, IParameterableElement, IRedefinableElement, INamespace, INamedElement, IElement, IEModelElement, IModelElement, INotifyPropertyChanged, INotifyPropertyChanging
- Inherited Members
Properties
ConnectionPoint
The connection points defined for this StateMachine. They represent the interface of the StateMachine when used as part of submachine State <p>From package UML::StateMachines.</p>
[Browsable(false)]
[XmlElementName("connectionPoint")]
[XmlAttribute(false)]
[Containment]
[XmlOpposite("stateMachine")]
IOrderedSetExpression<IPseudostate> ConnectionPoint { get; }
Property Value
ExtendedStateMachine
The StateMachines of which this is an extension. <p>From package UML::StateMachines.</p>
[XmlElementName("extendedStateMachine")]
[XmlAttribute(true)]
ISetExpression<IStateMachine> ExtendedStateMachine { get; }
Property Value
Region
The Regions owned directly by the StateMachine. <p>From package UML::StateMachines.</p>
[LowerBound(1)]
[Browsable(false)]
[XmlElementName("region")]
[XmlAttribute(false)]
[Containment]
[XmlOpposite("stateMachine")]
IOrderedSetExpression<IRegion> Region { get; }
Property Value
SubmachineState
References the submachine(s) in case of a submachine State. Multiple machines are referenced in case of a concurrent State. <p>From package UML::StateMachines.</p>
[XmlElementName("submachineState")]
[XmlAttribute(true)]
[XmlOpposite("submachine")]
ISetExpression<IState> SubmachineState { get; }
Property Value
Methods
Ancestor(IVertex, IVertex)
The query ancestor(s1, s2) checks whether Vertex s2 is an ancestor of Vertex s1. result = (if (s2 = s1) then true else if s1.container.stateMachine->notEmpty() then true else if s2.container.stateMachine->notEmpty() then false else ancestor(s1, s2.container.state) endif endif endif ) <p>From package UML::StateMachines.</p>
bool Ancestor(IVertex s1, IVertex s2)
Parameters
Returns
Classifier_context(object, object)
The Classifier context of a StateMachine cannot be an Interface. _'context' <> null implies not _'context'.oclIsKindOf(Interface)
bool Classifier_context(object diagnostics, object context)
Parameters
diagnostics
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.
Returns
Connection_points(object, object)
The connection points of a StateMachine are Pseudostates of kind entry point or exit point. connectionPoint->forAll (kind = PseudostateKind::entryPoint or kind = PseudostateKind::exitPoint)
bool Connection_points(object diagnostics, object context)
Parameters
diagnostics
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.
Returns
Context_classifier(object, object)
The context Classifier of the method StateMachine of a BehavioralFeature must be the Classifier that owns the BehavioralFeature. specification <> null implies ( _'context' <> null and specification.featuringClassifier->exists(c | c = _'context'))
bool Context_classifier(object diagnostics, object context)
Parameters
diagnostics
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.
Returns
LCA(IVertex, IVertex)
The operation LCA(s1,s2) returns the Region that is the least common ancestor of Vertices s1 and s2, based on the StateMachine containment hierarchy. result = (if ancestor(s1, s2) then s2.container else if ancestor(s2, s1) then s1.container else LCA(s1.container.state, s2.container.state) endif endif) <p>From package UML::StateMachines.</p>
IRegion LCA(IVertex s1, IVertex s2)
Parameters
Returns
LCAState(IVertex, IVertex)
This utility funciton is like the LCA, except that it returns the nearest composite State that contains both input Vertices. result = (if v2.oclIsTypeOf(State) and ancestor(v1, v2) then v2.oclAsType(State) else if v1.oclIsTypeOf(State) and ancestor(v2, v1) then v1.oclAsType(State) else if (v1.container.state->isEmpty() or v2.container.state->isEmpty()) then null.oclAsType(State) else LCAState(v1.container.state, v2.container.state) endif endif endif) <p>From package UML::StateMachines.</p>
IState LCAState(IVertex v1, IVertex v2)
Parameters
Returns
Method(object, object)
A StateMachine as the method for a BehavioralFeature cannot have entry/exit connection points. specification <> null implies connectionPoint->isEmpty()
bool Method(object diagnostics, object context)
Parameters
diagnostics
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.