Interface IProperty
The public interface for Property
[DefaultImplementationType(typeof(Property))]
[XmlDefaultImplementationType(typeof(Property))]
[ModelRepresentationClass("http://www.omg.org/spec/MOF/20131001/cmof.xmi#//Property")]
public interface IProperty : IStructuralFeature, ITypedElement, IMultiplicityElement, IFeature, IRedefinableElement, INamedElement, IElement, IObject, IModelElement, INotifyPropertyChanged, INotifyPropertyChanging
- Inherited Members
Properties
Aggregation
Specifies the kind of aggregation that applies to the Property.
[XmlElementName("aggregation")]
[XmlAttribute(true)]
AggregationKind Aggregation { get; set; }
Property Value
Association
References the association of which this property is a member, if any.
[XmlElementName("association")]
[XmlAttribute(true)]
[XmlOpposite("memberEnd")]
IAssociation Association { get; set; }
Property Value
Class
References the Class that owns the Property. References the Class that owns the Property.
[Browsable(false)]
[XmlElementName("class")]
[XmlAttribute(true)]
[XmlOpposite("ownedAttribute")]
IClass Class { get; set; }
Property Value
Datatype
The DataType that owns this Property.
[Browsable(false)]
[XmlElementName("datatype")]
[XmlAttribute(true)]
[XmlOpposite("ownedAttribute")]
IDataType Datatype { get; set; }
Property Value
DefaultValue
A ValueSpecification that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated.
[Browsable(false)]
[XmlElementName("defaultValue")]
[XmlAttribute(false)]
[Containment]
IValueSpecification DefaultValue { get; set; }
Property Value
IsDerived
If isDerived is true, the value of the attribute is derived from information elsewhere. Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information.
[TypeConverter(typeof(LowercaseBooleanConverter))]
[XmlElementName("isDerived")]
[XmlAttribute(true)]
bool IsDerived { get; set; }
Property Value
IsDerivedUnion
Specifies whether the property is derived as the union of all of the properties that are constrained to subset it.
[TypeConverter(typeof(LowercaseBooleanConverter))]
[XmlElementName("isDerivedUnion")]
[XmlAttribute(true)]
bool IsDerivedUnion { get; set; }
Property Value
IsID
True indicates this property can be used to uniquely identify an instance of the containing Class.
[TypeConverter(typeof(LowercaseBooleanConverter))]
[XmlElementName("isID")]
[XmlAttribute(true)]
bool IsID { get; set; }
Property Value
OwningAssociation
References the owning association of this property, if any.
[XmlElementName("owningAssociation")]
[XmlAttribute(true)]
[XmlOpposite("ownedEnd")]
IAssociation OwningAssociation { get; set; }
Property Value
RedefinedProperty
References the properties that are redefined by this property.
[XmlElementName("redefinedProperty")]
[XmlAttribute(true)]
ISetExpression<IProperty> RedefinedProperty { get; }
Property Value
SubsettedProperty
References the properties of which this property is constrained to be a subset.
[XmlElementName("subsettedProperty")]
[XmlAttribute(true)]
ISetExpression<IProperty> SubsettedProperty { get; }
Property Value
Methods
Derived_union_is_derived(object, object)
A derived union is derived. isDerivedUnion implies isDerived
bool Derived_union_is_derived(object diagnostics, object context)
Parameters
diagnostics
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.
Returns
Derived_union_is_read_only(object, object)
A derived union is read only. isDerivedUnion implies isReadOnly
bool Derived_union_is_read_only(object diagnostics, object context)
Parameters
diagnostics
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.
Returns
IsAttribute(IProperty)
The query isAttribute() is true if the Property is defined as an attribute of some classifier. result = Classifier.allInstances->exists(c | c.attribute->includes(p))
bool IsAttribute(IProperty p)
Parameters
Returns
IsNavigable()
The query isNavigable() indicates whether it is possible to navigate across the property. result = not classifier->isEmpty() or association.owningAssociation.navigableOwnedEnd->includes(self)
bool IsNavigable()
Returns
Multiplicity_of_composite(object, object)
A multiplicity of a composite aggregation must not have an upper bound greater than 1. A multiplicity on an aggregate end of a composite aggregation must not have an upper bound greater than 1. isComposite implies (upperBound()->isEmpty() or upperBound() <= 1)
bool Multiplicity_of_composite(object diagnostics, object context)
Parameters
diagnostics
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.
Returns
Redefined_property_inherited(object, object)
A redefined property must be inherited from a more general classifier containing the redefining property. if (redefinedProperty->notEmpty()) then (redefinitionContext->notEmpty() and redefinedProperty->forAll(rp| ((redefinitionContext->collect(fc| fc.allParents()))->asSet())->collect(c| c.allFeatures())->asSet()->includes(rp))
bool Redefined_property_inherited(object diagnostics, object context)
Parameters
diagnostics
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.
Returns
Subsetted_property_names(object, object)
A property may not subset a property with the same name. true
bool Subsetted_property_names(object diagnostics, object context)
Parameters
diagnostics
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.
Returns
SubsettingContext()
The query subsettingContext() gives the context for subsetting a property. It consists, in the case of an attribute, of the corresponding classifier, and in the case of an association end, all of the classifiers at the other ends. result = if association->notEmpty() then association.endType-type else if classifier->notEmpty() then Set{classifier} else Set{} endif endif
ISetExpression<IType> SubsettingContext()
Returns
Subsetting_context_conforms(object, object)
Subsetting may only occur when the context of the subsetting property conforms to the context of the subsetted property. self.subsettedProperty->notEmpty() implies (self.subsettingContext()->notEmpty() and self.subsettingContext()->forAll (sc | self.subsettedProperty->forAll(sp | sp.subsettingContext()->exists(c | sc.conformsTo(c)))))
bool Subsetting_context_conforms(object diagnostics, object context)
Parameters
diagnostics
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.
Returns
Subsetting_rules(object, object)
A subsetting property may strengthen the type of the subsetted property, and its upper bound may be less. self.subsettedProperty->forAll(sp | self.type.conformsTo(sp.type) and ((self.upperBound()->notEmpty() and sp.upperBound()->notEmpty()) implies self.upperBound()<=sp.upperBound() ))
bool Subsetting_rules(object diagnostics, object context)
Parameters
diagnostics
objectThe chain of diagnostics to which problems are to be appended.
context
objectThe cache of context-specific information.