Software Disclaimer

Abstract Class UML 2.3::Element


An element is a constituent of a model. As such, it has the capability of owning other elements.

Direct Superclasses:

Direct Subclasses: TemplateableElement, TemplateSignature, TemplateParameterSubstitution, TemplateParameter, Slot, Relationship, QualifierValue, ParameterableElement, NamedElement, MultiplicityElement, LinkEndData, Image, ExceptionHandler, Comment, Clause

Class Precedence List: Element


ownedComment : Comment (0 *); -- source Element
ownedElement : Element (0 *); -- source Element
owner : Element (0 1); -- source Element


Signature: not_own_self() : Boolean;
Description: An element may not directly or indirectly own itself.
Expression: not self.allOwnedElements()->includes(self)

Signature: has_owner() : Boolean;
Description: Elements that must be owned must have an owner.
Expression: self.mustBeOwned() implies owner->notEmpty()


Signature: isWithinCMOFSubset() : Boolean;
Expression: self.oclIsKindOf(Association) or self.oclIsKindOf(Class) or self.oclIsKindOf(Comment) or self.oclIsKindOf(Constraint) or self.oclIsKindOf(DataType) or self.oclIsKindOf(ElementImport) or self.oclIsKindOf(Enumeration) or self.oclIsKindOf(EnumerationLiteral) or self.oclIsKindOf(Generalization) or self.oclIsKindOf(InstanceValue) or self.oclIsKindOf(LiteralBoolean) or self.oclIsKindOf(LiteralInteger) or self.oclIsKindOf(LiteralNull) or self.oclIsKindOf(LiteralReal) or self.oclIsKindOf(LiteralString) or self.oclIsKindOf(LiteralUnlimitedNatural) or self.oclIsKindOf(OpaqueExpression) or self.oclIsKindOf(Operation) or self.oclIsKindOf(Package) or self.oclIsKindOf(PackageImport) or self.oclIsKindOf(PackageMerge) or self.oclIsKindOf(Parameter) or self.oclIsKindOf(PrimitiveType) or self.oclIsKindOf(Property)

Signature: mustBeOwned() : Boolean;
Description: The query mustBeOwned() indicates whether elements of this type must have an owner. Subclasses of Element that do not require an owner must override this operation.
Expression: result = true

Signature: allOwnedElements() : Element;
Description: The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
Expression: result = ownedElement->union(ownedElement->collect(e | e.allOwnedElements()))

Send questions or comments to [email protected].