org.eclipse.emf.ocl.internal.parser
Class CompatibilityEnvironment

java.lang.Object
  extended by org.eclipse.ocl.lpg.AbstractBasicEnvironment
      extended by org.eclipse.ocl.AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
          extended by org.eclipse.ocl.ecore.EcoreEnvironment
              extended by org.eclipse.emf.ocl.internal.parser.CompatibilityEnvironment
All Implemented Interfaces:
Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>, Environment.Internal<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>, Environment.Lookup<EPackage,EClassifier,EOperation,EStructuralFeature>, BasicEnvironment, BasicEnvironment2, Customizable, Adaptable

public class CompatibilityEnvironment
extends EcoreEnvironment


Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.ocl.AbstractEnvironment
AbstractEnvironment.VariableEntry
 
Nested classes/interfaces inherited from interface org.eclipse.ocl.Environment
Environment.Internal<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>, Environment.Lookup<PK,C,O,P>, Environment.Registry
 
Field Summary
 
Fields inherited from class org.eclipse.ocl.ecore.EcoreEnvironment
OCL_STANDARD_LIBRARY_NS_URI
 
Fields inherited from interface org.eclipse.ocl.Environment
OCL_NAMESPACE_URI, RESULT_VARIABLE_NAME, SELF_VARIABLE_NAME
 
Method Summary
 boolean addElement(String name, Variable<EClassifier,EParameter> elem, boolean explicit)
          Adds a variable declaration to the environment.
 EStructuralFeature defineAttribute(EClassifier owner, Variable<EClassifier,EParameter> variable, Constraint constraint)
          In processing an additional attribute definition, constructs the property and associates it with its definition constraint.
 EOperation defineOperation(EClassifier owner, String name, EClassifier type, List<Variable<EClassifier,EParameter>> params, Constraint constraint)
          In processing an additional operation definition, constructs the operation and associates it with its definition constraint.
 void deleteElement(String name)
          Removes a variable when it goes out of scope.
 List<EStructuralFeature> getAdditionalAttributes(EClassifier classifier)
          Obtains the additional attributes defined in this environment in the context of the specified classifier.
 List<EOperation> getAdditionalOperations(EClassifier classifier)
          Obtains the additional operations defined in this environment in the context of the specified classifier.
 Constraint getBodyCondition(EOperation operation)
          Obtains an operation's body condition constraint.
 EOperation getContextOperation()
          Obtains the context operation of this environment, if it is an operation context.
 EStructuralFeature getContextProperty()
          Obtains the context property of this environment, if it is a property context.
 Constraint getDeriveConstraint(EStructuralFeature property)
          Obtains a property's derived-value constraint.
 EnvironmentFactory<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject> getFactory()
          Obtains the factory that created me, or an appropriate default factory if I was not created using a factory.
 Constraint getInitConstraint(EStructuralFeature property)
          Obtains a property's with an initial-value constraint, if any.
 Variable<EClassifier,EParameter> getSelfVariable()
          Gets the self variable, looking it up in a parent environment if necessary.
 List<EObject> getStates(EClassifier owner, List<String> pathPrefix)
          Obtains the states matching the specified path prefix in the owner type by trying the EcoreEnvironment.collectStates(org.eclipse.emf.ecore.EClassifier, java.util.List, java.util.List) method on it and, recursively, its supertypes to find all matches.
 TypeResolver<EClassifier,EOperation,EStructuralFeature> getTypeResolver()
          Obtains a type resolver to be used to create (and cache) concrete bindings for the generic OCL types, based on the user model types provided by this environment.
 UMLReflection<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint> getUMLReflection()
          Obtains a utility for for reflection on the UML metaclasses that are used by the OCL abstract syntax.
 Collection<Variable<EClassifier,EParameter>> getVariables()
          Returns the Variables registered explicitly in me and any parents that I may have.
 boolean isEmpty()
          Queries whether the environment has any local variables defined in it.
 Variable<EClassifier,EParameter> lookup(String name)
          Obtains the Variable bound to a variable name.
 EClass lookupAssociationClassReference(EClassifier parentClassifier, String name)
          Finds a reference in the specified class to the named association class.
 EClassifier lookupClassifier(List<String> names)
          Finds the classifier identified by the specified sequence of names (a qualified name).
 Variable<EClassifier,EParameter> lookupImplicitSourceForAssociationClass(String name)
          Return an implicit variable that references the named association class.
 Variable<EClassifier,EParameter> lookupImplicitSourceForOperation(String name, List<? extends TypedElement<EClassifier>> args)
          Return an implicit variable declaration that defines the specified operation signature.
 Variable<EClassifier,EParameter> lookupImplicitSourceForProperty(String name)
          Return the most appropriate matching variable to use as the implicit source of a call to the specified property.
 Variable<EClassifier,EParameter> lookupLocal(String name)
          Obtains the Variable bound to a local variable name.
 EOperation lookupOperation(EClassifier owner, String name, List<? extends TypedElement<EClassifier>> args)
          Find an operation in the specified class.
 EPackage lookupPackage(List<String> path)
          Finds the package identified by the specified sequence of names (a qualified name). Implements the inherited specification by looking up the qualified name in my package registry.
 EStructuralFeature lookupProperty(EClassifier owner, String name)
          Finds a property defined or inherited by the specified classifier.
 EObject lookupState(EClassifier owner, List<String> path)
          Finds the state identified by the specified qualified name path, to resolve an oclIsInState() operation.
 void setBodyCondition(EOperation operation, Constraint constraint)
          Associates an operation with an body condition constraint.
 void setDeriveConstraint(EStructuralFeature property, Constraint constraint)
          Associates a property with an derived-value constraint.
 void setInitConstraint(EStructuralFeature property, Constraint constraint)
          Associates a property with an initial-value constraint.
 void setSelfVariable(Variable<EClassifier,EParameter> var)
          Sets the "self" variable that is the implicit source of any property, operation, or association class call.
 void undefine(Object feature)
          Removes the definition of an additional operation or property.
 
