Table of Contents

Class StructuralFeature

Namespace
NMF.Interop.Cmof
Assembly
NMF.UMLInterop.dll

A structural feature is a typed feature of a classifier that specifies the structure of instances of the classifier. By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the collection of values associated with an instantiation of the structural feature.

[XmlNamespace("http://www.omg.org/spec/MOF/20131001/cmof.xmi")]
[XmlNamespacePrefix("cmof")]
[ModelRepresentationClass("http://www.omg.org/spec/MOF/20131001/cmof.xmi#//StructuralFeature")]
public abstract class StructuralFeature : Feature, IStructuralFeature, ITypedElement, IMultiplicityElement, IFeature, IRedefinableElement, INamedElement, IElement, IObject, IModelElement, INotifyPropertyChanged, INotifyPropertyChanging
Inheritance
StructuralFeature
Implements
Derived
Inherited Members

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

IsOrdered

For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.

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

Property Value

bool

IsReadOnly

States whether the feature's value may be modified by a client.

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

Property Value

bool

IsUnique

For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.

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

Property Value

bool

LowerValue

The specification of the lower bound for this multiplicity.

[Browsable(false)]
[XmlElementName("lowerValue")]
[XmlAttribute(false)]
[Containment]
public IValueSpecification LowerValue { get; set; }

Property Value

IValueSpecification

Type

This information is derived from the return result for this Operation. The type of the TypedElement.

[XmlElementName("type")]
[XmlAttribute(true)]
public IType Type { get; set; }

Property Value

IType

UpperValue

The specification of the upper bound for this multiplicity.

[Browsable(false)]
[XmlElementName("upperValue")]
[XmlAttribute(false)]
[Containment]
public IValueSpecification UpperValue { get; set; }

Property Value

IValueSpecification

Methods

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

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

IncludesCardinality(int)

The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity. result = (lowerBound() <= C) and (upperBound() >= C) upperBound()->notEmpty() and lowerBound()->notEmpty()

public bool IncludesCardinality(int c)

Parameters

c int

Returns

bool

IncludesMultiplicity(IMultiplicityElement)

The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity. result = (self.lowerBound() <= M.lowerBound()) and (self.upperBound() >= M.upperBound()) self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty()

public bool IncludesMultiplicity(IMultiplicityElement m)

Parameters

m IMultiplicityElement

Returns

bool

IsMultivalued()

The query isMultivalued() checks whether this multiplicity has an upper bound greater than one. upperBound()->notEmpty() result = upperBound() > 1

public bool IsMultivalued()

Returns

bool

LowerBound()

The query lowerBound() returns the lower bound of the multiplicity as an integer. result = if lowerValue->isEmpty() then 1 else lowerValue.integerValue() endif

public int LowerBound()

Returns

int

Lower_ge_0(object, object)

The lower bound must be a non-negative integer literal. lowerBound()->notEmpty() implies lowerBound() >= 0

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

OnIncludesCardinalityCalled(OperationCallEventArgs)

Raises the IncludesCardinalityCalled event

protected virtual void OnIncludesCardinalityCalled(OperationCallEventArgs eventArgs)

Parameters

eventArgs OperationCallEventArgs

The event data

OnIncludesCardinalityCalling(OperationCallEventArgs)

Raises the IncludesCardinalityCalling event

protected virtual void OnIncludesCardinalityCalling(OperationCallEventArgs eventArgs)

Parameters

eventArgs OperationCallEventArgs

The event data

OnIncludesMultiplicityCalled(OperationCallEventArgs)

Raises the IncludesMultiplicityCalled event

protected virtual void OnIncludesMultiplicityCalled(OperationCallEventArgs eventArgs)

Parameters

eventArgs OperationCallEventArgs

The event data

OnIncludesMultiplicityCalling(OperationCallEventArgs)

Raises the IncludesMultiplicityCalling event

protected virtual void OnIncludesMultiplicityCalling(OperationCallEventArgs eventArgs)

Parameters

eventArgs OperationCallEventArgs

The event data

OnIsMultivaluedCalled(OperationCallEventArgs)

Raises the IsMultivaluedCalled event

protected virtual void OnIsMultivaluedCalled(OperationCallEventArgs eventArgs)

Parameters

eventArgs OperationCallEventArgs

The event data

OnIsMultivaluedCalling(OperationCallEventArgs)

Raises the IsMultivaluedCalling event

