Table of Contents

Class Pseudostate

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

A Pseudostate is an abstraction that encompasses different types of transient Vertices in the StateMachine graph. A StateMachine instance never comes to rest in a Pseudostate, instead, it will exit and enter the Pseudostate within a single run-to-completion step. <p>From package UML::StateMachines.</p>

[XmlNamespace("http://www.eclipse.org/uml2/5.0.0/UML")]
[XmlNamespacePrefix("uml")]
[ModelRepresentationClass("http://www.eclipse.org/uml2/5.0.0/UML#//Pseudostate")]
public class Pseudostate : Vertex, IPseudostate, IVertex, INamedElement, IElement, IEModelElement, IModelElement, INotifyPropertyChanged, INotifyPropertyChanging
Inheritance
Pseudostate
Implements
Inherited Members

Properties

ClassInstance

Gets the Class model for this type

public static IClass ClassInstance { get; }

Property Value

IClass

Kind

Determines the precise type of the Pseudostate and can be one of: entryPoint, exitPoint, initial, deepHistory, shallowHistory, join, fork, junction, terminate or choice. <p>From package UML::StateMachines.</p>

[XmlElementName("kind")]
[XmlAttribute(true)]
public PseudostateKind Kind { get; set; }

Property Value

PseudostateKind

ReferencedElements

Gets the referenced model elements of this model element

public override IEnumerableExpression<IModelElement> ReferencedElements { get; }

Property Value

IEnumerableExpression<IModelElement>

State

The State that owns this Pseudostate and in which it appears. <p>From package UML::StateMachines.</p>

[Browsable(false)]
[XmlElementName("state")]
[XmlAttribute(true)]
[XmlOpposite("connectionPoint")]
public IState State { get; set; }

Property Value

IState

StateMachine

The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint. <p>From package UML::StateMachines.</p>

[Browsable(false)]
[XmlElementName("stateMachine")]
[XmlAttribute(true)]
[XmlOpposite("connectionPoint")]
public IStateMachine StateMachine { get; set; }

Property Value

IStateMachine

Methods

Choice_vertex(object, object)

In a complete statemachine, a choice Vertex must have at least one incoming and one outgoing Transition. (kind = PseudostateKind::choice) implies (incoming->size() >= 1 and outgoing->size() >= 1)

public bool Choice_vertex(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

Fork_vertex(object, object)

In a complete StateMachine, a fork Vertex must have at least two outgoing Transitions and exactly one incoming Transition. (kind = PseudostateKind::fork) implies (incoming->size() = 1 and outgoing->size() >= 2)

public bool Fork_vertex(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

GetAttributeValue(string, int)

Resolves the given attribute name

protected override object GetAttributeValue(string attribute, int index)

Parameters

attribute string

The requested attribute name

index int

The index of this attribute

Returns

object

The attribute value or null if it could not be found

GetClass()

Gets the Class for this model element

public override IClass GetClass()

Returns

IClass

GetExpressionForAttribute(string)

Gets the property expression for the given attribute

protected override INotifyExpression<object> GetExpressionForAttribute(string attribute)

Parameters

attribute string

The requested attribute in upper case

Returns

INotifyExpression<object>

An incremental property expression

GetExpressionForReference(string)

Gets the property expression for the given reference

protected override INotifyExpression<IModelElement> GetExpressionForReference(string reference)

Parameters

reference string

The requested reference in upper case

Returns

INotifyExpression<IModelElement>

An incremental property expression

GetModelElementForReference(string, int)

Resolves the given URI to a child model element

protected override IModelElement GetModelElementForReference(string reference, int index)

Parameters

reference string

The requested reference name

index int

The index of this reference

Returns

IModelElement

The model element or null if it could not be found

History_vertices(object, object)

History Vertices can have at most one outgoing Transition. ((kind = PseudostateKind::deepHistory) or (kind = PseudostateKind::shallowHistory)) implies (outgoing->size() <= 1)

public bool History_vertices(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

Initial_vertex(object, object)

An initial Vertex can have at most one outgoing Transition. (kind = PseudostateKind::initial) implies (outgoing->size() <= 1)

public bool Initial_vertex(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

Join_vertex(object, object)

In a complete StateMachine, a join Vertex must have at least two incoming Transitions and exactly one outgoing Transition. (kind = PseudostateKind::join) implies (outgoing->size() = 1 and incoming->size() >= 2)

public bool Join_vertex(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

Junction_vertex(object, object)

In a complete StateMachine, a junction Vertex must have at least one incoming and one outgoing Transition. (kind = PseudostateKind::junction) implies (incoming->size() >= 1 and outgoing->size() >= 1)

public bool Junction_vertex(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

Outgoing_from_initial(object, object)

The outgoing Transition from an initial vertex may have a behavior, but not a trigger or a guard. (kind = PseudostateKind::initial) implies (outgoing.guard = null and outgoing.trigger->isEmpty())

public bool Outgoing_from_initial(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

SetFeature(string, object)

Sets a value to the given feature

protected override void SetFeature(string feature, object value)

Parameters

feature string

The requested feature

value object

The value that should be set to that feature

Transitions_incoming(object, object)

All Transitions incoming a join Vertex must originate in different Regions of an orthogonal State. (kind = PseudostateKind::join) implies

-- for any pair of incoming transitions there exists an orthogonal state which contains the source vetices of these transitions -- such that these source vertices belong to different regions of that orthogonal state

incoming->forAll(t1:Transition, t2:Transition | let contState:State = containingStateMachine().LCAState(t1.source, t2.source) in ((contState <> null) and (contState.region ->exists(r1:Region, r2: Region | (r1 <> r2) and t1.source.isContainedInRegion(r1) and t2.source.isContainedInRegion(r2)))))

public bool Transitions_incoming(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

Transitions_outgoing(object, object)

All transitions outgoing a fork vertex must target states in different regions of an orthogonal state. (kind = PseudostateKind::fork) implies

-- for any pair of outgoing transitions there exists an orthogonal state which contains the targets of these transitions -- such that these targets belong to different regions of that orthogonal state

outgoing->forAll(t1:Transition, t2:Transition | let contState:State = containingStateMachine().LCAState(t1.target, t2.target) in ((contState <> null) and (contState.region ->exists(r1:Region, r2: Region | (r1 <> r2) and t1.target.isContainedInRegion(r1) and t2.target.isContainedInRegion(r2)))))

public bool Transitions_outgoing(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