Methods inherited from class org.eclipse.ocl.ecore.EcoreEnvironment
collectStates, createTypeResolver, createTypeResolver, findPackage, findPackage, getDefinition, getOCLFactory, getOCLStandardLibrary, isInPostcondition, setFactory, setParent
 
Methods inherited from class org.eclipse.ocl.AbstractEnvironment
addedVariable, addHelperOperation, addHelperProperty, addOperation, addProperty, createTypeChecker, dispose, findNonNavigableAssociationEnds, findUnnamedAssociationEnds, getAdapter, getContextClassifier, getContextPackage, getInternalParent, getParent, getResource, getTypeChecker, initialLower, lookupImplicitSourceForSignal, lookupImplicitSourceForState, lookupSignal, notOK, removedVariable, setContextOperation, setContextPackage, setContextProperty, setInternalParent, setParent, tryLookupAssociationClassReference, tryLookupClassifier, tryLookupOperation, tryLookupPackage, tryLookupProperty, tryLookupSignal
 
Methods inherited from class org.eclipse.ocl.lpg.AbstractBasicEnvironment
analyzerError, analyzerError, analyzerError, analyzerWarning, basicGetOptions, clearOptions, createDefaultProblemHandler, createFormattingHelper, getASTMapping, getASTNodeToCSTNodeMap, getFormatter, getOptions, getParser, getProblemHandler, getValue, initASTMapping, initASTMapping, isEnabled, lexerError, parserError, problem, putOptions, removeOption, removeOptions, setASTNodeToCSTNodeMap, setOption, setParent, setParser, setProblemHandler, utilityError, validatorError
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.ocl.lpg.BasicEnvironment
analyzerError, analyzerError, analyzerError, analyzerWarning, getASTMapping, getFormatter, getParser, getProblemHandler, initASTMapping, lexerError, parserError, problem, setParser, setProblemHandler, utilityError, validatorError
 
Methods inherited from interface org.eclipse.ocl.options.Customizable
clearOptions, getOptions, getValue, isEnabled, putOptions, removeOption, removeOptions, setOption
 

Method Detail

getFactory

public EnvironmentFactory<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject> getFactory()
Description copied from interface: Environment
Obtains the factory that created me, or an appropriate default factory if I was not created using a factory. This factory can be used to create nested environments within me.

Specified by:
getFactory in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
getFactory in class EcoreEnvironment
Returns:
my originating factory
See Also:
EnvironmentFactory.createEnvironment(Environment)

addElement

public boolean addElement(String name,
                          Variable<EClassifier,EParameter> elem,
                          boolean explicit)