protected virtual void OnIsMultivaluedCalling(OperationCallEventArgs eventArgs)

Parameters

eventArgs OperationCallEventArgs

The event data

OnIsOrderedChanged(ValueChangedEventArgs)

Raises the IsOrderedChanged event

protected virtual void OnIsOrderedChanged(ValueChangedEventArgs eventArgs)

Parameters

eventArgs ValueChangedEventArgs

The event data

OnIsOrderedChanging(ValueChangedEventArgs)

Raises the IsOrderedChanging event

protected virtual void OnIsOrderedChanging(ValueChangedEventArgs eventArgs)

Parameters

eventArgs ValueChangedEventArgs

The event data

OnIsReadOnlyChanged(ValueChangedEventArgs)

Raises the IsReadOnlyChanged event

protected virtual void OnIsReadOnlyChanged(ValueChangedEventArgs eventArgs)

Parameters

eventArgs ValueChangedEventArgs

The event data

OnIsReadOnlyChanging(ValueChangedEventArgs)

Raises the IsReadOnlyChanging event

protected virtual void OnIsReadOnlyChanging(ValueChangedEventArgs eventArgs)

Parameters

eventArgs ValueChangedEventArgs

The event data

OnIsUniqueChanged(ValueChangedEventArgs)

Raises the IsUniqueChanged event

protected virtual void OnIsUniqueChanged(ValueChangedEventArgs eventArgs)

Parameters

eventArgs ValueChangedEventArgs

The event data

OnIsUniqueChanging(ValueChangedEventArgs)

Raises the IsUniqueChanging event

protected virtual void OnIsUniqueChanging(ValueChangedEventArgs eventArgs)

Parameters

eventArgs ValueChangedEventArgs

The event data

OnLowerBoundCalled(OperationCallEventArgs)

Raises the LowerBoundCalled event

protected virtual void OnLowerBoundCalled(OperationCallEventArgs eventArgs)

Parameters

eventArgs OperationCallEventArgs

The event data

OnLowerBoundCalling(OperationCallEventArgs)

Raises the LowerBoundCalling event

protected virtual void OnLowerBoundCalling(OperationCallEventArgs eventArgs)

Parameters

eventArgs OperationCallEventArgs

The event data

OnLowerValueChanged(ValueChangedEventArgs)

Raises the LowerValueChanged event

protected virtual void OnLowerValueChanged(ValueChangedEventArgs eventArgs)

Parameters

eventArgs ValueChangedEventArgs

The event data

OnLowerValueChanging(ValueChangedEventArgs)

Raises the LowerValueChanging event

protected virtual void OnLowerValueChanging(ValueChangedEventArgs eventArgs)

Parameters

eventArgs ValueChangedEventArgs

The event data

OnLower_ge_0Called(OperationCallEventArgs)

Raises the Lower_ge_0Called event

protected virtual void OnLower_ge_0Called(OperationCallEventArgs eventArgs)

Parameters

eventArgs OperationCallEventArgs

The event data

OnLower_ge_0Calling(OperationCallEventArgs)

Raises the Lower_ge_0Calling event

protected virtual void OnLower_ge_0Calling(OperationCallEventArgs eventArgs)

Parameters

eventArgs OperationCallEventArgs

The event data

OnTypeChanged(ValueChangedEventArgs)

Raises the TypeChanged event

protected virtual void OnTypeChanged(ValueChangedEventArgs eventArgs)

Parameters

eventArgs ValueChangedEventArgs

The event data

OnTypeChanging(ValueChangedEventArgs)

Raises the TypeChanging event

protected virtual void OnTypeChanging(ValueChangedEventArgs eventArgs)

Parameters

eventArgs ValueChangedEventArgs

The event data

OnUpperBoundCalled(OperationCallEventArgs)

Raises the UpperBoundCalled event

protected virtual void OnUpperBoundCalled(OperationCallEventArgs eventArgs)

Parameters

eventArgs OperationCallEventArgs

The event data

OnUpperBoundCalling(OperationCallEventArgs)

Raises the UpperBoundCalling event

protected virtual void OnUpperBoundCalling(OperationCallEventArgs eventArgs)

Parameters

eventArgs OperationCallEventArgs

The event data

OnUpperValueChanged(ValueChangedEventArgs)

Raises the UpperValueChanged event

protected virtual void OnUpperValueChanged(ValueChangedEventArgs eventArgs)

Parameters

eventArgs ValueChangedEventArgs

The event data

