blob: b66dfbfc0a1ecb253631ef30ed406709701de992 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009, 2011 SAP AG 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:
* SAP AG - initial API and implementation
******************************************************************************
* $Id: ClassesValidator.java,v 1.2 2011/03/05 21:51:24 auhl Exp $
*/
package data.classes.util;
import data.classes.*;
import java.util.Map;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.util.EObjectValidator;
/**
* <!-- begin-user-doc -->
* The <b>Validator</b> for the model.
* <!-- end-user-doc -->
* @see data.classes.ClassesPackage
* @generated
*/
public class ClassesValidator extends EObjectValidator {
/**
* The cached model package
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static final ClassesValidator INSTANCE = new ClassesValidator();
/**
* A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes} from this package.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see org.eclipse.emf.common.util.Diagnostic#getSource()
* @see org.eclipse.emf.common.util.Diagnostic#getCode()
* @generated
*/
public static final String DIAGNOSTIC_SOURCE = "data.classes";
/**
* A constant with a fixed name that can be used as the base value for additional hand written constants.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 0;
/**
* A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final int DIAGNOSTIC_CODE_COUNT = GENERATED_DIAGNOSTIC_CODE_COUNT;
/**
* Creates an instance of the switch.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ClassesValidator() {
super();
}
/**
* Returns the package of this validator switch.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EPackage getEPackage() {
return ClassesPackage.eINSTANCE;
}
/**
* Calls <code>validateXXX</code> for the corresponding classifier of the model.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected boolean validate(int classifierID, Object value, DiagnosticChain diagnostics, Map<Object, Object> context) {
switch (classifierID) {
case ClassesPackage.ASSOCIATION:
return validateAssociation((Association)value, diagnostics, context);
case ClassesPackage.SIGNATURE:
return validateSignature((Signature)value, diagnostics, context);
case ClassesPackage.ASSOCIATION_END:
return validateAssociationEnd((AssociationEnd)value, diagnostics, context);
case ClassesPackage.SAP_CLASS:
return validateSapClass((SapClass)value, diagnostics, context);
case ClassesPackage.DELEGATION:
return validateDelegation((Delegation)value, diagnostics, context);
case ClassesPackage.TYPED_ELEMENT:
return validateTypedElement((TypedElement)value, diagnostics, context);
case ClassesPackage.CONTEXT:
return validateContext((Context)value, diagnostics, context);
case ClassesPackage.MULTIPLICITY:
return validateMultiplicity((Multiplicity)value, diagnostics, context);
case ClassesPackage.SIGNATURE_IMPLEMENTATION:
return validateSignatureImplementation((SignatureImplementation)value, diagnostics, context);
case ClassesPackage.LINK_TRAVERSAL:
return validateLinkTraversal((LinkTraversal)value, diagnostics, context);
case ClassesPackage.LINK_ADDITION:
return validateLinkAddition((LinkAddition)value, diagnostics, context);
case ClassesPackage.LINK_REMOVAL:
return validateLinkRemoval((LinkRemoval)value, diagnostics, context);
case ClassesPackage.ASSOCIATION_END_SIGNATURE_IMPLEMENTATION:
return validateAssociationEndSignatureImplementation((AssociationEndSignatureImplementation)value, diagnostics, context);
case ClassesPackage.CLASS_TYPE_DEFINITION:
return validateClassTypeDefinition((ClassTypeDefinition)value, diagnostics, context);
case ClassesPackage.TYPE_DEFINITION:
return validateTypeDefinition((TypeDefinition)value, diagnostics, context);
case ClassesPackage.NESTED_TYPE_DEFINITION:
return validateNestedTypeDefinition((NestedTypeDefinition)value, diagnostics, context);
case ClassesPackage.FUNCTION_SIGNATURE_TYPE_DEFINITION:
return validateFunctionSignatureTypeDefinition((FunctionSignatureTypeDefinition)value, diagnostics, context);
case ClassesPackage.METHOD_SIGNATURE:
return validateMethodSignature((MethodSignature)value, diagnostics, context);
case ClassesPackage.FUNCTION_SIGNATURE:
return validateFunctionSignature((FunctionSignature)value, diagnostics, context);
case ClassesPackage.LINK_SETTING:
return validateLinkSetting((LinkSetting)value, diagnostics, context);
case ClassesPackage.TYPE_ADAPTER:
return validateTypeAdapter((TypeAdapter)value, diagnostics, context);
case ClassesPackage.PARAMETER:
return validateParameter((Parameter)value, diagnostics, context);
case ClassesPackage.NAMED_VALUE:
return validateNamedValue((NamedValue)value, diagnostics, context);
case ClassesPackage.PLATFORM_SPECIFIC_IMPLEMENTATION:
return validatePlatformSpecificImplementation((PlatformSpecificImplementation)value, diagnostics, context);
case ClassesPackage.NATIVE_IMPL:
return validateNativeImpl((NativeImpl)value, diagnostics, context);
case ClassesPackage.SIGNATURE_OWNER:
return validateSignatureOwner((SignatureOwner)value, diagnostics, context);
case ClassesPackage.EXTENT_MODIFYING_ASSOCIATION_END_SIGNATURE_IMPLEMENTATION:
return validateExtentModifyingAssociationEndSignatureImplementation((ExtentModifyingAssociationEndSignatureImplementation)value, diagnostics, context);
case ClassesPackage.FUNCTION_SIGNATURE_IMPLEMENTATION:
return validateFunctionSignatureImplementation((FunctionSignatureImplementation)value, diagnostics, context);
case ClassesPackage.ACTUAL_OBJECT_PARAMETER:
return validateActualObjectParameter((ActualObjectParameter)value, diagnostics, context);
case ClassesPackage.CONVERTER_BETWEEN_PARAMETRIZATIONS:
return validateConverterBetweenParametrizations((ConverterBetweenParametrizations)value, diagnostics, context);
case ClassesPackage.LINK_MANIPULATION_AT_POSITION:
return validateLinkManipulationAtPosition((LinkManipulationAtPosition)value, diagnostics, context);
case ClassesPackage.IN_SCOPE:
return validateInScope((InScope)value, diagnostics, context);
default:
return true;
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateAssociation(Association association, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(association, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(association, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(association, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(association, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(association, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(association, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(association, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(association, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(association, diagnostics, context);
if (result || diagnostics != null) result &= validateAssociation_UniquenessOnBothEndsMustBeTheSame(association, diagnostics, context);
if (result || diagnostics != null) result &= validateAssociation_AtMostOneCompositeEnd(association, diagnostics, context);
if (result || diagnostics != null) result &= validateAssociation_AtLeastOneNavigableEnd(association, diagnostics, context);
if (result || diagnostics != null) result &= validateAssociation_AtMostOneEqualityContributionForTwoValueClasses(association, diagnostics, context);
if (result || diagnostics != null) result &= validateAssociation_AtMostOneOrderedEnd(association, diagnostics, context);
return result;
}
/**
* The cached validation expression for the UniquenessOnBothEndsMustBeTheSame constraint of '<em>Association</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String ASSOCIATION__UNIQUENESS_ON_BOTH_ENDS_MUST_BE_THE_SAME__EEXPRESSION = "self.ends->forAll( e1, e2 : AssociationEnd |\r\n" +
" e1 <> e2 implies e1.type.unique = e2.type.unique)";
/**
* Validates the UniquenessOnBothEndsMustBeTheSame constraint of '<em>Association</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateAssociation_UniquenessOnBothEndsMustBeTheSame(Association association, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.ASSOCIATION,
association,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"UniquenessOnBothEndsMustBeTheSame",
ASSOCIATION__UNIQUENESS_ON_BOTH_ENDS_MUST_BE_THE_SAME__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the AtMostOneCompositeEnd constraint of '<em>Association</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String ASSOCIATION__AT_MOST_ONE_COMPOSITE_END__EEXPRESSION = "self.ends->select(composite)->size() < 2";
/**
* Validates the AtMostOneCompositeEnd constraint of '<em>Association</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateAssociation_AtMostOneCompositeEnd(Association association, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.ASSOCIATION,
association,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"AtMostOneCompositeEnd",
ASSOCIATION__AT_MOST_ONE_COMPOSITE_END__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the AtLeastOneNavigableEnd constraint of '<em>Association</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String ASSOCIATION__AT_LEAST_ONE_NAVIGABLE_END__EEXPRESSION = "self.ends->select(ae:AssociationEnd | ae.navigable)->notEmpty()";
/**
* Validates the AtLeastOneNavigableEnd constraint of '<em>Association</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateAssociation_AtLeastOneNavigableEnd(Association association, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.ASSOCIATION,
association,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"AtLeastOneNavigableEnd",
ASSOCIATION__AT_LEAST_ONE_NAVIGABLE_END__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the AtMostOneEqualityContributionForTwoValueClasses constraint of '<em>Association</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String ASSOCIATION__AT_MOST_ONE_EQUALITY_CONTRIBUTION_FOR_TWO_VALUE_CLASSES__EEXPRESSION = "self.ends->select(contributesToEquality and type.clazz.valueType)->size() < 2";
/**
* Validates the AtMostOneEqualityContributionForTwoValueClasses constraint of '<em>Association</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateAssociation_AtMostOneEqualityContributionForTwoValueClasses(Association association, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.ASSOCIATION,
association,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"AtMostOneEqualityContributionForTwoValueClasses",
ASSOCIATION__AT_MOST_ONE_EQUALITY_CONTRIBUTION_FOR_TWO_VALUE_CLASSES__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the AtMostOneOrderedEnd constraint of '<em>Association</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String ASSOCIATION__AT_MOST_ONE_ORDERED_END__EEXPRESSION = "self.ends->select(ae|ae.type.ordered)->size() < 2";
/**
* Validates the AtMostOneOrderedEnd constraint of '<em>Association</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateAssociation_AtMostOneOrderedEnd(Association association, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.ASSOCIATION,
association,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"AtMostOneOrderedEnd",
ASSOCIATION__AT_MOST_ONE_ORDERED_END__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateSignature(Signature signature, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(signature, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(signature, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(signature, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(signature, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(signature, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(signature, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(signature, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(signature, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(signature, diagnostics, context);
if (result || diagnostics != null) result &= validateSignature_OnlyTrailingOptionalParameters(signature, diagnostics, context);
return result;
}
/**
* The cached validation expression for the OnlyTrailingOptionalParameters constraint of '<em>Signature</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String SIGNATURE__ONLY_TRAILING_OPTIONAL_PARAMETERS__EEXPRESSION = "self.input->forAll(p | p.defaultValue->notEmpty() implies Sequence{(self.input->indexOf(p)+1)..self.input->size()}->forAll(\r\n" +
" i | self.input->at(i).defaultValue->notEmpty()))";
/**
* Validates the OnlyTrailingOptionalParameters constraint of '<em>Signature</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateSignature_OnlyTrailingOptionalParameters(Signature signature, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.SIGNATURE,
signature,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"OnlyTrailingOptionalParameters",
SIGNATURE__ONLY_TRAILING_OPTIONAL_PARAMETERS__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateAssociationEnd(AssociationEnd associationEnd, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(associationEnd, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(associationEnd, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(associationEnd, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(associationEnd, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(associationEnd, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(associationEnd, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(associationEnd, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(associationEnd, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(associationEnd, diagnostics, context);
if (result || diagnostics != null) result &= validateAssociationEnd_ExposingClassesEqualOppositeEndsType(associationEnd, diagnostics, context);
if (result || diagnostics != null) result &= validateAssociationEnd_NoCompositionWithValueClass(associationEnd, diagnostics, context);
if (result || diagnostics != null) result &= validateAssociationEnd_EqualityContributionsMustBeExposedAndNavigable(associationEnd, diagnostics, context);
if (result || diagnostics != null) result &= validateAssociationEnd_EqualityContributingEndOnValueMustHaveUnlimitedUpperBounds(associationEnd, diagnostics, context);
return result;
}
/**
* The cached validation expression for the ExposingClassesEqualOppositeEndsType constraint of '<em>Association End</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String ASSOCIATION_END__EXPOSING_CLASSES_EQUAL_OPPOSITE_ENDS_TYPE__EEXPRESSION = "self.signatureImplementations.implements_.owner->forAll(c:SignatureOwner | c = self.otherEnd().type.clazz)";
/**
* Validates the ExposingClassesEqualOppositeEndsType constraint of '<em>Association End</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateAssociationEnd_ExposingClassesEqualOppositeEndsType(AssociationEnd associationEnd, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.ASSOCIATION_END,
associationEnd,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"ExposingClassesEqualOppositeEndsType",
ASSOCIATION_END__EXPOSING_CLASSES_EQUAL_OPPOSITE_ENDS_TYPE__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the NoCompositionWithValueClass constraint of '<em>Association End</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String ASSOCIATION_END__NO_COMPOSITION_WITH_VALUE_CLASS__EEXPRESSION = "self.composite implies self.association.ends.type->forAll(ctd:ClassTypeDefinition | not ctd.clazz.valueType)";
/**
* Validates the NoCompositionWithValueClass constraint of '<em>Association End</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateAssociationEnd_NoCompositionWithValueClass(AssociationEnd associationEnd, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.ASSOCIATION_END,
associationEnd,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"NoCompositionWithValueClass",
ASSOCIATION_END__NO_COMPOSITION_WITH_VALUE_CLASS__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the EqualityContributionsMustBeExposedAndNavigable constraint of '<em>Association End</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String ASSOCIATION_END__EQUALITY_CONTRIBUTIONS_MUST_BE_EXPOSED_AND_NAVIGABLE__EEXPRESSION = "self.contributesToEquality implies (self.otherEnd().signatureImplementations->notEmpty() and self.otherEnd().navigable)";
/**
* Validates the EqualityContributionsMustBeExposedAndNavigable constraint of '<em>Association End</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateAssociationEnd_EqualityContributionsMustBeExposedAndNavigable(AssociationEnd associationEnd, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.ASSOCIATION_END,
associationEnd,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"EqualityContributionsMustBeExposedAndNavigable",
ASSOCIATION_END__EQUALITY_CONTRIBUTIONS_MUST_BE_EXPOSED_AND_NAVIGABLE__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the EqualityContributingEndOnValueMustHaveUnlimitedUpperBounds constraint of '<em>Association End</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String ASSOCIATION_END__EQUALITY_CONTRIBUTING_END_ON_VALUE_MUST_HAVE_UNLIMITED_UPPER_BOUNDS__EEXPRESSION = "(self.type.clazz.valueType and self.contributesToEquality and\r\n" +
" self.type.clazz.getAssociationEnds()->exists(ae |\r\n" +
" ae <> self and ae.contributesToEquality)) implies\r\n" +
" self.type.isMany()";
/**
* Validates the EqualityContributingEndOnValueMustHaveUnlimitedUpperBounds constraint of '<em>Association End</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateAssociationEnd_EqualityContributingEndOnValueMustHaveUnlimitedUpperBounds(AssociationEnd associationEnd, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.ASSOCIATION_END,
associationEnd,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"EqualityContributingEndOnValueMustHaveUnlimitedUpperBounds",
ASSOCIATION_END__EQUALITY_CONTRIBUTING_END_ON_VALUE_MUST_HAVE_UNLIMITED_UPPER_BOUNDS__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateSapClass(SapClass sapClass, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(sapClass, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(sapClass, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(sapClass, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(sapClass, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(sapClass, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(sapClass, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(sapClass, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(sapClass, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(sapClass, diagnostics, context);
if (result || diagnostics != null) result &= validateSapClass_OnlyValueClassesCanHaveObjectParameters(sapClass, diagnostics, context);
if (result || diagnostics != null) result &= validateSapClass_OnlyObjectParameterizedClassesCanHaveConverter(sapClass, diagnostics, context);
if (result || diagnostics != null) result &= validateSapClass_OnlyTrailingOptionalParameters(sapClass, diagnostics, context);
if (result || diagnostics != null) result &= validateSapClass_NoRecursionForObjectParameters(sapClass, diagnostics, context);
return result;
}
/**
* The cached validation expression for the OnlyValueClassesCanHaveObjectParameters constraint of '<em>Sap Class</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String SAP_CLASS__ONLY_VALUE_CLASSES_CAN_HAVE_OBJECT_PARAMETERS__EEXPRESSION = "self.formalObjectParameters->notEmpty() implies self.valueType";
/**
* Validates the OnlyValueClassesCanHaveObjectParameters constraint of '<em>Sap Class</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateSapClass_OnlyValueClassesCanHaveObjectParameters(SapClass sapClass, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.SAP_CLASS,
sapClass,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"OnlyValueClassesCanHaveObjectParameters",
SAP_CLASS__ONLY_VALUE_CLASSES_CAN_HAVE_OBJECT_PARAMETERS__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the OnlyObjectParameterizedClassesCanHaveConverter constraint of '<em>Sap Class</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String SAP_CLASS__ONLY_OBJECT_PARAMETERIZED_CLASSES_CAN_HAVE_CONVERTER__EEXPRESSION = "self.converterBetweenParametrizations->notEmpty() implies self.formalObjectParameters->notEmpty()";
/**
* Validates the OnlyObjectParameterizedClassesCanHaveConverter constraint of '<em>Sap Class</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateSapClass_OnlyObjectParameterizedClassesCanHaveConverter(SapClass sapClass, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.SAP_CLASS,
sapClass,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"OnlyObjectParameterizedClassesCanHaveConverter",
SAP_CLASS__ONLY_OBJECT_PARAMETERIZED_CLASSES_CAN_HAVE_CONVERTER__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the OnlyTrailingOptionalParameters constraint of '<em>Sap Class</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String SAP_CLASS__ONLY_TRAILING_OPTIONAL_PARAMETERS__EEXPRESSION = "self.formalObjectParameters->forAll(p | p.defaultValue->notEmpty() implies Sequence{(self.formalObjectParameters->indexOf(p)+1)..self.formalObjectParameters->size()}->forAll(\r\n" +
" i | self.formalObjectParameters->at(i).defaultValue->notEmpty()))";
/**
* Validates the OnlyTrailingOptionalParameters constraint of '<em>Sap Class</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateSapClass_OnlyTrailingOptionalParameters(SapClass sapClass, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.SAP_CLASS,
sapClass,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"OnlyTrailingOptionalParameters",
SAP_CLASS__ONLY_TRAILING_OPTIONAL_PARAMETERS__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the NoRecursionForObjectParameters constraint of '<em>Sap Class</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String SAP_CLASS__NO_RECURSION_FOR_OBJECT_PARAMETERS__EEXPRESSION = "true -- TODO implement this";
/**
* Validates the NoRecursionForObjectParameters constraint of '<em>Sap Class</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateSapClass_NoRecursionForObjectParameters(SapClass sapClass, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.SAP_CLASS,
sapClass,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"NoRecursionForObjectParameters",
SAP_CLASS__NO_RECURSION_FOR_OBJECT_PARAMETERS__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateDelegation(Delegation delegation, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(delegation, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(delegation, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(delegation, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(delegation, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(delegation, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(delegation, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(delegation, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(delegation, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(delegation, diagnostics, context);
if (result || diagnostics != null) result &= validateDelegation_ToEndMustHaveMultiplicityOfOne(delegation, diagnostics, context);
return result;
}
/**
* The cached validation expression for the ToEndMustHaveMultiplicityOfOne constraint of '<em>Delegation</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String DELEGATION__TO_END_MUST_HAVE_MULTIPLICITY_OF_ONE__EEXPRESSION = "self.from.otherEnd().type.lowerMultiplicity = 1 and\r\n" +
" self.from.otherEnd().type.upperMultiplicity = 1";
/**
* Validates the ToEndMustHaveMultiplicityOfOne constraint of '<em>Delegation</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateDelegation_ToEndMustHaveMultiplicityOfOne(Delegation delegation, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.DELEGATION,
delegation,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"ToEndMustHaveMultiplicityOfOne",
DELEGATION__TO_END_MUST_HAVE_MULTIPLICITY_OF_ONE__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateTypedElement(TypedElement typedElement, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(typedElement, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateContext(Context context, DiagnosticChain diagnostics, Map<Object, Object> theContext) {
if (!validate_NoCircularContainment(context, diagnostics, theContext)) return false;
boolean result = validate_EveryMultiplicityConforms(context, diagnostics, theContext);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(context, diagnostics, theContext);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(context, diagnostics, theContext);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(context, diagnostics, theContext);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(context, diagnostics, theContext);
if (result || diagnostics != null) result &= validate_UniqueID(context, diagnostics, theContext);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(context, diagnostics, theContext);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(context, diagnostics, theContext);
if (result || diagnostics != null) result &= validateContext_ConditionMustBeBoolean(context, diagnostics, theContext);
if (result || diagnostics != null) result &= validateContext_ConstraintForRightClass(context, diagnostics, theContext);
return result;
}
/**
* The cached validation expression for the ConditionMustBeBoolean constraint of '<em>Context</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String CONTEXT__CONDITION_MUST_BE_BOOLEAN__EEXPRESSION = "self.condition.getType().upperMultiplicity = 1 and\r\n" +
" self.condition.getType().oclIsKindOf(ClassTypeDefinition) and\r\n" +
" self.condition.getType().oclAsType(ClassTypeDefinition).clazz.name = 'Boolean'";
/**
* Validates the ConditionMustBeBoolean constraint of '<em>Context</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateContext_ConditionMustBeBoolean(Context context, DiagnosticChain diagnostics, Map<Object, Object> theContext) {
return
validate
(ClassesPackage.Literals.CONTEXT,
context,
diagnostics,
theContext,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"ConditionMustBeBoolean",
CONTEXT__CONDITION_MUST_BE_BOOLEAN__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the ConstraintForRightClass constraint of '<em>Context</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String CONTEXT__CONSTRAINT_FOR_RIGHT_CLASS__EEXPRESSION = "self.constraints->forAll(c | c.constrainedType = self.for_)";
/**
* Validates the ConstraintForRightClass constraint of '<em>Context</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateContext_ConstraintForRightClass(Context context, DiagnosticChain diagnostics, Map<Object, Object> theContext) {
return
validate
(ClassesPackage.Literals.CONTEXT,
context,
diagnostics,
theContext,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"ConstraintForRightClass",
CONTEXT__CONSTRAINT_FOR_RIGHT_CLASS__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateMultiplicity(Multiplicity multiplicity, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(multiplicity, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateSignatureImplementation(SignatureImplementation signatureImplementation, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(signatureImplementation, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateLinkTraversal(LinkTraversal linkTraversal, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(linkTraversal, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(linkTraversal, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(linkTraversal, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(linkTraversal, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(linkTraversal, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(linkTraversal, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(linkTraversal, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(linkTraversal, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(linkTraversal, diagnostics, context);
if (result || diagnostics != null) result &= validateAssociationEndSignatureImplementation_OnlyOnOtherEndsClassOrClassConformingToItOrAdapterAdaptingToIt(linkTraversal, diagnostics, context);
if (result || diagnostics != null) result &= validateLinkTraversal_OutputTypeMatchEndType(linkTraversal, diagnostics, context);
if (result || diagnostics != null) result &= validateLinkTraversal_MustBeNavigable(linkTraversal, diagnostics, context);
return result;
}
/**
* The cached validation expression for the OutputTypeMatchEndType constraint of '<em>Link Traversal</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String LINK_TRAVERSAL__OUTPUT_TYPE_MATCH_END_TYPE__EEXPRESSION = "self.implements_.input->isEmpty() and\r\n" +
" self.implements_.output.oclIsKindOf(ClassTypeDefinition) and \r\n" +
" self.implements_.output.oclAsType(ClassTypeDefinition).clazz = self.end.type.clazz";
/**
* Validates the OutputTypeMatchEndType constraint of '<em>Link Traversal</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateLinkTraversal_OutputTypeMatchEndType(LinkTraversal linkTraversal, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.LINK_TRAVERSAL,
linkTraversal,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"OutputTypeMatchEndType",
LINK_TRAVERSAL__OUTPUT_TYPE_MATCH_END_TYPE__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the MustBeNavigable constraint of '<em>Link Traversal</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String LINK_TRAVERSAL__MUST_BE_NAVIGABLE__EEXPRESSION = "self.end.navigable";
/**
* Validates the MustBeNavigable constraint of '<em>Link Traversal</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateLinkTraversal_MustBeNavigable(LinkTraversal linkTraversal, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.LINK_TRAVERSAL,
linkTraversal,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"MustBeNavigable",
LINK_TRAVERSAL__MUST_BE_NAVIGABLE__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateLinkAddition(LinkAddition linkAddition, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(linkAddition, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(linkAddition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(linkAddition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(linkAddition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(linkAddition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(linkAddition, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(linkAddition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(linkAddition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(linkAddition, diagnostics, context);
if (result || diagnostics != null) result &= validateAssociationEndSignatureImplementation_OnlyOnOtherEndsClassOrClassConformingToItOrAdapterAdaptingToIt(linkAddition, diagnostics, context);
if (result || diagnostics != null) result &= validateExtentModifyingAssociationEndSignatureImplementation_MustNotModifyExtentIfEqualityRelevantForValueClass(linkAddition, diagnostics, context);
if (result || diagnostics != null) result &= validateExtentModifyingAssociationEndSignatureImplementation_MustNotImplementSideEffectFreeOperation(linkAddition, diagnostics, context);
if (result || diagnostics != null) result &= validateLinkAddition_AdditionInputTypeMatchEndType(linkAddition, diagnostics, context);
return result;
}
/**
* The cached validation expression for the AdditionInputTypeMatchEndType constraint of '<em>Link Addition</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String LINK_ADDITION__ADDITION_INPUT_TYPE_MATCH_END_TYPE__EEXPRESSION = "self.implements_.output->isEmpty() and\r\n" +
" self.implements_.input->size() = 1 and \r\n" +
" self.implements_.input->at(1).getType().oclIsKindOf(ClassTypeDefinition) and \r\n" +
" self.implements_.input->at(1).getType().oclAsType(ClassTypeDefinition).clazz = self.end.type.clazz";
/**
* Validates the AdditionInputTypeMatchEndType constraint of '<em>Link Addition</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateLinkAddition_AdditionInputTypeMatchEndType(LinkAddition linkAddition, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.LINK_ADDITION,
linkAddition,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"AdditionInputTypeMatchEndType",
LINK_ADDITION__ADDITION_INPUT_TYPE_MATCH_END_TYPE__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateLinkRemoval(LinkRemoval linkRemoval, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(linkRemoval, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(linkRemoval, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(linkRemoval, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(linkRemoval, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(linkRemoval, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(linkRemoval, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(linkRemoval, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(linkRemoval, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(linkRemoval, diagnostics, context);
if (result || diagnostics != null) result &= validateAssociationEndSignatureImplementation_OnlyOnOtherEndsClassOrClassConformingToItOrAdapterAdaptingToIt(linkRemoval, diagnostics, context);
if (result || diagnostics != null) result &= validateExtentModifyingAssociationEndSignatureImplementation_MustNotModifyExtentIfEqualityRelevantForValueClass(linkRemoval, diagnostics, context);
if (result || diagnostics != null) result &= validateExtentModifyingAssociationEndSignatureImplementation_MustNotImplementSideEffectFreeOperation(linkRemoval, diagnostics, context);
if (result || diagnostics != null) result &= validateLinkRemoval_RemovalTypeMatchEndType(linkRemoval, diagnostics, context);
return result;
}
/**
* The cached validation expression for the RemovalTypeMatchEndType constraint of '<em>Link Removal</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String LINK_REMOVAL__REMOVAL_TYPE_MATCH_END_TYPE__EEXPRESSION = "self.implements_.output->isEmpty() and\r\n" +
" self.implements_.input->size() = 1 and \r\n" +
" self.implements_.input->at(1).getType().oclIsKindOf(ClassTypeDefinition) and \r\n" +
" self.implements_.input->at(1).getType().oclAsType(ClassTypeDefinition).clazz = self.end.type.clazz";
/**
* Validates the RemovalTypeMatchEndType constraint of '<em>Link Removal</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateLinkRemoval_RemovalTypeMatchEndType(LinkRemoval linkRemoval, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.LINK_REMOVAL,
linkRemoval,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"RemovalTypeMatchEndType",
LINK_REMOVAL__REMOVAL_TYPE_MATCH_END_TYPE__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateAssociationEndSignatureImplementation(AssociationEndSignatureImplementation associationEndSignatureImplementation, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(associationEndSignatureImplementation, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(associationEndSignatureImplementation, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(associationEndSignatureImplementation, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(associationEndSignatureImplementation, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(associationEndSignatureImplementation, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(associationEndSignatureImplementation, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(associationEndSignatureImplementation, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(associationEndSignatureImplementation, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(associationEndSignatureImplementation, diagnostics, context);
if (result || diagnostics != null) result &= validateAssociationEndSignatureImplementation_OnlyOnOtherEndsClassOrClassConformingToItOrAdapterAdaptingToIt(associationEndSignatureImplementation, diagnostics, context);
return result;
}
/**
* The cached validation expression for the OnlyOnOtherEndsClassOrClassConformingToItOrAdapterAdaptingToIt constraint of '<em>Association End Signature Implementation</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String ASSOCIATION_END_SIGNATURE_IMPLEMENTATION__ONLY_ON_OTHER_ENDS_CLASS_OR_CLASS_CONFORMING_TO_IT_OR_ADAPTER_ADAPTING_TO_IT__EEXPRESSION = "(self.implements_.owner.oclIsKindOf(SapClass) and\r\n" +
" self.implements_.owner.oclAsType(SapClass).conformsTo(self.end.otherEnd().type.clazz))\r\n" +
" or (self.implements_.owner.oclIsKindOf(TypeAdapter) and\r\n" +
" self.implements_.owner.oclAsType(TypeAdapter).adapted.conformsTo(self.end.otherEnd().type.clazz))";
/**
* Validates the OnlyOnOtherEndsClassOrClassConformingToItOrAdapterAdaptingToIt constraint of '<em>Association End Signature Implementation</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateAssociationEndSignatureImplementation_OnlyOnOtherEndsClassOrClassConformingToItOrAdapterAdaptingToIt(AssociationEndSignatureImplementation associationEndSignatureImplementation, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.ASSOCIATION_END_SIGNATURE_IMPLEMENTATION,
associationEndSignatureImplementation,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"OnlyOnOtherEndsClassOrClassConformingToItOrAdapterAdaptingToIt",
ASSOCIATION_END_SIGNATURE_IMPLEMENTATION__ONLY_ON_OTHER_ENDS_CLASS_OR_CLASS_CONFORMING_TO_IT_OR_ADAPTER_ADAPTING_TO_IT__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateClassTypeDefinition(ClassTypeDefinition classTypeDefinition, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(classTypeDefinition, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(classTypeDefinition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(classTypeDefinition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(classTypeDefinition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(classTypeDefinition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(classTypeDefinition, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(classTypeDefinition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(classTypeDefinition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(classTypeDefinition, diagnostics, context);
if (result || diagnostics != null) result &= validateClassTypeDefinition_ActualObjectsParametersMatchSignature(classTypeDefinition, diagnostics, context);
return result;
}
/**
* The cached validation expression for the ActualObjectsParametersMatchSignature constraint of '<em>Class Type Definition</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String CLASS_TYPE_DEFINITION__ACTUAL_OBJECTS_PARAMETERS_MATCH_SIGNATURE__EEXPRESSION = "let numberOfMandatoryParameters:Integer =\r\n" +
" self.clazz.formalObjectParameters->select(p|p.defaultValue->isEmpty())->size()\r\n" +
" in\r\n" +
" self.objectParameters->size() >= numberOfMandatoryParameters and\r\n" +
" self.objectParameters->size() <= self.clazz.formalObjectParameters->size() and\r\n" +
" Sequence{1..self.objectParameters->size()}->forAll(i:Integer|\r\n" +
" self.objectParameters->at(i).formalObjectParameter =\r\n" +
" self.clazz.formalObjectParameters->at(i))";
/**
* Validates the ActualObjectsParametersMatchSignature constraint of '<em>Class Type Definition</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateClassTypeDefinition_ActualObjectsParametersMatchSignature(ClassTypeDefinition classTypeDefinition, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.CLASS_TYPE_DEFINITION,
classTypeDefinition,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"ActualObjectsParametersMatchSignature",
CLASS_TYPE_DEFINITION__ACTUAL_OBJECTS_PARAMETERS_MATCH_SIGNATURE__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateTypeDefinition(TypeDefinition typeDefinition, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(typeDefinition, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateNestedTypeDefinition(NestedTypeDefinition nestedTypeDefinition, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(nestedTypeDefinition, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(nestedTypeDefinition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(nestedTypeDefinition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(nestedTypeDefinition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(nestedTypeDefinition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(nestedTypeDefinition, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(nestedTypeDefinition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(nestedTypeDefinition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(nestedTypeDefinition, diagnostics, context);
if (result || diagnostics != null) result &= validateNestedTypeDefinition_NestedIsAlwaysMany(nestedTypeDefinition, diagnostics, context);
return result;
}
/**
* The cached validation expression for the NestedIsAlwaysMany constraint of '<em>Nested Type Definition</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String NESTED_TYPE_DEFINITION__NESTED_IS_ALWAYS_MANY__EEXPRESSION = "self.isMany()";
/**
* Validates the NestedIsAlwaysMany constraint of '<em>Nested Type Definition</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateNestedTypeDefinition_NestedIsAlwaysMany(NestedTypeDefinition nestedTypeDefinition, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.NESTED_TYPE_DEFINITION,
nestedTypeDefinition,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"NestedIsAlwaysMany",
NESTED_TYPE_DEFINITION__NESTED_IS_ALWAYS_MANY__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateFunctionSignatureTypeDefinition(FunctionSignatureTypeDefinition functionSignatureTypeDefinition, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(functionSignatureTypeDefinition, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateMethodSignature(MethodSignature methodSignature, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(methodSignature, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(methodSignature, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(methodSignature, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(methodSignature, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(methodSignature, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(methodSignature, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(methodSignature, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(methodSignature, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(methodSignature, diagnostics, context);
if (result || diagnostics != null) result &= validateSignature_OnlyTrailingOptionalParameters(methodSignature, diagnostics, context);
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateFunctionSignature(FunctionSignature functionSignature, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(functionSignature, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(functionSignature, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(functionSignature, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(functionSignature, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(functionSignature, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(functionSignature, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(functionSignature, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(functionSignature, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(functionSignature, diagnostics, context);
if (result || diagnostics != null) result &= validateSignature_OnlyTrailingOptionalParameters(functionSignature, diagnostics, context);
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateLinkSetting(LinkSetting linkSetting, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(linkSetting, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(linkSetting, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(linkSetting, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(linkSetting, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(linkSetting, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(linkSetting, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(linkSetting, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(linkSetting, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(linkSetting, diagnostics, context);
if (result || diagnostics != null) result &= validateAssociationEndSignatureImplementation_OnlyOnOtherEndsClassOrClassConformingToItOrAdapterAdaptingToIt(linkSetting, diagnostics, context);
if (result || diagnostics != null) result &= validateExtentModifyingAssociationEndSignatureImplementation_MustNotModifyExtentIfEqualityRelevantForValueClass(linkSetting, diagnostics, context);
if (result || diagnostics != null) result &= validateExtentModifyingAssociationEndSignatureImplementation_MustNotImplementSideEffectFreeOperation(linkSetting, diagnostics, context);
if (result || diagnostics != null) result &= validateLinkSetting_InputTypeMatchEndType(linkSetting, diagnostics, context);
return result;
}
/**
* The cached validation expression for the InputTypeMatchEndType constraint of '<em>Link Setting</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String LINK_SETTING__INPUT_TYPE_MATCH_END_TYPE__EEXPRESSION = "self.implements_.output->isEmpty() and\r\n" +
" self.implements_.input->size() = 1 and \r\n" +
" self.implements_.input->at(1).getType().oclIsKindOf(ClassTypeDefinition) and \r\n" +
" self.implements_.input->at(1).getType().oclAsType(ClassTypeDefinition).clazz = self.end.type.clazz";
/**
* Validates the InputTypeMatchEndType constraint of '<em>Link Setting</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateLinkSetting_InputTypeMatchEndType(LinkSetting linkSetting, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.LINK_SETTING,
linkSetting,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"InputTypeMatchEndType",
LINK_SETTING__INPUT_TYPE_MATCH_END_TYPE__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateTypeAdapter(TypeAdapter typeAdapter, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(typeAdapter, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(typeAdapter, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(typeAdapter, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(typeAdapter, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(typeAdapter, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(typeAdapter, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(typeAdapter, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(typeAdapter, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(typeAdapter, diagnostics, context);
if (result || diagnostics != null) result &= validateTypeAdapter_AllSignatureConforms(typeAdapter, diagnostics, context);
if (result || diagnostics != null) result &= validateTypeAdapter_SignaturesCannotBeAbstract(typeAdapter, diagnostics, context);
if (result || diagnostics != null) result &= validateTypeAdapter_IsFullAdaptationToTo(typeAdapter, diagnostics, context);
if (result || diagnostics != null) result &= validateTypeAdapter_ValuesToValues_EntitiesToEntities(typeAdapter, diagnostics, context);
return result;
}
/**
* The cached validation expression for the AllSignatureConforms constraint of '<em>Type Adapter</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String TYPE_ADAPTER__ALL_SIGNATURE_CONFORMS__EEXPRESSION = "self.ownedSignatures->forAll(selfSig:MethodSignature |\r\n" +
" self.to.signaturesWithDelegation()->exists(toSig:MethodSignature |\r\n" +
" selfSig.conformsTo(toSig)))";
/**
* Validates the AllSignatureConforms constraint of '<em>Type Adapter</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateTypeAdapter_AllSignatureConforms(TypeAdapter typeAdapter, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.TYPE_ADAPTER,
typeAdapter,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"AllSignatureConforms",
TYPE_ADAPTER__ALL_SIGNATURE_CONFORMS__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the SignaturesCannotBeAbstract constraint of '<em>Type Adapter</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String TYPE_ADAPTER__SIGNATURES_CANNOT_BE_ABSTRACT__EEXPRESSION = "self.ownedSignatures->forAll(selfSig:MethodSignature | not selfSig.isAbstract())";
/**
* Validates the SignaturesCannotBeAbstract constraint of '<em>Type Adapter</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateTypeAdapter_SignaturesCannotBeAbstract(TypeAdapter typeAdapter, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.TYPE_ADAPTER,
typeAdapter,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"SignaturesCannotBeAbstract",
TYPE_ADAPTER__SIGNATURES_CANNOT_BE_ABSTRACT__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the IsFullAdaptationToTo constraint of '<em>Type Adapter</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String TYPE_ADAPTER__IS_FULL_ADAPTATION_TO_TO__EEXPRESSION = "self.to.signaturesWithDelegation()->forAll(toSig|\r\n" +
" self.adapted.signaturesWithDelegation()->exists(adaptedSig|\r\n" +
" adaptedSig.conformsTo(toSig))\r\n" +
" or self.ownedSignatures->exists(ownedSig|\r\n" +
" ownedSig.conformsTo(toSig)))";
/**
* Validates the IsFullAdaptationToTo constraint of '<em>Type Adapter</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateTypeAdapter_IsFullAdaptationToTo(TypeAdapter typeAdapter, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.TYPE_ADAPTER,
typeAdapter,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"IsFullAdaptationToTo",
TYPE_ADAPTER__IS_FULL_ADAPTATION_TO_TO__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the ValuesToValues_EntitiesToEntities constraint of '<em>Type Adapter</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String TYPE_ADAPTER__VALUES_TO_VALUES_ENTITIES_TO_ENTITIES__EEXPRESSION = "self.adapted.valueType = self.to.valueType";
/**
* Validates the ValuesToValues_EntitiesToEntities constraint of '<em>Type Adapter</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateTypeAdapter_ValuesToValues_EntitiesToEntities(TypeAdapter typeAdapter, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.TYPE_ADAPTER,
typeAdapter,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"ValuesToValues_EntitiesToEntities",
TYPE_ADAPTER__VALUES_TO_VALUES_ENTITIES_TO_ENTITIES__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateParameter(Parameter parameter, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(parameter, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(parameter, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(parameter, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(parameter, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(parameter, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(parameter, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(parameter, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(parameter, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(parameter, diagnostics, context);
if (result || diagnostics != null) result &= validateParameter_DefaultValueType(parameter, diagnostics, context);
return result;
}
/**
* The cached validation expression for the DefaultValueType constraint of '<em>Parameter</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String PARAMETER__DEFAULT_VALUE_TYPE__EEXPRESSION = "self.defaultValue->notEmpty() implies self.defaultValue.getType().conformsTo(self.getType())";
/**
* Validates the DefaultValueType constraint of '<em>Parameter</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateParameter_DefaultValueType(Parameter parameter, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.PARAMETER,
parameter,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"DefaultValueType",
PARAMETER__DEFAULT_VALUE_TYPE__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateNamedValue(NamedValue namedValue, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(namedValue, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validatePlatformSpecificImplementation(PlatformSpecificImplementation platformSpecificImplementation, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(platformSpecificImplementation, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateNativeImpl(NativeImpl nativeImpl, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(nativeImpl, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateSignatureOwner(SignatureOwner signatureOwner, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(signatureOwner, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateExtentModifyingAssociationEndSignatureImplementation(ExtentModifyingAssociationEndSignatureImplementation extentModifyingAssociationEndSignatureImplementation, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(extentModifyingAssociationEndSignatureImplementation, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(extentModifyingAssociationEndSignatureImplementation, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(extentModifyingAssociationEndSignatureImplementation, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(extentModifyingAssociationEndSignatureImplementation, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(extentModifyingAssociationEndSignatureImplementation, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(extentModifyingAssociationEndSignatureImplementation, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(extentModifyingAssociationEndSignatureImplementation, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(extentModifyingAssociationEndSignatureImplementation, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(extentModifyingAssociationEndSignatureImplementation, diagnostics, context);
if (result || diagnostics != null) result &= validateAssociationEndSignatureImplementation_OnlyOnOtherEndsClassOrClassConformingToItOrAdapterAdaptingToIt(extentModifyingAssociationEndSignatureImplementation, diagnostics, context);
if (result || diagnostics != null) result &= validateExtentModifyingAssociationEndSignatureImplementation_MustNotModifyExtentIfEqualityRelevantForValueClass(extentModifyingAssociationEndSignatureImplementation, diagnostics, context);
if (result || diagnostics != null) result &= validateExtentModifyingAssociationEndSignatureImplementation_MustNotImplementSideEffectFreeOperation(extentModifyingAssociationEndSignatureImplementation, diagnostics, context);
return result;
}
/**
* The cached validation expression for the MustNotModifyExtentIfEqualityRelevantForValueClass constraint of '<em>Extent Modifying Association End Signature Implementation</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String EXTENT_MODIFYING_ASSOCIATION_END_SIGNATURE_IMPLEMENTATION__MUST_NOT_MODIFY_EXTENT_IF_EQUALITY_RELEVANT_FOR_VALUE_CLASS__EEXPRESSION = "end.association.ends->forAll(ae:AssociationEnd |\r\n" +
" ae.contributesToEquality implies not ae.type.clazz.valueType)";
/**
* Validates the MustNotModifyExtentIfEqualityRelevantForValueClass constraint of '<em>Extent Modifying Association End Signature Implementation</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateExtentModifyingAssociationEndSignatureImplementation_MustNotModifyExtentIfEqualityRelevantForValueClass(ExtentModifyingAssociationEndSignatureImplementation extentModifyingAssociationEndSignatureImplementation, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.EXTENT_MODIFYING_ASSOCIATION_END_SIGNATURE_IMPLEMENTATION,
extentModifyingAssociationEndSignatureImplementation,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"MustNotModifyExtentIfEqualityRelevantForValueClass",
EXTENT_MODIFYING_ASSOCIATION_END_SIGNATURE_IMPLEMENTATION__MUST_NOT_MODIFY_EXTENT_IF_EQUALITY_RELEVANT_FOR_VALUE_CLASS__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the MustNotImplementSideEffectFreeOperation constraint of '<em>Extent Modifying Association End Signature Implementation</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String EXTENT_MODIFYING_ASSOCIATION_END_SIGNATURE_IMPLEMENTATION__MUST_NOT_IMPLEMENT_SIDE_EFFECT_FREE_OPERATION__EEXPRESSION = "not self.implements_.sideEffectFree";
/**
* Validates the MustNotImplementSideEffectFreeOperation constraint of '<em>Extent Modifying Association End Signature Implementation</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateExtentModifyingAssociationEndSignatureImplementation_MustNotImplementSideEffectFreeOperation(ExtentModifyingAssociationEndSignatureImplementation extentModifyingAssociationEndSignatureImplementation, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.EXTENT_MODIFYING_ASSOCIATION_END_SIGNATURE_IMPLEMENTATION,
extentModifyingAssociationEndSignatureImplementation,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"MustNotImplementSideEffectFreeOperation",
EXTENT_MODIFYING_ASSOCIATION_END_SIGNATURE_IMPLEMENTATION__MUST_NOT_IMPLEMENT_SIDE_EFFECT_FREE_OPERATION__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateFunctionSignatureImplementation(FunctionSignatureImplementation functionSignatureImplementation, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(functionSignatureImplementation, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateActualObjectParameter(ActualObjectParameter actualObjectParameter, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(actualObjectParameter, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateConverterBetweenParametrizations(ConverterBetweenParametrizations converterBetweenParametrizations, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(converterBetweenParametrizations, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(converterBetweenParametrizations, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(converterBetweenParametrizations, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(converterBetweenParametrizations, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(converterBetweenParametrizations, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(converterBetweenParametrizations, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(converterBetweenParametrizations, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(converterBetweenParametrizations, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(converterBetweenParametrizations, diagnostics, context);
if (result || diagnostics != null) result &= validateConverterBetweenParametrizations_MustHaveConcreteMethod(converterBetweenParametrizations, diagnostics, context);
if (result || diagnostics != null) result &= validateConverterBetweenParametrizations_FormalObjectParametersConformToMethodParameters(converterBetweenParametrizations, diagnostics, context);
return result;
}
/**
* The cached validation expression for the MustHaveConcreteMethod constraint of '<em>Converter Between Parametrizations</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String CONVERTER_BETWEEN_PARAMETRIZATIONS__MUST_HAVE_CONCRETE_METHOD__EEXPRESSION = "not self.conversionMethod.isAbstract()";
/**
* Validates the MustHaveConcreteMethod constraint of '<em>Converter Between Parametrizations</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateConverterBetweenParametrizations_MustHaveConcreteMethod(ConverterBetweenParametrizations converterBetweenParametrizations, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.CONVERTER_BETWEEN_PARAMETRIZATIONS,
converterBetweenParametrizations,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"MustHaveConcreteMethod",
CONVERTER_BETWEEN_PARAMETRIZATIONS__MUST_HAVE_CONCRETE_METHOD__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the FormalObjectParametersConformToMethodParameters constraint of '<em>Converter Between Parametrizations</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String CONVERTER_BETWEEN_PARAMETRIZATIONS__FORMAL_OBJECT_PARAMETERS_CONFORM_TO_METHOD_PARAMETERS__EEXPRESSION = "self.conversionMethod.input->size() = self.clazz.formalObjectParameters->size() and\r\n" +
" Sequence{1..self.conversionMethod.input->size()}->forAll(i |\r\n" +
" self.clazz.formalObjectParameters->at(i).conformsTo(self.conversionMethod.input->at(i)))";
/**
* Validates the FormalObjectParametersConformToMethodParameters constraint of '<em>Converter Between Parametrizations</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateConverterBetweenParametrizations_FormalObjectParametersConformToMethodParameters(ConverterBetweenParametrizations converterBetweenParametrizations, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ClassesPackage.Literals.CONVERTER_BETWEEN_PARAMETRIZATIONS,
converterBetweenParametrizations,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"FormalObjectParametersConformToMethodParameters",
CONVERTER_BETWEEN_PARAMETRIZATIONS__FORMAL_OBJECT_PARAMETERS_CONFORM_TO_METHOD_PARAMETERS__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateLinkManipulationAtPosition(LinkManipulationAtPosition linkManipulationAtPosition, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(linkManipulationAtPosition, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(linkManipulationAtPosition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(linkManipulationAtPosition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(linkManipulationAtPosition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(linkManipulationAtPosition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(linkManipulationAtPosition, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(linkManipulationAtPosition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(linkManipulationAtPosition, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(linkManipulationAtPosition, diagnostics, context);
if (result || diagnostics != null) result &= validateAssociationEndSignatureImplementation_OnlyOnOtherEndsClassOrClassConformingToItOrAdapterAdaptingToIt(linkManipulationAtPosition, diagnostics, context);
if (result || diagnostics != null) result &= validateExtentModifyingAssociationEndSignatureImplementation_MustNotModifyExtentIfEqualityRelevantForValueClass(linkManipulationAtPosition, diagnostics, context);
if (result || diagnostics != null) result &= validateExtentModifyingAssociationEndSignatureImplementation_MustNotImplementSideEffectFreeOperation(linkManipulationAtPosition, diagnostics, context);
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateInScope(InScope inScope, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(inScope, diagnostics, context);
}
/**
* Returns the resource locator that will be used to fetch messages for this validator's diagnostics.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public ResourceLocator getResourceLocator() {
// TODO
// Specialize this to return a resource locator for messages specific to this validator.
// Ensure that you remove @generated or mark it @generated NOT
return super.getResourceLocator();
}
} //ClassesValidator