Description copied from interface: Environment
Adds a variable declaration to the environment. If the name is null, then a new unique temporary name is generated (this is useful for implicit variables).

Specified by:
addElement in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
addElement in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
name - the name of the variable, or null
elem - a variable declaration
explicit - whether this is an explicitly declared variable
Returns:
true if the variable was successfully added because it wasn't already declared locally in this environment; false, otherwise

deleteElement

public void deleteElement(String name)
Description copied from interface: Environment
Removes a variable when it goes out of scope.

Specified by:
deleteElement in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
deleteElement in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
name - the name of the variable to delete

getContextOperation

public EOperation getContextOperation()
Description copied from interface: Environment
Obtains the context operation of this environment, if it is an operation context.

Specified by:
getContextOperation in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
getContextOperation in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Returns:
the context operation, or null if this is not an operation environment

getContextProperty

public EStructuralFeature getContextProperty()
Description copied from interface: Environment
Obtains the context property of this environment, if it is a property context.

Specified by:
getContextProperty in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
getContextProperty in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Returns:
the context property, or null if this is not a property environment

getSelfVariable

public Variable<EClassifier,EParameter> getSelfVariable()
Description copied from interface: Environment
Gets the self variable, looking it up in a parent environment if necessary.

Specified by:
getSelfVariable in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
getSelfVariable in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Returns:
the self variable, or null if none (which should only be the case in a root environment having only a package context, if even that)

getStates

public List<EObject> getStates(EClassifier owner,
                               List<String> pathPrefix)
Description copied from class: EcoreEnvironment
Obtains the states matching the specified path prefix in the owner type by trying the EcoreEnvironment.collectStates(org.eclipse.emf.ecore.EClassifier, java.util.List, java.util.List) method on it and, recursively, its supertypes to find all matches. For implicit (null) owners, looks up the innermost-scoped variable as the implicit source and tries again on this variable's type.

To extend this implementation, override the EcoreEnvironment.collectStates(org.eclipse.emf.ecore.EClassifier, java.util.List, java.util.List) method.

Specified by:
getStates in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
getStates in class EcoreEnvironment
Parameters:
owner - the classifier for which states are being sought. Can be null in the case of an oclIsInState() call on an implicit target
pathPrefix - partial path name of the states being sought. This can be empty to find the first level of state names
Returns:
the list of all possible states directly contained in the namespace indicated by the path prefix (i.e., only one level of state nesting)

getVariables

public Collection<Variable<EClassifier,EParameter>> getVariables()
Description copied from interface: Environment
Returns the Variables registered explicitly in me and any parents that I may have. This does not include implicit variables or variables from parent environments that are shadowed by variables in the nested scope.

Specified by:
getVariables in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
getVariables in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Returns:
my variable declarations

isEmpty

public boolean isEmpty()
Description copied from interface: Environment
Queries whether the environment has any local variables defined in it.

Specified by:
isEmpty in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
isEmpty in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Returns:
true if no local variables are defined; false, otherwise

lookup

public Variable<EClassifier,EParameter> lookup(String name)
Description copied from interface: Environment
Obtains the Variable bound to a variable name. Looks in parent environment scopes (recursively) for variables not found in the local scope.

Specified by:
lookup in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
lookup in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
name - a variable name to look up
Returns:
the matching variable, or null if not found in this particular environment

lookupAssociationClassReference

public EClass lookupAssociationClassReference(EClassifier parentClassifier,
                                              String name)
Description copied from interface: Environment
Finds a reference in the specified class to the named association class.

Specified by:
lookupAssociationClassReference in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
lookupAssociationClassReference in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
parentClassifier - the referencing class to search, or null to find an implicit owner type (in iteration expressions)
name - the association class name (with an initial lower case as per the OCL convention)
Returns:
the association class (generically as a classifier), or null if the specified owner is not at the end of an association with this particular name

lookupImplicitSourceForAssociationClass

public Variable<EClassifier,EParameter> lookupImplicitSourceForAssociationClass(String name)
Description copied from interface: Environment
Return an implicit variable that references the named association class. Variables are returned based on inner-most scope first.

Specified by:
lookupImplicitSourceForAssociationClass in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
lookupImplicitSourceForAssociationClass in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
name - the association class name to seek
Returns:
the matching variable, or null if no appropriate variable can be found whose type defines a property of this name

