blob: 645c06d1a5b9100139e20e13b348509abc7d4447 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2015 David Carlson and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* David Carlson (Clinical Cloud Solutions, LLC) - initial API and implementation
*******************************************************************************/
/**
*/
package org.eclipse.mdht.uml.aml.constraint;
import java.util.Map;
import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.uml2.uml.Classifier;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Complex Object Constraint</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* </p>
* <ul>
* <li>{@link org.eclipse.mdht.uml.aml.constraint.ComplexObjectConstraint#getBase_Classifier <em>Base Classifier</em>}</li>
* </ul>
*
* @see org.eclipse.mdht.uml.aml.constraint.ConstraintPackage#getComplexObjectConstraint()
* @model
* @generated
*/
public interface ComplexObjectConstraint extends ObjectConstraint {
/**
* Returns the value of the '<em><b>Base Classifier</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Base Classifier</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Base Classifier</em>' reference.
* @see #setBase_Classifier(Classifier)
* @see org.eclipse.mdht.uml.aml.constraint.ConstraintPackage#getComplexObjectConstraint_Base_Classifier()
* @model required="true" ordered="false"
* @generated
*/
Classifier getBase_Classifier();
/**
* Sets the value of the '{@link org.eclipse.mdht.uml.aml.constraint.ComplexObjectConstraint#getBase_Classifier <em>Base Classifier</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Base Classifier</em>' reference.
* @see #getBase_Classifier()
* @generated
*/
void setBase_Classifier(Classifier value);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self.base_Classifier.generalization->size() = 1
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model
* @generated
*/
boolean validateSingleParent(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self.namespace.stereotypedBy('ComplexObjectConstraint')
* implies
* ((self.subsettedProperty->notEmpty()) or( self.redefinedProperty->notEmpty()))
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model
* @generated
*/
boolean validateAllAttributeConstraints(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self.base_Classifier.supplierDependency->exists(d|d.stereotypedBy('ArchetypeDefinition'))
* implies
* self.id.oclAsType(EnumerationLiteral)->forAll(e|e.name.match('id1(\\.1)*'))
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VARCN- archetype concept validity'"
* @generated
*/
boolean validateAOMVARCNarchetypeconceptvalidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* This [AOM] Validation Rule is enforced by UML type constraints for subsetted and/or redefined Properties.
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VCARM- attribute name reference model validity'"
* @generated
*/
boolean validateAOMVCARMattributenamereferencemodelvalidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The [AOM] validation rule is enforced by UML validation rules for subsetted or redefined properties.
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VCAEX- archetype attribute reference model existence conformance'"
* @generated
*/
boolean validateAOMVCAEXarchetypeattributereferencemodelexistenceconformance(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* This validation rule is enforced by UML Constraints on subsetted and/or redefined Properties.
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VCAM- archetype attribute reference model multiplicity conformance'"
* @generated
*/
boolean validateAOMVCAMarchetypeattributereferencemodelmultiplicityconformance(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* An archetype may only have a differential path if it is specialized.
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VDIFV- archetype attribute differential path validity:'"
* @generated
*/
boolean validateAOMVDIFVarchetypeattributedifferentialpathvalidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* If an attribute constraint has a differential path,
* the path must exist in the flat parent,
* and also be valid with respect to the reference model,
* i.e. in the sense that it corresponds to a legal potential construction of objects.
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VDIFP- specialised archetype attribute differential path validity'"
* @generated
*/
boolean validateAOMVDIFPspecialisedarchetypeattributedifferentialpathvalidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* This [AOM] Validation Rule is enforced by UML type and cardinality constraints associated with subsetted and/or redefined Properties.
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VSANCE- specialised archetype attribute node existence conformance'"
* @generated
*/
boolean validateAOMVSANCEspecialisedarchetypeattributenodeexistenceconformance(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The [AOM] validation rule is enforced by UML multiplicity constraints applicable to subsetted and/or redefined Properties.
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VSAM- specialised archetype attribute multiplicity conformance'"
* @generated
*/
boolean validateAOMVSAMspecialisedarchetypeattributemultiplicityconformance(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self.namespace.stereotypedBy('ComplexObjectConstraint')
* implies(
* self.subsettedProperty->notEmpty() or self.redefinedProperty->notEmpty()
* )
*
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VACSO- single-valued attribute child object occurrences validity'"
* @generated
*/
boolean validateAOMVACSOsinglevaluedattributechildobjectoccurrencesvalidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The [AOM] cardinality attribute of C_ATTRIBUTE is derived in UML from the set of sibling Properties subsetting/redefining a common Reference Model Property.
* The derivation is implemented as part of the AML-UML to [AOM] QVT transformation.
* The derived cardinality is computed from the sum of the lower and sum of the upper multiplicity ranges for the related Properties.
* The collection type characteristics are also derived from the related Properties.
* In summary, the [AOM] validation rule is enforced during provisioning from AML-UML to [AOM].
*
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VACMCU- cardinality/occurrences upper bound validity'"
* @generated
*/
boolean validateAOMVACMCUcardinalityoccurrencesupperboundvalidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self->select(s|s.namespace.stereotypedBy('ComplexObjectConstraint'))
* .subsettedProperty->union(self.redefinedProperty)
* ->select(r|r.upper>0)
* ->forAll(refProperty|
* self.namespace.oclAsType(Class).ownedAttribute->select(sibling|sibling.subsettedProperty->union(sibling.redefinedProperty)->includes(refProperty))
* .lower->sum()<=(refProperty.upper-1)
* )
*
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VACMCO- cardinality/occurrences orphans'"
* @generated
*/
boolean validateAOMVACMCOcardinalityoccurrencesorphans(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* This cardinality rule is enforced by UML constraints on subsetted and/or redefined properties.
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VCACA- archetype attribute reference model cardinality conformance'"
* @generated
*/
boolean validateAOMVCACAarchetypeattributereferencemodelcardinalityconformance(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self->select(s|s.namespace.stereotypedBy('ComplexObjectConstraint'))
* .subsettedProperty->union(self.redefinedProperty)
* ->select(r|r.upper>0)
* ->forAll(refProperty|
* self.namespace.oclAsType(Class).ownedAttribute->select(sibling|sibling.subsettedProperty->union(sibling.redefinedProperty)->includes(refProperty))
* .lower->sum()<=refProperty.upper
* )
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] WACMCL- cardinality/occurrences lower bound validity'"
* @generated
*/
boolean validateAOMWACMCLcardinalityoccurrenceslowerboundvalidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* This [AOM] validation rule is enforced by UML constraints related to cardinality of subsetted and/or redefined Properties.
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VSANCC- specialised archetype attribute node cardinality conformance'"
* @generated
*/
boolean validateAOMVSANCCspecialisedarchetypeattributenodecardinalityconformance(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The [AOM] Validation Rule is enforced by UML Namespace constraints for names.
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VCATU- attribute uniqueness'"
* @generated
*/
boolean validateAOMVCATUattributeuniqueness(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The [AOM] validation rule is enforced by UML type constraints related to subsetted and/or redefined Properties.
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VUNT- use_node reference model type validity'"
* @generated
*/
boolean validateAOMVUNTuseNodereferencemodeltypevalidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* (self.namespace.stereotypedBy('ComplexObjectConstraint') and self.aggregation=AggregationKind::none)
* implies(
* (self.type.getNearestPackage()=self.getNearestPackage())
* or self.getNearestPackage().packageImport.importedPackage->includes(self.type.getNearestPackage())
* )
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VUNP- use_node path validity'"
* @generated
*/
boolean validateAOMVUNPuseNodepathvalidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* A proxy is modeled using a Property aggregation of none.
* The aggregation of a redefined/subsetted Property, and consequently whether or not the node is a Proxy, may be different than the archetype Property.
* Therefore, it is permitted to use a proxy or regular node in a specialized archetype.
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VSUNT- use_node specialisation parent validity'"
* @generated
*/
boolean validateAOMVSUNTuseNodespecialisationparentvalidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The value of an assumed value must fall within the value space defined by the constraint to which it is attached.
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VOBAV- object node assumed value validity'"
* @generated
*/
boolean validateAOMVOBAVobjectnodeassumedvaluevalidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* (self._'context'.stereotypedBy('ComplexObjectConstraint')
* and self.specification.oclIsKindOf(Expression)
* and (self.specification.oclAsType(Expression).symbol='=')
* )
* implies
* self.specification.oclAsType(Expression).operand
* ->forAll(o|o.oclIsKindOf(InstanceValue)
* and o.oclAsType(InstanceValue).instance.stereotypedBy('ArchetypeTerm')
* and o.oclAsType(InstanceValue).instance.getNearestPackage().nestingPackage.nestingPackage=self.getNearestPackage()
* )
*
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VACDF- constraint code validity'"
* @generated
*/
boolean validateAOMVACDFconstraintcodevalidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self.base_Classifier.attribute->select(a|a.upper=0).type->forAll(t|
*
* t.oclAsType(Classifier).general
* ->forAll(g|g.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id
* ->forAll(e|e=t.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id->asSequence()->first())
* )
* )
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VSONPI- specialised archetype prohibited object node [AOM] node id validity'"
* @generated
*/
boolean validateAOMVSONPIspecialisedarchetypeprohibitedobjectnodeAOMnodeidvalidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self.base_Classifier.general->forAll(g|not(g.name.oclIsUndefined()) and (g.name<>''))
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] C_OBJECT:Invariant:Rm_type_name_valid'"
* @generated
*/
boolean validateAOMCOBJECTInvariantRmTypeNameValid(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* This Constraint is enforced by UML semantic for a Multiplicity upper bound of 0.
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] C_COMPLEX_OBJECT:Invariant:Prohibited_validity'"
* @generated
*/
boolean validateAOMCCOMPLEXOBJECTInvariantProhibitedValidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The invariant is definitional; it defines representation for a Property which has no value constraints (beyond the Reference Model type).
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] C_COMPLEX_OBJECT:Invariant:Any_allowed_validity'"
* @generated
*/
boolean validateAOMCCOMPLEXOBJECTInvariantAnyAllowedValidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The [AOM] invariant is always satisfied since its mapping to UML is ownedAttributes, which is a collection and is never oclIsUndefined().
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] C_COMPLEX_OBJECT:InvariantAttributes_valid'"
* @generated
*/
boolean validateAOMCCOMPLEXOBJECTInvariantAttributesValid(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self.base_Classifier.oclIsKindOf(Class)
* implies
* self.base_Classifier.oclAsType(Class).nestedClassifier
* ->select(n|n.general->exists(g|g=self.base_Classifier)).attribute
* ->forAll(a|a.subsettedProperty->forAll(s|s.namespace=self.base_Classifier)and a.redefinedProperty->forAll(s|s.namespace=self.base_Classifier))
*
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] C_COMPLEX_OBJECT:Tuples_valid'"
* @generated
*/
boolean validateAOMCCOMPLEXOBJECTTuplesValid(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* (
* self.namespace.stereotypedBy('ComplexObjectConstraint')
* and (
* (self.type.namespace.name='PrimitiveTypes')
* or(self.type.namespace.name='XMLPrimitiveTypes')
* or self.type.clientDependency->select(d|d.stereotypedBy('MappedDataType')).supplier->exists(t|(t.namespace.name='PrimitiveTypes')or(t.namespace.name='XMLPrimitiveTypes'))
* )
* )
* implies
* self.namespace.ownedRule->notEmpty()
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] C_PRIMITIVE_OBJECT:Invariant:Representation_validity'"
* @generated
*/
boolean validateAOMCPRIMITIVEOBJECTInvariantRepresentationValidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The [AOM] C_PRIMITIVE_OBJECT/assumed_value maps to an AML Constraint on a Property whose specification includes a type-specific declaration of the assumed value.  
* The assumed value is a ValueSpecification which should be typed in accordance with the type of the Property and should have a value in conformance with the constraints expressed on that Property's Type.
*
*
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] C_PRIMITIVE_OBJECT:Invariant:Assumed_value_valid'"
* @generated
*/
boolean validateAOMCPRIMITIVEOBJECTInvariantAssumedValueValid(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* (
* self.constrainedElement.oclIsKindOf(Property)
* and self.constrainedElement.oclAsType(Property).namespace.stereotypedBy('ComplexObjectConstraint')
* and (self.constrainedElement.oclAsType(Property).type.name='Boolean')
* and self.specification.oclIsKindOf(Expression)
* and ( self.specification.oclAsType(Expression).symbol='or')
* )
* implies(
*
* self.specification.oclAsType(Expression).operand->forAll(o|o.oclIsKindOf(LiteralBoolean))
* )
*
*
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] C_BOOLEAN:Invariant:Binary_consistency'"
* @generated
*/
boolean validateAOMCBOOLEANInvariantBinaryConsistency(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Each operand of an 'or' Expression must be a unique value.
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] C_BOOLEAN:Invariant:Prototype_value_consistency'"
* @generated
*/
boolean validateAOMCBOOLEANInvariantPrototypeValueConsistency(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* An [AOM] C_DATE/pattern_constraint (if present) maps to a the first operand of a 'P_C_DATE' Expression,
* where that first operand is a LiteralString named 'pattern_constraint' and its value must conform to the ISO 8601 date constraint pattern.
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] C_DATE:Invariant:Pattern_validity'"
* @generated
*/
boolean validateAOMCDATEInvariantPatternValidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self
* ->forAll(constraint|
* constraint.namespace.stereotypedBy('ComplexObjectConstraint')
* and constraint.constrainedElement->forAll(ce|ce.oclIsKindOf(Property))
* and constraint.specification.oclIsKindOf(Expression)
* and (constraint.specification.oclAsType(Expression).symbol='=')
* and constraint.specification.oclAsType(Expression).operand->forAll(o|o.oclIsKindOf(InstanceValue))
* )
* implies
* self.specification.oclAsType(Expression).operand->forAll(o|o.oclAsType(InstanceValue).instance.stereotypedBy('ArchetypeTerm'))
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] C_TERMINOLOGY_CODE:Invariant:Terminology_id_validity'"
* @generated
*/
boolean validateAOMCTERMINOLOGYCODEInvariantTerminologyIdValidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* (
* self.constrainedElement.oclIsKindOf(Property)
* and self.constrainedElement.oclAsType(Property).namespace.stereotypedBy('ComplexObjectConstraint')
* )
* implies(
* self.name.oclIsUndefined()
* or (self.name<>'')
* )
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] ASSERTION:Invariant:Tag_valid'"
* @generated
*/
boolean validateAOMASSERTIONInvariantTagValid(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* This [AOM] invariant is enforced by the UML constraint that a Constraint specification must be of type Boolean.
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] ASSERTION:Invariant:Expression_valid'"
* @generated
*/
boolean validateAOMASSERTIONInvariantExpressionValid(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* (
* self.namespace.stereotypedBy('ComplexObjectConstraint')
* and not(self.specification.oclIsUndefined())
* and self.specification.oclIsKindOf(OpaqueExpression)
* )
* implies(
* self.specification.name.oclIsUndefined()
* or(self.specification.name<>'')
* )
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] QUERY_VARIABLE:Invariant:Context_valid'"
* @generated
*/
boolean validateAOMQUERYVARIABLEInvariantContextValid(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self.getNearestPackage().stereotypedBy('Archetype')
* implies
* not(self.type.oclIsUndefined())
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] EXPR_ITEM:Invariant:Type_valid'"
* @generated
*/
boolean validateAOMEXPRITEMInvariantTypeValid(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* (
* self.getNearestPackage().stereotypedBy('Archetype')
* and(
* (self.symbol='=')
* or (self.symbol='<>')
* or (self.symbol='<=')
* or (self.symbol='<')
* or (self.symbol='>=')
* or (self.symbol='>')
* or (self.symbol='matches')
* or (self.symbol='and')
* or (self.symbol='or')
* or (self.symbol='xor')
* or (self.symbol='implies')
* or (self.symbol='for_all')
* or (self.symbol='exists')
* or (self.symbol='+')
* or (self.symbol='-')
* or (self.symbol='*')
* or (self.symbol='/')
* or (self.symbol='^')
*
* )
* )
* implies
* (self.operand->size()=1)
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] EXPR_UNARY_OPERATOR:Invariant:operand_valid'"
* @generated
*/
boolean validateAOMEXPRUNARYOPERATORInvariantoperandValid(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* (
* self.getNearestPackage().stereotypedBy('Archetype')
* and(
* (self.symbol='=')
* or (self.symbol='<>')
* or (self.symbol='<=')
* or (self.symbol='<')
* or (self.symbol='>=')
* or (self.symbol='>')
* or (self.symbol='matches')
* or (self.symbol='and')
* or (self.symbol='or')
* or (self.symbol='xor')
* or (self.symbol='implies')
* or (self.symbol='for_all')
* or (self.symbol='exists')
* or (self.symbol='+')
* or (self.symbol='-')
* or (self.symbol='*')
* or (self.symbol='/')
* or (self.symbol='^')
*
* )
* )
* implies
* (self.operand->size()=2)
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] EXPR_BINARY_OPERATOR:Invariant:left_operand_valid'"
* @generated
*/
boolean validateAOMEXPRBINARYOPERATORInvariantleftOperandValid(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* (
* self.getNearestPackage().stereotypedBy('Archetype')
* and(
* (self.symbol='=')
* or (self.symbol='<>')
* or (self.symbol='<=')
* or (self.symbol='<')
* or (self.symbol='>=')
* or (self.symbol='>')
* or (self.symbol='matches')
* or (self.symbol='and')
* or (self.symbol='or')
* or (self.symbol='xor')
* or (self.symbol='implies')
* or (self.symbol='for_all')
* or (self.symbol='exists')
* or (self.symbol='+')
* or (self.symbol='-')
* or (self.symbol='*')
* or (self.symbol='/')
* or (self.symbol='^')
*
* )
* )
* implies
* (self.operand->size()=2)
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] EXPR_BINARY_OPERATOR:Invariant:right_operand_valid'"
* @generated
*/
boolean validateAOMEXPRBINARYOPERATORInvariantrightOperandValid(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* (
* self.getNearestPackage().stereotypedBy('Archetype')
* and(
* (self.symbol='=')
* or (self.symbol='<>')
* or (self.symbol='<=')
* or (self.symbol='<')
* or (self.symbol='>=')
* or (self.symbol='>')
* or (self.symbol='matches')
* or (self.symbol='and')
* or (self.symbol='or')
* or (self.symbol='xor')
* or (self.symbol='implies')
* or (self.symbol='for_all')
* or (self.symbol='exists')
* or (self.symbol='+')
* or (self.symbol='-')
* or (self.symbol='*')
* or (self.symbol='/')
* or (self.symbol='^')
*
* )
* )
* implies(
* (self.operand->size()=2)
* or (self.operand->size()=1)
* )
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] OPERATOR_KIND:Invariant:Validity'"
* @generated
*/
boolean validateAOMOPERATORKINDInvariantValidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self->select(constraint|constraint.namespace.stereotypedBy('ComplexObjectConstraint') and constraint.constrainedElement->forAll(ce|ce.oclIsKindOf(Property)))
* ->select(c|c.specification
* ->forAll(e|e.oclIsKindOf(Expression) and (e.oclAsType(Expression).symbol='=') and (e.oclAsType(Expression).operand->forAll(o|o.oclIsKindOf(InstanceValue))))
* ).constrainedElement
* implies
* self.specification.oclAsType(Expression).operand.oclAsType(InstanceValue)
* ->forAll(o|o.instance.stereotypedBy('ArchetypeTerm') and (o.namespace.namespace.namespace.namespace=self.namespace.namespace))
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VATDF- value code validity'"
* @generated
*/
boolean validateAOMVATDFvaluecodevalidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self->select(constraint|constraint.namespace.stereotypedBy('ComplexObjectConstraint') and constraint.constrainedElement->forAll(ce|ce.oclIsKindOf(Property)))
* ->select(c|c.specification
* ->forAll(e|e.oclIsKindOf(Expression) and (e.oclAsType(Expression).symbol='=') and (e.oclAsType(Expression).operand->forAll(o|o.oclIsKindOf(InstanceValue))))
* ).constrainedElement
* implies
* self.specification.oclAsType(Expression).operand.oclAsType(InstanceValue)
* ->forAll(o|o.instance.stereotypedBy('ArchetypeTerm') and (o.namespace.namespace.namespace.namespace=self.namespace.namespace))
*
*
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VATDA- value set assumed value code validity'"
* @generated
*/
boolean validateAOMVATDAvaluesetassumedvaluecodevalidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self.base_Classifier.oclIsKindOf(Class)
* implies
* self.base_Classifier.oclAsType(Class).ownedAttribute->forAll(attribute|
* (
* attribute.stereotypedBy('ObjectConstraint')
* and
* (
* self.base_Classifier.oclAsType(Class).ownedAttribute->select(a|a<>attribute)->forAll(sibling|
* (
* sibling.stereotypedBy('ObjectConstraint')
* and
* not(sibling.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id->includes(attribute.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id->asSequence()->first()))
* )
* or(
* sibling.type.stereotypedBy('ObjectConstraint')
* and
* not(sibling.type.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id->includes(attribute.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id->asSequence()->first()))
* )
* )
* )
* )
* or(
* attribute.type.stereotypedBy('ObjectConstraint')
* and
* (
* self.base_Classifier.oclAsType(Class).ownedAttribute->select(a|a<>attribute)->forAll(sibling|
* (
* sibling.stereotypedBy('ObjectConstraint')
* and
* not(sibling.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id->includes(attribute.type.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id->asSequence()->first()))
* )
* or(
* sibling.type.stereotypedBy('ObjectConstraint')
* and
* not(sibling.type.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id->includes(attribute.type.appliedStereotype('ObjectConstraint').oclAsType(ObjectConstraint).id->asSequence()->first()))
* )
* )
* )
* )
* )
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VSONIF- specialised archetype object node identifier validity in flat siblings'"
* @generated
*/
boolean validateAOMVSONIFspecialisedarchetypeobjectnodeidentifiervalidityinflatsiblings(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* ((self.aggregation=AggregationKind::none) and self.namespace.stereotypedBy('ComplexObjectConstraint'))
* implies
* self.type.getNearestReferenceModel().oclIsUndefined()
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] C_COMPLEX_OBJECT_PROXY:Invariant:Consistency'"
* @generated
*/
boolean validateAOMCCOMPLEXOBJECTPROXYInvariantConsistency(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* (
* self.namespace.stereotypedBy('ComplexObjectConstraint')
* and not(self.type.getNearestReferenceModel().oclIsUndefined())
* )
* implies
* self.namespace.oclAsType(Class).ownedAttribute
* ->select(a|
* (a<>self)
* and not(a.subsetsProperty->includes(self.subsetsProperty->first()))
* and not(a.redefinesProperty->includes(self.redefinesProperty->first()))
* )
* ->isEmpty()
*
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] C_ATTRIBUTE:Invariant:Children_validity'"
* @generated
*/
boolean validateAOMCATTRIBUTEInvariantChildrenValidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self->select(s|s.namespace.stereotypedBy('ComplexObjectConstraint'))
* .subsettedProperty->union(self.redefinedProperty)
* ->select(r|r.upper>0)
* ->forAll(refProperty|
* self.namespace.oclAsType(Class).ownedAttribute->select(sibling|sibling.subsettedProperty->union(sibling.redefinedProperty)->includes(refProperty))
* ->select(p|p.lower>0)
* ->size()<refProperty.upper
* )
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] C_ATTRIBUTE:Invariant:Children_orphans_validity'"
* @generated
*/
boolean validateAOMCATTRIBUTEInvariantChildrenOrphansValidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self->select(s|s.namespace.stereotypedBy('ComplexObjectConstraint'))
* .subsettedProperty->union(self.redefinedProperty)
* ->select(r|r.upper>0)
* ->forAll(refProperty|
* self.namespace.oclAsType(Class).ownedAttribute->select(sibling|sibling.subsettedProperty->union(sibling.redefinedProperty)->includes(refProperty))
* .lower->sum()<=refProperty.upper
* )
*
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] C_ATTRIBUTE:Invariant:Children_occurrences_lower_sum_validity'"
* @generated
*/
boolean validateAOMCATTRIBUTEInvariantChildrenOccurrencesLowerSumValidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self->select(s|s.namespace.stereotypedBy('ComplexObjectConstraint'))
* .subsettedProperty->union(self.redefinedProperty)
* ->select(r|r.upper>0)
* ->forAll(refProperty|
* self.namespace.oclAsType(Class).ownedAttribute->select(sibling|sibling.subsettedProperty->union(sibling.redefinedProperty)->includes(refProperty))
* ->forAll(p|p.aggregation=self.aggregation)
* )
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] C_ATTRIBUTE:Invariant:Cardinality_valid'"
* @generated
*/
boolean validateAOMCATTRIBUTEInvariantCardinalityValid(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self->select(s|s.namespace.stereotypedBy('ComplexObjectConstraint'))
* .subsettedProperty->union(self.redefinedProperty)
* ->select(r|r.upper=1)
* ->forAll(refProperty|
* self.namespace.oclAsType(Class).ownedAttribute->select(sibling|sibling.subsettedProperty->union(sibling.redefinedProperty)->includes(refProperty))
* ->forAll(p|p.upper=1)
* )
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] C_ATTRIBUTE:Invariant:Alternatives_valid'"
* @generated
*/
boolean validateAOMCATTRIBUTEInvariantAlternativesValid(DiagnosticChain diagnostics, Map<Object, Object> context);
} // ComplexObjectConstraint