OnUpperValueChanging(ValueChangedEventArgs)

Raises the UpperValueChanging event

protected virtual void OnUpperValueChanging(ValueChangedEventArgs eventArgs)

Parameters

eventArgs ValueChangedEventArgs

The event data

OnUpper_ge_lowerCalled(OperationCallEventArgs)

Raises the Upper_ge_lowerCalled event

protected virtual void OnUpper_ge_lowerCalled(OperationCallEventArgs eventArgs)

Parameters

eventArgs OperationCallEventArgs

The event data

OnUpper_ge_lowerCalling(OperationCallEventArgs)

Raises the Upper_ge_lowerCalling event

protected virtual void OnUpper_ge_lowerCalling(OperationCallEventArgs eventArgs)

Parameters

eventArgs OperationCallEventArgs

The event data

OnValue_specification_constantCalled(OperationCallEventArgs)

Raises the Value_specification_constantCalled event

protected virtual void OnValue_specification_constantCalled(OperationCallEventArgs eventArgs)

Parameters

eventArgs OperationCallEventArgs

The event data

OnValue_specification_constantCalling(OperationCallEventArgs)

Raises the Value_specification_constantCalling event

protected virtual void OnValue_specification_constantCalling(OperationCallEventArgs eventArgs)

Parameters

eventArgs OperationCallEventArgs

The event data

OnValue_specification_no_side_effectsCalled(OperationCallEventArgs)

Raises the Value_specification_no_side_effectsCalled event

protected virtual void OnValue_specification_no_side_effectsCalled(OperationCallEventArgs eventArgs)

Parameters

eventArgs OperationCallEventArgs

The event data

OnValue_specification_no_side_effectsCalling(OperationCallEventArgs)

Raises the Value_specification_no_side_effectsCalling event

protected virtual void OnValue_specification_no_side_effectsCalling(OperationCallEventArgs eventArgs)

Parameters

eventArgs OperationCallEventArgs

The event data

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

UpperBound()

The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural. result = if upperValue->isEmpty() then 1 else upperValue.unlimitedValue() endif

public void UpperBound()

Upper_ge_lower(object, object)

