Table of Contents

Interface IStateMachine

Namespace
NMF.Interop.Uml
Assembly
NMF.UMLInterop.dll

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

IOrderedSetExpression<IPseudostate>

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

ISetExpression<IStateMachine>

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

IOrderedSetExpression<IRegion>

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

ISetExpression<IState>

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

s1 IVertex
s2 IVertex

Returns

bool

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 object

The chain of diagnostics to which problems are to be appended.

context object

The cache of context-specific information.

Returns

bool

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 object

The chain of diagnostics to which problems are to be appended.

context object

The cache of context-specific information.

Returns

bool

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 object

The chain of diagnostics to which problems are to be appended.

context object

The cache of context-specific information.

Returns

bool

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

s1 IVertex
s2 IVertex

Returns

IRegion

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

v1 IVertex
v2 IVertex

Returns

IState

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 object

The chain of diagnostics to which problems are to be appended.

context object

The cache of context-specific information.

Returns

bool