lookupImplicitSourceForOperation

public Variable<EClassifier,EParameter> lookupImplicitSourceForOperation(String name,
                                                                         List<? extends TypedElement<EClassifier>> args)
Description copied from interface: Environment
Return an implicit variable declaration that defines the specified operation signature. Variables are returned based on inner-most scope first.

Specified by:
lookupImplicitSourceForOperation in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
lookupImplicitSourceForOperation in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
name - the operation name
args - the list of arguments (expressions or variables) to match against the operation parameters
Returns:
the matching variable, or null if no appropriate variable can be found whose type defines a property of this name

lookupImplicitSourceForProperty

public Variable<EClassifier,EParameter> lookupImplicitSourceForProperty(String name)
Description copied from interface: Environment
Return the most appropriate matching variable to use as the implicit source of a call to the specified property. Variables are returned based on inner-most scope first.

Specified by:
lookupImplicitSourceForProperty in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
lookupImplicitSourceForProperty in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
name - the property name
Returns:
the matching variable, or null if no appropriate variable can be found whose type defines a property of this name

lookupLocal

public Variable<EClassifier,EParameter> lookupLocal(String name)
Description copied from interface: Environment
Obtains the Variable bound to a local variable name. Does not look in parent environment scopes.

Specified by:
lookupLocal in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
lookupLocal in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
name - a variable name to look up
Returns:
the matching variable, or null if not found in this particular environment

lookupOperation

public EOperation lookupOperation(EClassifier owner,
                                  String name,
                                  List<? extends TypedElement<EClassifier>> args)
Description copied from interface: Environment
Find an operation in the specified class. Used to resolve operation calls.

Specified by:
lookupOperation in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
lookupOperation in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
owner - the owner type of the called operation, or null to find an implicit owner type (in iteration expressions)
name - the name of the called operation
args - the arguments (expressions or variables) to be matched against the parameter signature of the operation
Returns:
the matching operation, or null if not found

lookupPackage

public EPackage lookupPackage(List<String> path)
Description copied from class: EcoreEnvironment
Finds the package identified by the specified sequence of names (a qualified name).

Implements the inherited specification by looking up the qualified name in my package registry.

Specified by:
lookupPackage in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
lookupPackage in class EcoreEnvironment
Parameters:
path - the qualified name
Returns:
the matching package, or null if not found

lookupClassifier

public EClassifier lookupClassifier(List<String> names)
Description copied from interface: Environment
Finds the classifier identified by the specified sequence of names (a qualified name).

Specified by:
lookupClassifier in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
lookupClassifier in class EcoreEnvironment
Parameters:
names - the qualified name
Returns:
the matching classifier, or null if not found

lookupProperty

public EStructuralFeature lookupProperty(EClassifier owner,
                                         String name)
Description copied from interface: Environment
Finds a property defined or inherited by the specified classifier.

Specified by:
lookupProperty in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
lookupProperty in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
owner - the owner of the property that we are looking for, or null to find an implicit owner type (in iteration expressions)
name - the property name
Returns:
the property, or null if it could not be found

lookupState

public EObject lookupState(EClassifier owner,
                           List<String> path)
Description copied from interface: Environment
Finds the state identified by the specified qualified name path, to resolve an oclIsInState() operation.

Specified by:
lookupState in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
lookupState in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
owner - the type on which the oclIsInState() operation is invoked
path - the state name to seek
Returns:
the matching state object, or null if not found

setSelfVariable

public void setSelfVariable(Variable<EClassifier,EParameter> var)
Description copied from interface: Environment
Sets the "self" variable that is the implicit source of any property, operation, or association class call.

Specified by:
setSelfVariable in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
setSelfVariable in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
var - the "self" variable

getAdditionalOperations

public List<EOperation> getAdditionalOperations(EClassifier classifier)
Description copied from interface: Environment
Obtains the additional operations defined in this environment in the context of the specified classifier.

Specified by:
getAdditionalOperations in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
getAdditionalOperations in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
classifier - a classifier
Returns:
its additional operations, or an empty list if none

defineOperation

public EOperation defineOperation(EClassifier owner,
                                  String name,
                                  EClassifier type,
                                  List<Variable<EClassifier,EParameter>> params,
                                  Constraint constraint)
