Class StructuralFeature
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
ClassInstance
Gets the Class model for this type
public static IClass ClassInstance { get; }
Property Value
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
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
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
LowerValue
The specification of the lower bound for this multiplicity.
[Browsable(false)]
[XmlElementName("lowerValue")]
[XmlAttribute(false)]
[Containment]
public IValueSpecification LowerValue { get; set; }
Property Value
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
UpperValue
The specification of the upper bound for this multiplicity.
[Browsable(false)]
[XmlElementName("upperValue")]
[XmlAttribute(false)]
[Containment]
public IValueSpecification UpperValue { get; set; }
Property Value
Methods
GetAttributeValue(string, int)
Resolves the given attribute name
protected override object GetAttributeValue(string attribute, int index)
Parameters
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
GetExpressionForAttribute(string)
Gets the property expression for the given attribute
protected override INotifyExpression<object> GetExpressionForAttribute(string attribute)
Parameters
attributestringThe 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
referencestringThe 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
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
elementIModelElementThe 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
cint
Returns
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
Returns
IsMultivalued()
The query isMultivalued() checks whether this multiplicity has an upper bound greater than one. upperBound()->notEmpty() result = upperBound() > 1
public bool IsMultivalued()
Returns
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
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
diagnosticsobjectThe chain of diagnostics to which problems are to be appended.
contextobjectThe cache of context-specific information.
Returns
OnIncludesCardinalityCalled(OperationCallEventArgs)
Raises the IncludesCardinalityCalled event
protected virtual void OnIncludesCardinalityCalled(OperationCallEventArgs eventArgs)
Parameters
eventArgsOperationCallEventArgsThe event data
OnIncludesCardinalityCalling(OperationCallEventArgs)
Raises the IncludesCardinalityCalling event
protected virtual void OnIncludesCardinalityCalling(OperationCallEventArgs eventArgs)
Parameters
eventArgsOperationCallEventArgsThe event data
OnIncludesMultiplicityCalled(OperationCallEventArgs)
Raises the IncludesMultiplicityCalled event
protected virtual void OnIncludesMultiplicityCalled(OperationCallEventArgs eventArgs)
Parameters
eventArgsOperationCallEventArgsThe event data
OnIncludesMultiplicityCalling(OperationCallEventArgs)
Raises the IncludesMultiplicityCalling event
protected virtual void OnIncludesMultiplicityCalling(OperationCallEventArgs eventArgs)
Parameters
eventArgsOperationCallEventArgsThe event data
OnIsMultivaluedCalled(OperationCallEventArgs)
Raises the IsMultivaluedCalled event
protected virtual void OnIsMultivaluedCalled(OperationCallEventArgs eventArgs)
Parameters
eventArgsOperationCallEventArgsThe event data
OnIsMultivaluedCalling(OperationCallEventArgs)
Raises the IsMultivaluedCalling event
protected virtual void OnIsMultivaluedCalling(OperationCallEventArgs eventArgs)
Parameters
eventArgsOperationCallEventArgsThe event data
OnIsOrderedChanged(ValueChangedEventArgs)
Raises the IsOrderedChanged event
protected virtual void OnIsOrderedChanged(ValueChangedEventArgs eventArgs)
Parameters
eventArgsValueChangedEventArgsThe event data
OnIsOrderedChanging(ValueChangedEventArgs)
Raises the IsOrderedChanging event
protected virtual void OnIsOrderedChanging(ValueChangedEventArgs eventArgs)
Parameters
eventArgsValueChangedEventArgsThe event data
OnIsReadOnlyChanged(ValueChangedEventArgs)
Raises the IsReadOnlyChanged event
protected virtual void OnIsReadOnlyChanged(ValueChangedEventArgs eventArgs)
Parameters
eventArgsValueChangedEventArgsThe event data
OnIsReadOnlyChanging(ValueChangedEventArgs)
Raises the IsReadOnlyChanging event
protected virtual void OnIsReadOnlyChanging(ValueChangedEventArgs eventArgs)
Parameters
eventArgsValueChangedEventArgsThe event data
OnIsUniqueChanged(ValueChangedEventArgs)
Raises the IsUniqueChanged event
protected virtual void OnIsUniqueChanged(ValueChangedEventArgs eventArgs)
Parameters
eventArgsValueChangedEventArgsThe event data
OnIsUniqueChanging(ValueChangedEventArgs)
Raises the IsUniqueChanging event
protected virtual void OnIsUniqueChanging(ValueChangedEventArgs eventArgs)
Parameters
eventArgsValueChangedEventArgsThe event data
OnLowerBoundCalled(OperationCallEventArgs)
Raises the LowerBoundCalled event
protected virtual void OnLowerBoundCalled(OperationCallEventArgs eventArgs)
Parameters
eventArgsOperationCallEventArgsThe event data
OnLowerBoundCalling(OperationCallEventArgs)
Raises the LowerBoundCalling event
protected virtual void OnLowerBoundCalling(OperationCallEventArgs eventArgs)
Parameters
eventArgsOperationCallEventArgsThe event data
OnLowerValueChanged(ValueChangedEventArgs)
Raises the LowerValueChanged event
protected virtual void OnLowerValueChanged(ValueChangedEventArgs eventArgs)
Parameters
eventArgsValueChangedEventArgsThe event data
OnLowerValueChanging(ValueChangedEventArgs)
Raises the LowerValueChanging event
protected virtual void OnLowerValueChanging(ValueChangedEventArgs eventArgs)
Parameters
eventArgsValueChangedEventArgsThe event data
OnLower_ge_0Called(OperationCallEventArgs)
Raises the Lower_ge_0Called event
protected virtual void OnLower_ge_0Called(OperationCallEventArgs eventArgs)
Parameters
eventArgsOperationCallEventArgsThe event data
OnLower_ge_0Calling(OperationCallEventArgs)
Raises the Lower_ge_0Calling event
protected virtual void OnLower_ge_0Calling(OperationCallEventArgs eventArgs)
Parameters
eventArgsOperationCallEventArgsThe event data
OnTypeChanged(ValueChangedEventArgs)
Raises the TypeChanged event
protected virtual void OnTypeChanged(ValueChangedEventArgs eventArgs)
Parameters
eventArgsValueChangedEventArgsThe event data
OnTypeChanging(ValueChangedEventArgs)
Raises the TypeChanging event
protected virtual void OnTypeChanging(ValueChangedEventArgs eventArgs)
Parameters
eventArgsValueChangedEventArgsThe event data
OnUpperBoundCalled(OperationCallEventArgs)
Raises the UpperBoundCalled event
protected virtual void OnUpperBoundCalled(OperationCallEventArgs eventArgs)
Parameters
eventArgsOperationCallEventArgsThe event data
OnUpperBoundCalling(OperationCallEventArgs)
Raises the UpperBoundCalling event
protected virtual void OnUpperBoundCalling(OperationCallEventArgs eventArgs)
Parameters
eventArgsOperationCallEventArgsThe event data
OnUpperValueChanged(ValueChangedEventArgs)
Raises the UpperValueChanged event
protected virtual void OnUpperValueChanged(ValueChangedEventArgs eventArgs)
Parameters
eventArgsValueChangedEventArgsThe event data
OnUpperValueChanging(ValueChangedEventArgs)
Raises the UpperValueChanging event
protected virtual void OnUpperValueChanging(ValueChangedEventArgs eventArgs)
Parameters
eventArgsValueChangedEventArgsThe event data
OnUpper_ge_lowerCalled(OperationCallEventArgs)
Raises the Upper_ge_lowerCalled event
protected virtual void OnUpper_ge_lowerCalled(OperationCallEventArgs eventArgs)
Parameters
eventArgsOperationCallEventArgsThe event data
OnUpper_ge_lowerCalling(OperationCallEventArgs)
Raises the Upper_ge_lowerCalling event
protected virtual void OnUpper_ge_lowerCalling(OperationCallEventArgs eventArgs)
Parameters
eventArgsOperationCallEventArgsThe event data
OnValue_specification_constantCalled(OperationCallEventArgs)
Raises the Value_specification_constantCalled event
protected virtual void OnValue_specification_constantCalled(OperationCallEventArgs eventArgs)
Parameters
eventArgsOperationCallEventArgsThe event data
OnValue_specification_constantCalling(OperationCallEventArgs)
Raises the Value_specification_constantCalling event
protected virtual void OnValue_specification_constantCalling(OperationCallEventArgs eventArgs)
Parameters
eventArgsOperationCallEventArgsThe 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
eventArgsOperationCallEventArgsThe 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
eventArgsOperationCallEventArgsThe event data
SetFeature(string, object)
Sets a value to the given feature
protected override void SetFeature(string feature, object value)
Parameters
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
diagnosticsobjectThe chain of diagnostics to which problems are to be appended.
contextobjectThe cache of context-specific information.
Returns
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
diagnosticsobjectThe chain of diagnostics to which problems are to be appended.
contextobjectThe cache of context-specific information.
Returns
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
diagnosticsobjectThe chain of diagnostics to which problems are to be appended.
contextobjectThe cache of context-specific information.
Returns
Events
IncludesCardinalityCalled
Gets fired after the operation includesCardinality got called
public event EventHandler<OperationCallEventArgs> IncludesCardinalityCalled
Event Type
IncludesCardinalityCalling
Gets fired before the operation includesCardinality gets called
public event EventHandler<OperationCallEventArgs> IncludesCardinalityCalling
Event Type
IncludesMultiplicityCalled
Gets fired after the operation includesMultiplicity got called
public event EventHandler<OperationCallEventArgs> IncludesMultiplicityCalled
Event Type
IncludesMultiplicityCalling
Gets fired before the operation includesMultiplicity gets called
public event EventHandler<OperationCallEventArgs> IncludesMultiplicityCalling
Event Type
IsMultivaluedCalled
Gets fired after the operation isMultivalued got called
public event EventHandler<OperationCallEventArgs> IsMultivaluedCalled
Event Type
IsMultivaluedCalling
Gets fired before the operation isMultivalued gets called
public event EventHandler<OperationCallEventArgs> IsMultivaluedCalling
Event Type
IsOrderedChanged
Gets fired when the IsOrdered property changed its value
public event EventHandler<ValueChangedEventArgs> IsOrderedChanged
Event Type
IsOrderedChanging
Gets fired before the IsOrdered property changes its value
public event EventHandler<ValueChangedEventArgs> IsOrderedChanging
Event Type
IsReadOnlyChanged
Gets fired when the IsReadOnly property changed its value
public event EventHandler<ValueChangedEventArgs> IsReadOnlyChanged
Event Type
IsReadOnlyChanging
Gets fired before the IsReadOnly property changes its value
public event EventHandler<ValueChangedEventArgs> IsReadOnlyChanging
Event Type
IsUniqueChanged
Gets fired when the IsUnique property changed its value
public event EventHandler<ValueChangedEventArgs> IsUniqueChanged
Event Type
IsUniqueChanging
Gets fired before the IsUnique property changes its value
public event EventHandler<ValueChangedEventArgs> IsUniqueChanging
Event Type
LowerBoundCalled
Gets fired after the operation lowerBound got called
public event EventHandler<OperationCallEventArgs> LowerBoundCalled
Event Type
LowerBoundCalling
Gets fired before the operation lowerBound gets called
public event EventHandler<OperationCallEventArgs> LowerBoundCalling
Event Type
LowerValueChanged
Gets fired when the LowerValue property changed its value
public event EventHandler<ValueChangedEventArgs> LowerValueChanged
Event Type
LowerValueChanging
Gets fired before the LowerValue property changes its value
public event EventHandler<ValueChangedEventArgs> LowerValueChanging
Event Type
Lower_ge_0Called
Gets fired after the operation lower_ge_0 got called
public event EventHandler<OperationCallEventArgs> Lower_ge_0Called
Event Type
Lower_ge_0Calling
Gets fired before the operation lower_ge_0 gets called
public event EventHandler<OperationCallEventArgs> Lower_ge_0Calling
Event Type
TypeChanged
Gets fired when the Type property changed its value
public event EventHandler<ValueChangedEventArgs> TypeChanged
Event Type
TypeChanging
Gets fired before the Type property changes its value
public event EventHandler<ValueChangedEventArgs> TypeChanging
Event Type
UpperBoundCalled
Gets fired after the operation upperBound got called
public event EventHandler<OperationCallEventArgs> UpperBoundCalled
Event Type
UpperBoundCalling
Gets fired before the operation upperBound gets called
public event EventHandler<OperationCallEventArgs> UpperBoundCalling
Event Type
UpperValueChanged
Gets fired when the UpperValue property changed its value
public event EventHandler<ValueChangedEventArgs> UpperValueChanged
Event Type
UpperValueChanging
Gets fired before the UpperValue property changes its value
public event EventHandler<ValueChangedEventArgs> UpperValueChanging
Event Type
Upper_ge_lowerCalled
Gets fired after the operation upper_ge_lower got called
public event EventHandler<OperationCallEventArgs> Upper_ge_lowerCalled
Event Type
Upper_ge_lowerCalling
Gets fired before the operation upper_ge_lower gets called
public event EventHandler<OperationCallEventArgs> Upper_ge_lowerCalling
Event Type
Value_specification_constantCalled
Gets fired after the operation value_specification_constant got called
public event EventHandler<OperationCallEventArgs> Value_specification_constantCalled
Event Type
Value_specification_constantCalling
Gets fired before the operation value_specification_constant gets called
public event EventHandler<OperationCallEventArgs> Value_specification_constantCalling
Event Type
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
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