## org.eclipse.ocl.uml
Class OCL

    java.lang.Object
      org.eclipse.ocl.OCL<Package,Classifier,Operation,Property,EnumerationLiteral,Parameter,State,CallOperationAction,SendSignalAction,Constraint,Class,EObject>
          org.eclipse.ocl.uml.OCL

    public class OCL

extends OCL<Package,Classifier,Operation,Property,EnumerationLiteral,Parameter,State,CallOperationAction,SendSignalAction,Constraint,Class,EObject>

Convenient subclass of the `OCL` façade that binds the UML metamodel to the superclass's generic type parameters. This frees client code from the long list of parameter substitutions. This subclass also provides a shortcut to creating an `OCL` on a `UMLEnvironmentFactory` instance using its own resource set.

The parser environments created by the UML environment factory support OCL expressions at both the metamodel (M2) and user model (M1) levels. For user model constraints, use the classifier in the model as the context classifier in invocations of this `OCL` or an `OCLHelper` created by it. For metamodel OCL (used, for example, to query the user model, itself) use the metaclass of any element in the user model as the context classifier. A convenient way to obtain this metaclass is via the `OCLUMLUtil.getMetaclass(org.eclipse.uml2.uml.Element)` method.

See Also:
  `UMLEnvironmentFactory`

Nested Class Summary
`static interface` `OCL.Helper` Convenient interface aliasing the type parameter substitutions for the UML environment, for ease of typing.
`static interface` `OCL.Query` Convenient interface aliasing the type parameter substitutions for the UML environment, for ease of typing.

Constructor Summary
`protected` `OCL(Environment<Package,Classifier,Operation,Property,EnumerationLiteral,Parameter,State,CallOperationAction,SendSignalAction,Constraint,Class,EObject> env)` Initializes me with an initial environment for the UML metamodel.
`protected` `OCL(EnvironmentFactory<Package,Classifier,Operation,Property,EnumerationLiteral,Parameter,State,CallOperationAction,SendSignalAction,Constraint,Class,EObject> envFactory)` Initializes me with an environment factory for the UML metamodel.
`protected` `OCL(EnvironmentFactory<Package,Classifier,Operation,Property,EnumerationLiteral,Parameter,State,CallOperationAction,SendSignalAction,Constraint,Class,EObject> envFactory, Resource resource)` Initializes me with an environment factory for the UML metamodel and a resource from which to load my root environment.

Method Summary
`OCL.Helper` `createOCLHelper()` Creates a new `OCLHelper` instance for convenient parsing of embedded constraints and query expressions in this environment. The return type is narrowed to the UML binding for the generic `OCLHelper<C, O, P, CT>` type.
`OCL.Query` `createQuery(Constraint constraint)` Creates a new `Query` encapsulating a constraint with the current environment and extent map. The return type is narrowed to the UML binding for the generic `Query<C, CLS, E>` type.
`OCL.Query` `createQuery(OCLExpression<Classifier> query)` Creates a new `Query` encapsulating a query expression with the current environment and extent map. The return type is narrowed to the UML binding for the generic `Query<C, CLS, E>` type.
`static OCL` `newInstance()` Creates a new `OCL` using a new UML environment factory that uses a private resource set and the global package registry for looking up Ecore representations of UML packages.
`static OCL` `newInstance(Environment<Package,Classifier,Operation,Property,EnumerationLiteral,Parameter,State,CallOperationAction,SendSignalAction,Constraint,Class,EObject> env)` Creates a new `OCL` using the specified initial UML environment.
`static OCL` `newInstance(EnvironmentFactory<Package,Classifier,Operation,Property,EnumerationLiteral,Parameter,State,CallOperationAction,SendSignalAction,Constraint,Class,EObject> envFactory)` Creates a new `OCL` using the specified UML environment factory.
`static OCL` `newInstance(EnvironmentFactory<Package,Classifier,Operation,Property,EnumerationLiteral,Parameter,State,CallOperationAction,SendSignalAction,Constraint,Class,EObject> envFactory, Resource resource)` Creates a new `OCL` using the specified UML environment factory and a resource from which to load the initial environment.
`static OCL` `newInstance(ResourceSet rset)` Creates a new `OCL` using a new UML environment factory that uses the specified resource set and its local package registry for looking up Ecore representations of UML packages.

Methods inherited from class org.eclipse.ocl.OCL
`check, check, dispose, evaluate, getConstraints, getEnvironment, getEvaluationEnvironment, getExtentMap, getProblems, isEvaluationTracingEnabled, isInvalid, isParseTracingEnabled, newInstance, newInstance, newInstance, parse, setEvaluationTracingEnabled, setExtentMap, setParseTracingEnabled, validate, validate`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### OCL

    protected OCL(EnvironmentFactory<Package,Classifier,Operation,Property,EnumerationLiteral,Parameter,State,CallOperationAction,SendSignalAction,Constraint,Class,EObject> envFactory)

  Initializes me with an environment factory for the UML metamodel.

  Parameters:
    `envFactory` - my environment factory

