Table of Contents

Interface IConditionalNode

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

The public interface for ConditionalNode

[DefaultImplementationType(typeof(ConditionalNode))]
[XmlDefaultImplementationType(typeof(ConditionalNode))]
[ModelRepresentationClass("http://www.eclipse.org/uml2/5.0.0/UML#//ConditionalNode")]
public interface IConditionalNode : IStructuredActivityNode, IActivityGroup, INamespace, IAction, IExecutableNode, IActivityNode, IActivityContent, IRedefinableElement, INamedElement, IElement, IEModelElement, IModelElement, INotifyPropertyChanged, INotifyPropertyChanging
Inherited Members

Properties

Clause

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

[LowerBound(1)]
[Browsable(false)]
[XmlElementName("clause")]
[XmlAttribute(false)]
[Containment]
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)]
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)]
bool IsDeterminate { get; set; }

Property Value

bool

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]
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()

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)

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

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))))

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()

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)

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()

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