The upper bound must be greater than or equal to the lower bound. (upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound()

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

Value_specification_constant(object, object)

If a non-literal ValueSpecification is used for the lower or upper bound, then that specification must be a constant expression. true

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

Value_specification_no_side_effects(object, object)

If a non-literal ValueSpecification is used for the lower or upper bound, then evaluating that specification must not have side effects. true

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

Events

IncludesCardinalityCalled

Gets fired after the operation includesCardinality got called

public event EventHandler<OperationCallEventArgs> IncludesCardinalityCalled

Event Type

EventHandler<OperationCallEventArgs>

IncludesCardinalityCalling

Gets fired before the operation includesCardinality gets called

public event EventHandler<OperationCallEventArgs> IncludesCardinalityCalling

Event Type

EventHandler<OperationCallEventArgs>

IncludesMultiplicityCalled

Gets fired after the operation includesMultiplicity got called

public event EventHandler<OperationCallEventArgs> IncludesMultiplicityCalled

Event Type

EventHandler<OperationCallEventArgs>

IncludesMultiplicityCalling

Gets fired before the operation includesMultiplicity gets called

public event EventHandler<OperationCallEventArgs> IncludesMultiplicityCalling

Event Type

EventHandler<OperationCallEventArgs>

IsMultivaluedCalled

Gets fired after the operation isMultivalued got called

public event EventHandler<OperationCallEventArgs> IsMultivaluedCalled

Event Type

EventHandler<OperationCallEventArgs>

IsMultivaluedCalling

Gets fired before the operation isMultivalued gets called

public event EventHandler<OperationCallEventArgs> IsMultivaluedCalling

Event Type

EventHandler<OperationCallEventArgs>

IsOrderedChanged

Gets fired when the IsOrdered property changed its value

public event EventHandler<ValueChangedEventArgs> IsOrderedChanged

Event Type

EventHandler<ValueChangedEventArgs>

IsOrderedChanging

Gets fired before the IsOrdered property changes its value

public event EventHandler<ValueChangedEventArgs> IsOrderedChanging

Event Type

EventHandler<ValueChangedEventArgs>

IsReadOnlyChanged

Gets fired when the IsReadOnly property changed its value

public event EventHandler<ValueChangedEventArgs> IsReadOnlyChanged

Event Type

EventHandler<ValueChangedEventArgs>

IsReadOnlyChanging

Gets fired before the IsReadOnly property changes its value

public event EventHandler<ValueChangedEventArgs> IsReadOnlyChanging

Event Type

EventHandler<ValueChangedEventArgs>

IsUniqueChanged

Gets fired when the IsUnique property changed its value

public event EventHandler<ValueChangedEventArgs> IsUniqueChanged

Event Type

EventHandler<ValueChangedEventArgs>

IsUniqueChanging

Gets fired before the IsUnique property changes its value

public event EventHandler<ValueChangedEventArgs> IsUniqueChanging

Event Type

EventHandler<ValueChangedEventArgs>

LowerBoundCalled

Gets fired after the operation lowerBound got called

public event EventHandler<OperationCallEventArgs> LowerBoundCalled

Event Type

EventHandler<OperationCallEventArgs>

LowerBoundCalling

Gets fired before the operation lowerBound gets called

public event EventHandler<OperationCallEventArgs> LowerBoundCalling

Event Type

EventHandler<OperationCallEventArgs>

LowerValueChanged

Gets fired when the LowerValue property changed its value

public event EventHandler<ValueChangedEventArgs> LowerValueChanged

Event Type

EventHandler<ValueChangedEventArgs>

LowerValueChanging

Gets fired before the LowerValue property changes its value

public event EventHandler<ValueChangedEventArgs> LowerValueChanging

Event Type

EventHandler<ValueChangedEventArgs>

Lower_ge_0Called

Gets fired after the operation lower_ge_0 got called

public event EventHandler<OperationCallEventArgs> Lower_ge_0Called

Event Type

EventHandler<OperationCallEventArgs>

Lower_ge_0Calling

Gets fired before the operation lower_ge_0 gets called

public event EventHandler<OperationCallEventArgs> Lower_ge_0Calling

Event Type

EventHandler<OperationCallEventArgs>

TypeChanged

Gets fired when the Type property changed its value

public event EventHandler<ValueChangedEventArgs> TypeChanged

Event Type

EventHandler<ValueChangedEventArgs>

TypeChanging

Gets fired before the Type property changes its value

public event EventHandler<ValueChangedEventArgs> TypeChanging

Event Type

EventHandler<ValueChangedEventArgs>

UpperBoundCalled

Gets fired after the operation upperBound got called

public event EventHandler<OperationCallEventArgs> UpperBoundCalled

Event Type

EventHandler<OperationCallEventArgs>

UpperBoundCalling

Gets fired before the operation upperBound gets called

public event EventHandler<OperationCallEventArgs> UpperBoundCalling

Event Type

EventHandler<OperationCallEventArgs>

UpperValueChanged

Gets fired when the UpperValue property changed its value

public event EventHandler<ValueChangedEventArgs> UpperValueChanged

Event Type

EventHandler<ValueChangedEventArgs>

UpperValueChanging

Gets fired before the UpperValue property changes its value

public event EventHandler<ValueChangedEventArgs> UpperValueChanging

Event Type

EventHandler<ValueChangedEventArgs>

Upper_ge_lowerCalled

Gets fired after the operation upper_ge_lower got called

public event EventHandler<OperationCallEventArgs> Upper_ge_lowerCalled

Event Type

EventHandler<OperationCallEventArgs>

Upper_ge_lowerCalling

Gets fired before the operation upper_ge_lower gets called

public event EventHandler<OperationCallEventArgs> Upper_ge_lowerCalling

Event Type

EventHandler<OperationCallEventArgs>

Value_specification_constantCalled

Gets fired after the operation value_specification_constant got called

public event EventHandler<OperationCallEventArgs> Value_specification_constantCalled

Event Type

EventHandler<OperationCallEventArgs>

Value_specification_constantCalling

Gets fired before the operation value_specification_constant gets called

public event EventHandler<OperationCallEventArgs> Value_specification_constantCalling

Event Type

EventHandler<OperationCallEventArgs>

Value_specification_no_side_effectsCalled

Gets fired after the operation value_specification_no_side_effects got called

public event EventHandler<OperationCallEventArgs> Value_specification_no_side_effectsCalled

Event Type

EventHandler<OperationCallEventArgs>

Value_specification_no_side_effectsCalling

Gets fired before the operation value_specification_no_side_effects gets called

public event EventHandler<OperationCallEventArgs> Value_specification_no_side_effectsCalling

Event Type

EventHandler<OperationCallEventArgs>