Description copied from interface: Environment
In processing an additional operation definition, constructs the operation and associates it with its definition constraint. The operation definition is local to this environment.

Specified by:
defineOperation in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
defineOperation in class EcoreEnvironment
Parameters:
owner - the context classifier of the property definition constraint
name - the operation name
params - the names and types of the parameters, if any (conveniently encapsulated in variables)
constraint - the definition constraint
Returns:
the defined operation

undefine

public void undefine(Object feature)
Description copied from interface: Environment
Removes the definition of an additional operation or property.

Specified by:
undefine in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
undefine in class EcoreEnvironment
Parameters:
feature - an additional property or operation

getAdditionalAttributes

public List<EStructuralFeature> getAdditionalAttributes(EClassifier classifier)
Description copied from interface: Environment
Obtains the additional attributes defined in this environment in the context of the specified classifier.

Specified by:
getAdditionalAttributes in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
getAdditionalAttributes in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
classifier - a classifier
Returns:
its additional attributes, or an empty list if none

defineAttribute

public EStructuralFeature defineAttribute(EClassifier owner,
                                          Variable<EClassifier,EParameter> variable,
                                          Constraint constraint)
Description copied from interface: Environment
In processing an additional attribute definition, constructs the property and associates it with its definition constraint. The operation definition is local to this environment.

Specified by:
defineAttribute in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
defineAttribute in class EcoreEnvironment
Parameters:
owner - the context classifier of the property definition constraint
variable - the name and type of the property (conveniently encapsulated in a variable)
constraint - the definition constraint
Returns:
the defined property

setBodyCondition

public void setBodyCondition(EOperation operation,
                             Constraint constraint)
Description copied from interface: Environment
Associates an operation with an body condition constraint. The constraint is local to this environment.

Specified by:
setBodyCondition in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
setBodyCondition in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
operation - an operation
constraint - its body condition constraint

getBodyCondition

public Constraint getBodyCondition(EOperation operation)
Description copied from interface: Environment
Obtains an operation's body condition constraint.

Specified by:
getBodyCondition in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
getBodyCondition in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
operation - an operation
Returns:
its body condition constraint

setInitConstraint

public void setInitConstraint(EStructuralFeature property,
                              Constraint constraint)
Description copied from interface: Environment
Associates a property with an initial-value constraint. The constraint is local to this environment.

Specified by:
setInitConstraint in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
setInitConstraint in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
property - an attribute
constraint - its initial-value constraint

getInitConstraint

public Constraint getInitConstraint(EStructuralFeature property)
Description copied from interface: Environment
Obtains a property's with an initial-value constraint, if any.

Specified by:
getInitConstraint in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
getInitConstraint in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
property - an attribute
Returns:
its initial-value constraint, or null if none

setDeriveConstraint

public void setDeriveConstraint(EStructuralFeature property,
                                Constraint constraint)
Description copied from interface: Environment
Associates a property with an derived-value constraint. The constraint is local to this environment.

Specified by:
setDeriveConstraint in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
setDeriveConstraint in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
property - an attribute
constraint - its derived-value constraint

getDeriveConstraint

public Constraint getDeriveConstraint(EStructuralFeature property)
Description copied from interface: Environment
Obtains a property's derived-value constraint.

Specified by:
getDeriveConstraint in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
getDeriveConstraint in class AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Parameters:
property - an attribute
Returns:
its derived-value constraint

getTypeResolver

public TypeResolver<EClassifier,EOperation,EStructuralFeature> getTypeResolver()
Description copied from interface: Environment
Obtains a type resolver to be used to create (and cache) concrete bindings for the generic OCL types, based on the user model types provided by this environment. These are the types that are parameterized by particular user model elements: collections of particular classifiers, meta-types for particular classifiers, message types for particular operations or signals, and tuple types.

Specified by:
getTypeResolver in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
getTypeResolver in class EcoreEnvironment
Returns:
the type resolver

getUMLReflection

public UMLReflection<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint> getUMLReflection()
Description copied from interface: Environment
Obtains a utility for for reflection on the UML metaclasses that are used by the OCL abstract syntax.

Specified by:
getUMLReflection in interface Environment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
Overrides:
getUMLReflection in class EcoreEnvironment
Returns:
the appropriate reflection instance

Copyright 2002, 2007 IBM Corporation and others.
All Rights Reserved.