Table of Contents

Interface IState

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

The public interface for State

[DefaultImplementationType(typeof(State))]
[XmlDefaultImplementationType(typeof(State))]
[ModelRepresentationClass("http://www.eclipse.org/uml2/5.0.0/UML#//State")]
public interface IState : IVertex, IRedefinableElement, INamespace, INamedElement, IElement, IEModelElement, IModelElement, INotifyPropertyChanged, INotifyPropertyChanging
Inherited Members

Properties

Connection

The entry and exit connection points used in conjunction with this (submachine) State, i.e., as targets and sources, respectively, in the Region with the submachine State. A connection point reference references the corresponding definition of a connection point Pseudostate in the StateMachine referenced by the submachine State. <p>From package UML::StateMachines.</p>

[Browsable(false)]
[XmlElementName("connection")]
[XmlAttribute(false)]
[Containment]
[XmlOpposite("state")]
IOrderedSetExpression<IConnectionPointReference> Connection { get; }

Property Value

IOrderedSetExpression<IConnectionPointReference>

ConnectionPoint

The entry and exit Pseudostates of a composite State. These can only be entry or exit Pseudostates, and they must have different names. They can only be defined for composite States. <p>From package UML::StateMachines.</p>

[Browsable(false)]
[XmlElementName("connectionPoint")]
[XmlAttribute(false)]
[Containment]
[XmlOpposite("state")]
IOrderedSetExpression<IPseudostate> ConnectionPoint { get; }

Property Value

IOrderedSetExpression<IPseudostate>

DeferrableTrigger

A list of Triggers that are candidates to be retained by the StateMachine if they trigger no Transitions out of the State (not consumed). A deferred Trigger is retained until the StateMachine reaches a State configuration where it is no longer deferred. <p>From package UML::StateMachines.</p>

[Browsable(false)]
[XmlElementName("deferrableTrigger")]
[XmlAttribute(false)]
[Containment]
IOrderedSetExpression<ITrigger> DeferrableTrigger { get; }

Property Value

IOrderedSetExpression<ITrigger>

DoActivity

An optional Behavior that is executed while being in the State. The execution starts when this State is entered, and ceases either by itself when done, or when the State is exited, whichever comes first. <p>From package UML::StateMachines.</p>

[Browsable(false)]
[XmlElementName("doActivity")]
[XmlAttribute(false)]
[Containment]
IBehavior DoActivity { get; set; }

Property Value

IBehavior

Entry

An optional Behavior that is executed whenever this State is entered regardless of the Transition taken to reach the State. If defined, entry Behaviors are always executed to completion prior to any internal Behavior or Transitions performed within the State. <p>From package UML::StateMachines.</p>

[Browsable(false)]
[XmlElementName("entry")]
[XmlAttribute(false)]
[Containment]
IBehavior Entry { get; set; }

Property Value

IBehavior

Exit

An optional Behavior that is executed whenever this State is exited regardless of which Transition was taken out of the State. If defined, exit Behaviors are always executed to completion only after all internal and transition Behaviors have completed execution. <p>From package UML::StateMachines.</p>

[Browsable(false)]
[XmlElementName("exit")]
[XmlAttribute(false)]
[Containment]
IBehavior Exit { get; set; }

Property Value

IBehavior

RedefinedState

The State of which this State is a redefinition. <p>From package UML::StateMachines.</p>

[XmlElementName("redefinedState")]
[XmlAttribute(true)]
IState RedefinedState { get; set; }

Property Value

IState

Region

The Regions owned directly by the State. <p>From package UML::StateMachines.</p>

[Browsable(false)]
[XmlElementName("region")]
[XmlAttribute(false)]
[Containment]
[XmlOpposite("state")]
IOrderedSetExpression<IRegion> Region { get; }

Property Value

IOrderedSetExpression<IRegion>

StateInvariant

Specifies conditions that are always true when this State is the current State. In ProtocolStateMachines state invariants are additional conditions to the preconditions of the outgoing Transitions, and to the postcondition of the incoming Transitions. <p>From package UML::StateMachines.</p>

[Browsable(false)]
[XmlElementName("stateInvariant")]
[XmlAttribute(false)]
[Containment]
IConstraint StateInvariant { get; set; }

Property Value

IConstraint

Submachine

The StateMachine that is to be inserted in place of the (submachine) State. <p>From package UML::StateMachines.</p>

[XmlElementName("submachine")]
[XmlAttribute(true)]
[XmlOpposite("submachineState")]
IStateMachine Submachine { get; set; }

Property Value

IStateMachine

Methods

Composite_states(object, object)

Only composite States can have entry or exit Pseudostates defined. connectionPoint->notEmpty() implies isComposite

bool Composite_states(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

Destinations_or_sources_of_transitions(object, object)

The connection point references used as destinations/sources of Transitions associated with a submachine State must be defined as entry/exit points in the submachine StateMachine. self.isSubmachineState implies (self.connection->forAll (cp | cp.entry->forAll (ps | ps.stateMachine = self.submachine) and cp.exit->forAll (ps | ps.stateMachine = self.submachine)))

bool Destinations_or_sources_of_transitions(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

Entry_or_exit(object, object)

Only entry or exit Pseudostates can serve as connection points. connectionPoint->forAll(kind = PseudostateKind::entryPoint or kind = PseudostateKind::exitPoint)

bool Entry_or_exit(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

Submachine_or_regions(object, object)

A State is not allowed to have both a submachine and Regions. isComposite implies not isSubmachineState

bool Submachine_or_regions(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

Submachine_states(object, object)

Only submachine States can have connection point references. isSubmachineState implies connection->notEmpty( )

bool Submachine_states(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