blob: 0f930b061d92c66615684cc2b700a0bfaddeeca9 [file] [log] [blame]
/**
* <copyright>
* </copyright>
*
* $Id: ActionsValidator.java,v 1.2 2011/03/05 21:39:52 auhl Exp $
*/
package behavioral.actions.util;
import behavioral.actions.*;
import dataaccess.expressions.util.ExpressionsValidator;
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 behavioral.actions.ActionsPackage
* @generated
*/
public class ActionsValidator extends EObjectValidator {
/**
* The cached model package
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static final ActionsValidator INSTANCE = new ActionsValidator();
/**
* 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 = "behavioral.actions";
/**
* 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;
/**
* The cached base package validator.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected ExpressionsValidator expressionsValidator;
/**
* Creates an instance of the switch.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ActionsValidator() {
super();
expressionsValidator = ExpressionsValidator.INSTANCE;
}
/**
* Returns the package of this validator switch.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EPackage getEPackage() {
return ActionsPackage.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 ActionsPackage.ASSIGNMENT:
return validateAssignment((Assignment)value, diagnostics, context);
case ActionsPackage.STATEMENT:
return validateStatement((Statement)value, diagnostics, context);
case ActionsPackage.BLOCK:
return validateBlock((Block)value, diagnostics, context);
case ActionsPackage.IF_ELSE:
return validateIfElse((IfElse)value, diagnostics, context);
case ActionsPackage.WHILE_LOOP:
return validateWhileLoop((WhileLoop)value, diagnostics, context);
case ActionsPackage.FOREACH:
return validateForeach((Foreach)value, diagnostics, context);
case ActionsPackage.RETURN:
return validateReturn((Return)value, diagnostics, context);
case ActionsPackage.ADD_LINK:
return validateAddLink((AddLink)value, diagnostics, context);
case ActionsPackage.REMOVE_LINK:
return validateRemoveLink((RemoveLink)value, diagnostics, context);
case ActionsPackage.LINK_MANIPULATION_STATEMENT:
return validateLinkManipulationStatement((LinkManipulationStatement)value, diagnostics, context);
case ActionsPackage.EXPRESSION_STATEMENT:
return validateExpressionStatement((ExpressionStatement)value, diagnostics, context);
case ActionsPackage.SORT:
return validateSort((Sort)value, diagnostics, context);
case ActionsPackage.QUERY_INVOCATION:
return validateQueryInvocation((QueryInvocation)value, diagnostics, context);
case ActionsPackage.CONSTANT:
return validateConstant((Constant)value, diagnostics, context);
case ActionsPackage.VARIABLE:
return validateVariable((Variable)value, diagnostics, context);
case ActionsPackage.ITERATOR:
return validateIterator((Iterator)value, diagnostics, context);
case ActionsPackage.NAMED_VALUE_DECLARATION:
return validateNamedValueDeclaration((NamedValueDeclaration)value, diagnostics, context);
case ActionsPackage.STATEMENT_WITH_NESTED_BLOCKS:
return validateStatementWithNestedBlocks((StatementWithNestedBlocks)value, diagnostics, context);
case ActionsPackage.SINGLE_BLOCK_STATEMENT:
return validateSingleBlockStatement((SingleBlockStatement)value, diagnostics, context);
case ActionsPackage.STATEMENT_WITH_ARGUMENT:
return validateStatementWithArgument((StatementWithArgument)value, diagnostics, context);
case ActionsPackage.NAMED_VALUE_WITH_OPTIONAL_INIT_EXPRESSION:
return validateNamedValueWithOptionalInitExpression((NamedValueWithOptionalInitExpression)value, diagnostics, context);
case ActionsPackage.CONDITIONAL_STATEMENT:
return validateConditionalStatement((ConditionalStatement)value, diagnostics, context);
default:
return true;
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateAssignment(Assignment assignment, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(assignment, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(assignment, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(assignment, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(assignment, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(assignment, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(assignment, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(assignment, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(assignment, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(assignment, diagnostics, context);
if (result || diagnostics != null) result &= validateAssignment_AssignmentCompatibility(assignment, diagnostics, context);
if (result || diagnostics != null) result &= validateAssignment_MustHaveArgument(assignment, diagnostics, context);
return result;
}
/**
* The cached validation expression for the AssignmentCompatibility constraint of '<em>Assignment</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String ASSIGNMENT__ASSIGNMENT_COMPATIBILITY__EEXPRESSION = "self.argument.getType().conformsTo(self.assignTo.getType())";
/**
* Validates the AssignmentCompatibility constraint of '<em>Assignment</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateAssignment_AssignmentCompatibility(Assignment assignment, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ActionsPackage.Literals.ASSIGNMENT,
assignment,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"AssignmentCompatibility",
ASSIGNMENT__ASSIGNMENT_COMPATIBILITY__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the MustHaveArgument constraint of '<em>Assignment</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String ASSIGNMENT__MUST_HAVE_ARGUMENT__EEXPRESSION = "self.argument->notEmpty()";
/**
* Validates the MustHaveArgument constraint of '<em>Assignment</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateAssignment_MustHaveArgument(Assignment assignment, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ActionsPackage.Literals.ASSIGNMENT,
assignment,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"MustHaveArgument",
ASSIGNMENT__MUST_HAVE_ARGUMENT__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateStatement(Statement statement, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(statement, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateBlock(Block block, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(block, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(block, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(block, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(block, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(block, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(block, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(block, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(block, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(block, diagnostics, context);
if (result || diagnostics != null) result &= validateBlock_DoesNotOwnIterators(block, diagnostics, context);
if (result || diagnostics != null) result &= validateBlock_IsSideEffectFreeIfImplementsSideEffectFreeSignature(block, diagnostics, context);
if (result || diagnostics != null) result &= validateBlock_DistinctNamedValueNames(block, diagnostics, context);
return result;
}
/**
* The cached validation expression for the DoesNotOwnIterators constraint of '<em>Block</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String BLOCK__DOES_NOT_OWN_ITERATORS__EEXPRESSION = "self.variables->select(i|i.oclIsKindOf(Iterator))->isEmpty()";
/**
* Validates the DoesNotOwnIterators constraint of '<em>Block</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateBlock_DoesNotOwnIterators(Block block, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ActionsPackage.Literals.BLOCK,
block,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"DoesNotOwnIterators",
BLOCK__DOES_NOT_OWN_ITERATORS__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the IsSideEffectFreeIfImplementsSideEffectFreeSignature constraint of '<em>Block</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String BLOCK__IS_SIDE_EFFECT_FREE_IF_IMPLEMENTS_SIDE_EFFECT_FREE_SIGNATURE__EEXPRESSION = "self.implements_->notEmpty() implies\r\n" +
" (self.implements_.sideEffectFree implies self.isSideEffectFree())";
/**
* Validates the IsSideEffectFreeIfImplementsSideEffectFreeSignature constraint of '<em>Block</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateBlock_IsSideEffectFreeIfImplementsSideEffectFreeSignature(Block block, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ActionsPackage.Literals.BLOCK,
block,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"IsSideEffectFreeIfImplementsSideEffectFreeSignature",
BLOCK__IS_SIDE_EFFECT_FREE_IF_IMPLEMENTS_SIDE_EFFECT_FREE_SIGNATURE__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the DistinctNamedValueNames constraint of '<em>Block</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String BLOCK__DISTINCT_NAMED_VALUE_NAMES__EEXPRESSION = "self.variables->forAll( i, j | i <> j implies i.name <> j.name )";
/**
* Validates the DistinctNamedValueNames constraint of '<em>Block</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateBlock_DistinctNamedValueNames(Block block, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ActionsPackage.Literals.BLOCK,
block,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"DistinctNamedValueNames",
BLOCK__DISTINCT_NAMED_VALUE_NAMES__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateIfElse(IfElse ifElse, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(ifElse, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(ifElse, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(ifElse, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(ifElse, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(ifElse, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(ifElse, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(ifElse, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(ifElse, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(ifElse, diagnostics, context);
if (result || diagnostics != null) result &= expressionsValidator.validateConditional_ConditionMustBeBoolean(ifElse, diagnostics, context);
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateWhileLoop(WhileLoop whileLoop, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(whileLoop, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(whileLoop, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(whileLoop, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(whileLoop, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(whileLoop, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(whileLoop, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(whileLoop, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(whileLoop, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(whileLoop, diagnostics, context);
if (result || diagnostics != null) result &= expressionsValidator.validateConditional_ConditionMustBeBoolean(whileLoop, diagnostics, context);
if (result || diagnostics != null) result &= validateSingleBlockStatement_OwnsExactlyOneBlock(whileLoop, diagnostics, context);
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateForeach(Foreach foreach, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(foreach, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(foreach, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(foreach, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(foreach, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(foreach, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(foreach, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(foreach, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(foreach, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(foreach, diagnostics, context);
if (result || diagnostics != null) result &= validateSingleBlockStatement_OwnsExactlyOneBlock(foreach, diagnostics, context);
if (result || diagnostics != null) result &= validateForeach_VariableOwnedByRightBlock(foreach, diagnostics, context);
return result;
}
/**
* The cached validation expression for the VariableOwnedByRightBlock constraint of '<em>Foreach</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String FOREACH__VARIABLE_OWNED_BY_RIGHT_BLOCK__EEXPRESSION = "self.forVariable.owner = self.nestedBlocks->at(1)";
/**
* Validates the VariableOwnedByRightBlock constraint of '<em>Foreach</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateForeach_VariableOwnedByRightBlock(Foreach foreach, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ActionsPackage.Literals.FOREACH,
foreach,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"VariableOwnedByRightBlock",
FOREACH__VARIABLE_OWNED_BY_RIGHT_BLOCK__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateReturn(Return return_, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(return_, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(return_, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(return_, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(return_, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(return_, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(return_, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(return_, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(return_, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(return_, diagnostics, context);
if (result || diagnostics != null) result &= validateReturn_ReturnMustBeLastInBlock(return_, diagnostics, context);
if (result || diagnostics != null) result &= validateReturn_ReturnTypeMustMatch(return_, diagnostics, context);
return result;
}
/**
* The cached validation expression for the ReturnMustBeLastInBlock constraint of '<em>Return</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String RETURN__RETURN_MUST_BE_LAST_IN_BLOCK__EEXPRESSION = "self = self.block.statements->last()";
/**
* Validates the ReturnMustBeLastInBlock constraint of '<em>Return</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateReturn_ReturnMustBeLastInBlock(Return return_, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ActionsPackage.Literals.RETURN,
return_,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"ReturnMustBeLastInBlock",
RETURN__RETURN_MUST_BE_LAST_IN_BLOCK__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the ReturnTypeMustMatch constraint of '<em>Return</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String RETURN__RETURN_TYPE_MUST_MATCH__EEXPRESSION = "self.argument.getType().conformsTo(self.getOutermostBlock().getImplementedSignature().output)";
/**
* Validates the ReturnTypeMustMatch constraint of '<em>Return</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateReturn_ReturnTypeMustMatch(Return return_, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ActionsPackage.Literals.RETURN,
return_,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"ReturnTypeMustMatch",
RETURN__RETURN_TYPE_MUST_MATCH__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateAddLink(AddLink addLink, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(addLink, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(addLink, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(addLink, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(addLink, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(addLink, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(addLink, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(addLink, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(addLink, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(addLink, diagnostics, context);
if (result || diagnostics != null) result &= validateLinkManipulationStatement_ObjectsMustConformToEndTypes(addLink, diagnostics, context);
if (result || diagnostics != null) result &= validateLinkManipulationStatement_BlockMustNotImplementSideEffectFreeSignature(addLink, diagnostics, context);
if (result || diagnostics != null) result &= validateLinkManipulationStatement_NoValueMustBeModified(addLink, diagnostics, context);
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateRemoveLink(RemoveLink removeLink, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(removeLink, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(removeLink, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(removeLink, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(removeLink, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(removeLink, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(removeLink, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(removeLink, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(removeLink, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(removeLink, diagnostics, context);
if (result || diagnostics != null) result &= validateLinkManipulationStatement_ObjectsMustConformToEndTypes(removeLink, diagnostics, context);
if (result || diagnostics != null) result &= validateLinkManipulationStatement_BlockMustNotImplementSideEffectFreeSignature(removeLink, diagnostics, context);
if (result || diagnostics != null) result &= validateLinkManipulationStatement_NoValueMustBeModified(removeLink, diagnostics, context);
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateLinkManipulationStatement(LinkManipulationStatement linkManipulationStatement, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(linkManipulationStatement, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(linkManipulationStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(linkManipulationStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(linkManipulationStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(linkManipulationStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(linkManipulationStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(linkManipulationStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(linkManipulationStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(linkManipulationStatement, diagnostics, context);
if (result || diagnostics != null) result &= validateLinkManipulationStatement_ObjectsMustConformToEndTypes(linkManipulationStatement, diagnostics, context);
if (result || diagnostics != null) result &= validateLinkManipulationStatement_BlockMustNotImplementSideEffectFreeSignature(linkManipulationStatement, diagnostics, context);
if (result || diagnostics != null) result &= validateLinkManipulationStatement_NoValueMustBeModified(linkManipulationStatement, diagnostics, context);
return result;
}
/**
* The cached validation expression for the ObjectsMustConformToEndTypes constraint of '<em>Link Manipulation Statement</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String LINK_MANIPULATION_STATEMENT__OBJECTS_MUST_CONFORM_TO_END_TYPES__EEXPRESSION = "Sequence{1..self.objects->size()}->forAll(i:Integer |\r\n" +
" objects->at(i).getType().conformsTo(association.ends->at(i).type))";
/**
* Validates the ObjectsMustConformToEndTypes constraint of '<em>Link Manipulation Statement</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateLinkManipulationStatement_ObjectsMustConformToEndTypes(LinkManipulationStatement linkManipulationStatement, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ActionsPackage.Literals.LINK_MANIPULATION_STATEMENT,
linkManipulationStatement,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"ObjectsMustConformToEndTypes",
LINK_MANIPULATION_STATEMENT__OBJECTS_MUST_CONFORM_TO_END_TYPES__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the BlockMustNotImplementSideEffectFreeSignature constraint of '<em>Link Manipulation Statement</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String LINK_MANIPULATION_STATEMENT__BLOCK_MUST_NOT_IMPLEMENT_SIDE_EFFECT_FREE_SIGNATURE__EEXPRESSION = "self.block.getImplementedSignature()->notEmpty() implies\r\n" +
" not self.block.getImplementedSignature().sideEffectFree";
/**
* Validates the BlockMustNotImplementSideEffectFreeSignature constraint of '<em>Link Manipulation Statement</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateLinkManipulationStatement_BlockMustNotImplementSideEffectFreeSignature(LinkManipulationStatement linkManipulationStatement, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ActionsPackage.Literals.LINK_MANIPULATION_STATEMENT,
linkManipulationStatement,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"BlockMustNotImplementSideEffectFreeSignature",
LINK_MANIPULATION_STATEMENT__BLOCK_MUST_NOT_IMPLEMENT_SIDE_EFFECT_FREE_SIGNATURE__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* The cached validation expression for the NoValueMustBeModified constraint of '<em>Link Manipulation Statement</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String LINK_MANIPULATION_STATEMENT__NO_VALUE_MUST_BE_MODIFIED__EEXPRESSION = "self.association.ends->forAll(ae:data::classes::AssociationEnd |\r\n" +
" ae.type.clazz.valueType implies not ae.contributesToEquality)";
/**
* Validates the NoValueMustBeModified constraint of '<em>Link Manipulation Statement</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateLinkManipulationStatement_NoValueMustBeModified(LinkManipulationStatement linkManipulationStatement, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ActionsPackage.Literals.LINK_MANIPULATION_STATEMENT,
linkManipulationStatement,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"NoValueMustBeModified",
LINK_MANIPULATION_STATEMENT__NO_VALUE_MUST_BE_MODIFIED__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateExpressionStatement(ExpressionStatement expressionStatement, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(expressionStatement, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateSort(Sort sort, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(sort, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateQueryInvocation(QueryInvocation queryInvocation, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(queryInvocation, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateConstant(Constant constant, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(constant, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(constant, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(constant, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(constant, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(constant, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(constant, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(constant, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(constant, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(constant, diagnostics, context);
if (result || diagnostics != null) result &= validateNamedValueWithOptionalInitExpression_AssignmentCompatibility(constant, diagnostics, context);
if (result || diagnostics != null) result &= validateConstant_InitExpressionTypeMustMatchVariableType(constant, diagnostics, context);
return result;
}
/**
* The cached validation expression for the InitExpressionTypeMustMatchVariableType constraint of '<em>Constant</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String CONSTANT__INIT_EXPRESSION_TYPE_MUST_MATCH_VARIABLE_TYPE__EEXPRESSION = "self.initExpression->notEmpty() implies self.initExpression.getType().conformsTo(self.getType())";
/**
* Validates the InitExpressionTypeMustMatchVariableType constraint of '<em>Constant</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateConstant_InitExpressionTypeMustMatchVariableType(Constant constant, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ActionsPackage.Literals.CONSTANT,
constant,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"InitExpressionTypeMustMatchVariableType",
CONSTANT__INIT_EXPRESSION_TYPE_MUST_MATCH_VARIABLE_TYPE__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateVariable(Variable variable, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(variable, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(variable, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(variable, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(variable, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(variable, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(variable, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(variable, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(variable, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(variable, diagnostics, context);
if (result || diagnostics != null) result &= validateNamedValueWithOptionalInitExpression_AssignmentCompatibility(variable, diagnostics, context);
if (result || diagnostics != null) result &= validateVariable_InitExpressionTypeMustMatchVariableType(variable, diagnostics, context);
return result;
}
/**
* The cached validation expression for the InitExpressionTypeMustMatchVariableType constraint of '<em>Variable</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String VARIABLE__INIT_EXPRESSION_TYPE_MUST_MATCH_VARIABLE_TYPE__EEXPRESSION = "self.initExpression->notEmpty() implies self.initExpression.getType().conformsTo(self.getType())";
/**
* Validates the InitExpressionTypeMustMatchVariableType constraint of '<em>Variable</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateVariable_InitExpressionTypeMustMatchVariableType(Variable variable, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ActionsPackage.Literals.VARIABLE,
variable,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"InitExpressionTypeMustMatchVariableType",
VARIABLE__INIT_EXPRESSION_TYPE_MUST_MATCH_VARIABLE_TYPE__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateIterator(Iterator iterator, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(iterator, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateNamedValueDeclaration(NamedValueDeclaration namedValueDeclaration, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(namedValueDeclaration, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateStatementWithNestedBlocks(StatementWithNestedBlocks statementWithNestedBlocks, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(statementWithNestedBlocks, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateSingleBlockStatement(SingleBlockStatement singleBlockStatement, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(singleBlockStatement, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(singleBlockStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(singleBlockStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(singleBlockStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(singleBlockStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(singleBlockStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(singleBlockStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(singleBlockStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(singleBlockStatement, diagnostics, context);
if (result || diagnostics != null) result &= validateSingleBlockStatement_OwnsExactlyOneBlock(singleBlockStatement, diagnostics, context);
return result;
}
/**
* The cached validation expression for the OwnsExactlyOneBlock constraint of '<em>Single Block Statement</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String SINGLE_BLOCK_STATEMENT__OWNS_EXACTLY_ONE_BLOCK__EEXPRESSION = "self.nestedBlocks->size() = 1";
/**
* Validates the OwnsExactlyOneBlock constraint of '<em>Single Block Statement</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateSingleBlockStatement_OwnsExactlyOneBlock(SingleBlockStatement singleBlockStatement, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ActionsPackage.Literals.SINGLE_BLOCK_STATEMENT,
singleBlockStatement,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"OwnsExactlyOneBlock",
SINGLE_BLOCK_STATEMENT__OWNS_EXACTLY_ONE_BLOCK__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateStatementWithArgument(StatementWithArgument statementWithArgument, DiagnosticChain diagnostics, Map<Object, Object> context) {
return validate_EveryDefaultConstraint(statementWithArgument, diagnostics, context);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateNamedValueWithOptionalInitExpression(NamedValueWithOptionalInitExpression namedValueWithOptionalInitExpression, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(namedValueWithOptionalInitExpression, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(namedValueWithOptionalInitExpression, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(namedValueWithOptionalInitExpression, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(namedValueWithOptionalInitExpression, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(namedValueWithOptionalInitExpression, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(namedValueWithOptionalInitExpression, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(namedValueWithOptionalInitExpression, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(namedValueWithOptionalInitExpression, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(namedValueWithOptionalInitExpression, diagnostics, context);
if (result || diagnostics != null) result &= validateNamedValueWithOptionalInitExpression_AssignmentCompatibility(namedValueWithOptionalInitExpression, diagnostics, context);
return result;
}
/**
* The cached validation expression for the AssignmentCompatibility constraint of '<em>Named Value With Optional Init Expression</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected static final String NAMED_VALUE_WITH_OPTIONAL_INIT_EXPRESSION__ASSIGNMENT_COMPATIBILITY__EEXPRESSION = "self.initExpression->forAll(ie | ie.getType().conformsTo(self.getType()))";
/**
* Validates the AssignmentCompatibility constraint of '<em>Named Value With Optional Init Expression</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateNamedValueWithOptionalInitExpression_AssignmentCompatibility(NamedValueWithOptionalInitExpression namedValueWithOptionalInitExpression, DiagnosticChain diagnostics, Map<Object, Object> context) {
return
validate
(ActionsPackage.Literals.NAMED_VALUE_WITH_OPTIONAL_INIT_EXPRESSION,
namedValueWithOptionalInitExpression,
diagnostics,
context,
"http://www.eclipse.org/emf/2002/Ecore/OCL",
"AssignmentCompatibility",
NAMED_VALUE_WITH_OPTIONAL_INIT_EXPRESSION__ASSIGNMENT_COMPATIBILITY__EEXPRESSION,
Diagnostic.ERROR,
DIAGNOSTIC_SOURCE,
0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateConditionalStatement(ConditionalStatement conditionalStatement, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(conditionalStatement, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(conditionalStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryDataValueConforms(conditionalStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(conditionalStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(conditionalStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryProxyResolves(conditionalStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_UniqueID(conditionalStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(conditionalStatement, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(conditionalStatement, diagnostics, context);
if (result || diagnostics != null) result &= expressionsValidator.validateConditional_ConditionMustBeBoolean(conditionalStatement, diagnostics, context);
return result;
}
/**
* 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();
}
} //ActionsValidator