Table of Contents

Class ConditionalNode

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

A ConditionalNode is a StructuredActivityNode that chooses one among some number of alternative collections of ExecutableNodes to execute. <p>From package UML::Actions.</p>

[XmlNamespace("http://www.eclipse.org/uml2/5.0.0/UML")]
[XmlNamespacePrefix("uml")]
[ModelRepresentationClass("http://www.eclipse.org/uml2/5.0.0/UML#//ConditionalNode")]
public class ConditionalNode : StructuredActivityNode, IConditionalNode, IStructuredActivityNode, IActivityGroup, INamespace, IAction, IExecutableNode, IActivityNode, IActivityContent, IRedefinableElement, INamedElement, IElement, IEModelElement, IModelElement, INotifyPropertyChanged, INotifyPropertyChanging
Inheritance
ConditionalNode
Implements
Inherited Members

Constructors

ConditionalNode()

Creates a new instance

public ConditionalNode()

Properties

Children

Gets the child model elements of this model element

public override IEnumerableExpression<IModelElement> Children { get; }

Property Value

IEnumerableExpression<IModelElement>

ClassInstance

Gets the Class model for this type

public static IClass ClassInstance { get; }

Property Value

IClass

Clause

The set of Clauses composing the ConditionalNode. <p>From package UML::Actions.</p>

[LowerBound(1)]
[Browsable(false)]
[XmlElementName("clause")]
[XmlAttribute(false)]
[Containment]
public IOrderedSetExpression<IClause> Clause { get; }

Property Value

IOrderedSetExpression<IClause>

IsAssured

If true, the modeler asserts that the test for at least one Clause of the ConditionalNode will succeed. <p>From package UML::Actions.</p>

[TypeConverter(typeof(LowercaseBooleanConverter))]
[XmlElementName("isAssured")]
[XmlAttribute(true)]
public bool IsAssured { get; set; }

Property Value

bool

IsDeterminate

If true, the modeler asserts that the test for at most one Clause of the ConditionalNode will succeed. <p>From package UML::Actions.</p>

[TypeConverter(typeof(LowercaseBooleanConverter))]
[XmlElementName("isDeterminate")]
[XmlAttribute(true)]
public bool IsDeterminate { get; set; }

Property Value

bool

ReferencedElements

Gets the referenced model elements of this model element

public override IEnumerableExpression<IModelElement> ReferencedElements { get; }

Property Value

IEnumerableExpression<IModelElement>

Result

The OutputPins that onto which are moved values from the bodyOutputs of the Clause selected for execution. <p>From package UML::Actions.</p>

[Browsable(false)]
[XmlElementName("result")]
[XmlAttribute(false)]
[Containment]
public IOrderedSetExpression<IOutputPin> Result { get; }

Property Value

IOrderedSetExpression<IOutputPin>

Methods

Clause_no_predecessor(object, object)

No two clauses within a ConditionalNode may be predecessorClauses of each other, either directly or indirectly. clause->closure(predecessorClause)->intersection(clause)->isEmpty()

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

Executable_nodes(object, object)

The union of the ExecutableNodes in the test and body parts of all clauses must be the same as the subset of nodes contained in the ConditionalNode (considered as a StructuredActivityNode) that are ExecutableNodes. clause.test->union(clause._'body') = node->select(oclIsKindOf(ExecutableNode)).oclAsType(ExecutableNode)

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

GetCollectionForFeature(string)

Gets the Model element collection for the given feature

protected override IList GetCollectionForFeature(string feature)

Parameters

feature string

The requested feature

Returns

IList

A non-generic list of elements

GetCompositionName(object)

Gets the property name for the given container

protected override string GetCompositionName(object container)

Parameters

container object

The container object

Returns

string

The name of the respective container reference

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

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

GetRelativePathForNonIdentifiedChild(IModelElement)

Gets the relative URI fragment for the given child model element

protected override string GetRelativePathForNonIdentifiedChild(IModelElement element)

Parameters

element IModelElement

The element that should be looked for

Returns

string

A fragment of the relative URI

Matching_output_pins(object, object)

Each clause of a ConditionalNode must have the same number of bodyOutput pins as the ConditionalNode has result OutputPins, and each clause bodyOutput Pin must be compatible with the corresponding result OutputPin (by positional order) in type, multiplicity, ordering, and uniqueness. clause->forAll( bodyOutput->size()=self.result->size() and Sequence{1..self.result->size()}->forAll(i | bodyOutput->at(i).type.conformsTo(result->at(i).type) and bodyOutput->at(i).isOrdered = result->at(i).isOrdered and bodyOutput->at(i).isUnique = result->at(i).isUnique and bodyOutput->at(i).compatibleWith(result->at(i))))

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

No_input_pins(object, object)

A ConditionalNode has no InputPins. input->isEmpty()

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

One_clause_with_executable_node(object, object)

No ExecutableNode in the ConditionNode may appear in the test or body part of more than one clause of a ConditionalNode. node->select(oclIsKindOf(ExecutableNode)).oclAsType(ExecutableNode)->forAll(n | self.clause->select(test->union(_'body')->includes(n))->size()=1)

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

Result_no_incoming(object, object)

The result OutputPins have no incoming edges. result.incoming->isEmpty()

public bool Result_no_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

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