## org.eclipse.ocl
Interface Environment.Internal<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>

All Superinterfaces:
  Adaptable, BasicEnvironment, Customizable, Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>

All Known Implementing Classes:
  AbstractEnvironment, EcoreEnvironment, UMLEnvironment

Enclosing interface:
  Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>

    public static interface Environment.Internal<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>

extends BasicEnvironment, Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>

An interface that merges the `Environment` and `BasicEnviroment` interfaces that define the behaviour realised in abstract form by `AbstractEnviroment`. The purpose of this interface is primarily for internal use by the parser and/or the particular environment implementation and its corresponding factory. Client applications will not usually need to use this interface.

This interface is not expected to be implemented by clients. It may be implemented by custom `Environment` classes, but it is recommended to extend the `AbstractEnvironment` class.

Since:
  1.2

Nested Class Summary

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 interface org.eclipse.ocl.Environment
`OCL_NAMESPACE_URI, RESULT_VARIABLE_NAME, SELF_VARIABLE_NAME`

Method Summary
`void` `addHelperOperation(C owner, O operation)` Adds an OCL-defined additional ("helper") operation to the environment.
`void` `addHelperProperty(C owner, P property)` Adds an OCL-defined additional ("helper") attribute to the environment.
`void` `dispose()` Disposes of any objects that I have created that should be cleaned up.
`Environment.Internal<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>` `getInternalParent()` Obtains my parent environment after construction.
`void` `setInternalParent(Environment.Internal<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E> parent)` Assigns me a parent environment after construction.

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.util.Adaptable
`getAdapter`

Methods inherited from interface org.eclipse.ocl.options.Customizable
`clearOptions, getOptions, getValue, isEnabled, putOptions, removeOption, removeOptions, setOption`

Methods inherited from interface org.eclipse.ocl.Environment

`addElement, defineAttribute, defineOperation, deleteElement, getAdditionalAttributes, getAdditionalOperations, getBodyCondition, getContextClassifier, getContextOperation, getContextPackage, getContextProperty, getDefinition, getDeriveConstraint, getFactory, getInitConstraint, getOCLFactory, getOCLStandardLibrary, getParent, getSelfVariable, getStates, getTypeResolver, getUMLReflection, getVariables, isEmpty, isInPostcondition, lookup, lookupAssociationClassReference, lookupClassifier, lookupImplicitSourceForAssociationClass, lookupImplicitSourceForOperation, lookupImplicitSourceForProperty, lookupImplicitSourceForSignal, lookupImplicitSourceForState, lookupLocal, lookupOperation, lookupPackage, lookupProperty, lookupSignal, lookupState, setBodyCondition, setDeriveConstraint, setInitConstraint, setParent, setSelfVariable, undefine`

Method Detail

### getInternalParent

    Environment.Internal<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E> getInternalParent()

  Obtains my parent environment after construction.

  Returns:
    my parent

### setInternalParent

    void setInternalParent(Environment.Internal<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E> parent)

  Assigns me a parent environment after construction. It is not advisable to set the parent to `null` if I previously had one.

  Parameters:
    `parent` - my new parent

### addHelperOperation

    void addHelperOperation(C owner,
                            O operation)

  Adds an OCL-defined additional ("helper") operation to the environment. This is primarily intended for internal use by the OCL environment implementation and should only be used for properties defined via OCL (such as by the `Environment.defineOperation(C, java.lang.String, C, java.util.List<org.eclipse.ocl.expressions.Variable<C, PM>>, CT)` method).

  Parameters:
    `owner` - the classifier in which context the attribute is defined
    `operation` - the additional operation

### addHelperProperty

    void addHelperProperty(C owner,
                           P property)

  Adds an OCL-defined additional ("helper") attribute to the environment. This is primarily intended for internal use by the OCL environment implementation and should only be used for properties defined via OCL (such as by the `Environment.defineAttribute(C, org.eclipse.ocl.expressions.Variable<C, PM>, CT)` method).

  Parameters:
    `owner` - the classifier in which context the attribute is defined
    `property` - the additional attribute

### dispose

    void dispose()

  Disposes of any objects that I have created that should be cleaned up.

  Since:
    1.2

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