A structural model artefact representing a domain-level realization of one of:
- Reference Model class lra::technical::en13606::extract::UNBOUND_DATA_ELEMENT; or
- any concrete specialisation of Reference Model class lra::technical::en13606::extract::BOUND_DATA_ELEMENT.
Specializes
LraTechnicalModelArtefact
Constraints
| Type | Name | Specification |
|---|---|---|
| Any contained instance is either a DomainModelClass or a DomainComponentRelationship. | LRA Invariant | inv: self.packagedElement->forAll(Element: e | e.oclIsTypeOf(DomainModelClass) or e.oclIsTypeOf(DomainComponentRelationship)) |
| Each DomainComponentRelationship instance has a minimum of one owned end (i.e. the "subject" relationship) in which the type of every instance is owned by the containing package | LRA Invariant | inv: let elements: Sequence(Element) = self.packagedElement->select(Element: e | e.oclAsType(DomainModelClass).referenceClass.qualifiedName = ("lra::technical::en13606::extract::FINDING_OBSERVATION_ELEMENT" or "lra::technical::en13606::extract::PROPERTY_OBSERVATION_ELEMENT" or "lra::technical::en13606::extract::GENERAL_ACTIVITY_ELEMENT" or "lra::technical::en13606::extract::MATERIAL_ACTIVITY_ELEMENT" or "lra::technical::en13606::extract::INVESTIGATION_ACTIVITY_ELEMENT" or "lra::technical::en13606::extract::UNBOUND_DATA_ELEMENT")) in let relationships: Sequence(Element) = self.packagedElement->select(Element: e | e.oclIsTypeOf(DomainComponentRelationship)) in relationships->forAll(e: Element | e.oclAsType(DomainComponentRelationship).ownedEnd->exists(p: Property | elements->includesAll(p.oclAsType(Slot).instance->flatten()))) |
| Instance contains one DomainModelClass instance of kind ELEMENT | LRA Invariant | inv: self.packagedElement->select(Element: e | e.oclIsTypeOf(DomainModelClass))->size() = 1 and self.packagedElement->select(Element: e | e.oclAsType(DomainModelClass).referenceClass.qualifiedName = ("lra::technical::en13606::extract::FINDING_OBSERVATION_ELEMENT" or "lra::technical::en13606::extract::PROPERTY_OBSERVATION_ELEMENT" or "lra::technical::en13606::extract::GENERAL_ACTIVITY_ELEMENT" or "lra::technical::en13606::extract::MATERIAL_ACTIVITY_ELEMENT" or "lra::technical::en13606::extract::INVESTIGATION_ACTIVITY_ELEMENT" or "lra::technical::en13606::extract::UNBOUND_DATA_ELEMENT"))->size() = 1 |
| Instance contains zero or more DomainComponentRelationship instances | LRA Invariant | inv: self.packagedElement->select(Element: e | e.oclAsType(DomainComponentRelationship))->size() >= 0 |