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

    java.lang.Object
      org.eclipse.ocl.lpg.AbstractBasicEnvironment
          org.eclipse.ocl.AbstractEnvironment<EPackage,EClassifier,EOperation,EStructuralFeature,EEnumLiteral,EParameter,EObject,CallOperationAction,SendSignalAction,Constraint,EClass,EObject>
              org.eclipse.ocl.ecore.EcoreEnvironment
                  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.lang.String>, java.util.List<org.eclipse.emf.ecore.EObject>)` 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 `Variable`s 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.lang.String>, java.util.List<org.eclipse.emf.ecore.EObject>)` 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.lang.String>, java.util.List<org.eclipse.emf.ecore.EObject>)` 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 `Variable`s 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.