### OCL

    protected OCL(Environment<Package,Classifier,Operation,Property,EnumerationLiteral,Parameter,State,CallOperationAction,SendSignalAction,Constraint,Class,EObject> env)

  Initializes me with an initial environment for the UML metamodel.

  Parameters:
    `env` - my root environment

### OCL

    protected OCL(EnvironmentFactory<Package,Classifier,Operation,Property,EnumerationLiteral,Parameter,State,CallOperationAction,SendSignalAction,Constraint,Class,EObject> envFactory,
                  Resource resource)

  Initializes me with an environment factory for the UML metamodel and a resource from which to load my root environment.

  Parameters:
    `envFactory` - my environment factory
    `resource` - my persisted root environment

Method Detail

### newInstance

    public static OCL newInstance()

  Creates a new `OCL` using a new UML environment factory that uses a private resource set and the global package registry for looking up Ecore representations of UML packages.

  Returns:
    the new `OCL`

### newInstance

    public static OCL newInstance(ResourceSet rset)

  Creates a new `OCL` using a new UML environment factory that uses the specified resource set and its local package registry for looking up Ecore representations of UML packages.

  Parameters:
    `rset` - a resource set containing UML models
  Returns:
    the new `OCL`

### newInstance

    public static OCL newInstance(EnvironmentFactory<Package,Classifier,Operation,Property,EnumerationLiteral,Parameter,State,CallOperationAction,SendSignalAction,Constraint,Class,EObject> envFactory)

  Creates a new `OCL` using the specified UML environment factory.

  Parameters:
    `envFactory` - an environment factory for UML
  Returns:
    the new `OCL`

### newInstance

    public static OCL newInstance(Environment<Package,Classifier,Operation,Property,EnumerationLiteral,Parameter,State,CallOperationAction,SendSignalAction,Constraint,Class,EObject> env)

  Creates a new `OCL` using the specified initial UML environment.

  Parameters:
    `env` - an environment for UML
  Returns:
    the new `OCL`

### newInstance

    public static OCL newInstance(EnvironmentFactory<Package,Classifier,Operation,Property,EnumerationLiteral,Parameter,State,CallOperationAction,SendSignalAction,Constraint,Class,EObject> envFactory,
                                  Resource resource)

  Creates a new `OCL` using the specified UML environment factory and a resource from which to load the initial environment.

  Parameters:
    `envFactory` - an environment factory for UML
    `resource` - the resource containing a persistent environment (which may be empty for an initially empty environment)
  Returns:
    the new `OCL`

### createOCLHelper

    public OCL.Helper createOCLHelper()

  Creates a new `OCLHelper` instance for convenient parsing of embedded constraints and query expressions in this environment. The helper is particulary useful for parsing constraints embedded in the model, in which case the context of a constraint is determined by its placement and the textual context declarations are unnecessary.

  The return type is narrowed to the UML binding for the generic `OCLHelper<C, O, P, CT>` type.

  Overrides:
    `createOCLHelper` in class `OCL<Package,Classifier,Operation,Property,EnumerationLiteral,Parameter,State,CallOperationAction,SendSignalAction,Constraint,Class,EObject>`
  Returns:
    a new helper object

### createQuery

    public OCL.Query createQuery(Constraint constraint)

  Creates a new `Query` encapsulating a constraint with the current environment and extent map. This is convenient for repeated evaluation of constraints and for filtering objects using the constraint expression.

  Every query maintains its own evaluation environment, which enables concurrent evaluation (where this may be safe in an EMF-based model) and different bindings for client-supplied "global" variables.

  The return type is narrowed to the UML binding for the generic `Query<C, CLS, E>` type.

  Overrides:
    `createQuery` in class `OCL<Package,Classifier,Operation,Property,EnumerationLiteral,Parameter,State,CallOperationAction,SendSignalAction,Constraint,Class,EObject>`
  Parameters:
    `constraint` - the OCL constraint
  Returns:
    the new query object
  See Also:
    `OCL.createQuery(OCLExpression)`

### createQuery

    public OCL.Query createQuery(OCLExpression<Classifier> query)

  Creates a new `Query` encapsulating a query expression with the current environment and extent map. This is convenient for repeated evaluation of expressions and for filtering/transforming objects using a query or constraint expression.

  Every query maintains its own evaluation environment, which enables concurrent evaluation (where this may be safe in an EMF-based model) and different bindings for client-supplied "global" variables.

  The return type is narrowed to the UML binding for the generic `Query<C, CLS, E>` type.

  Overrides:
    `createQuery` in class `OCL<Package,Classifier,Operation,Property,EnumerationLiteral,Parameter,State,CallOperationAction,SendSignalAction,Constraint,Class,EObject>`
  Parameters:
    `query` - the OCL query expression, which may be interpreted as a constraint if it is boolean-valued
  Returns:
    the new query object
  See Also:
    `OCL.createQuery(Object)`

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