org.eclipse.ocl.examples.pivot
Class OCL

java.lang.Object
  extended by org.eclipse.ocl.examples.pivot.OCLBase
      extended by org.eclipse.ocl.examples.pivot.OCL

public class OCL
extends OCLBase

Convenient subclass of the OCL façade that binds the Ecore 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 the shared EcoreEnvironmentFactory instance.

Author:
Christian W. Damus (cdamus)
See Also:
EcoreEnvironmentFactory

Nested Class Summary
static interface OCL.Query
          Convenient interface aliasing the type parameter substitutions for the UML environment, for ease of typing.
 
Constructor Summary
protected OCL(Environment env)
          Initializes me with an initial environment for the Ecore metamodel.
protected OCL(EnvironmentFactory envFactory)
          Initializes me with an environment factory for the Ecore metamodel.
protected OCL(EnvironmentFactory envFactory, org.eclipse.emf.ecore.resource.Resource resource)
          Initializes me with an environment factory for the Ecore metamodel and a resource from which to load my root environment.
 
Method Summary
 OCLHelper createOCLHelper()
          
 OCL.Query createQuery(Constraint constraint)
          Creates a new QueryBase encapsulating a constraint with the current environment and extent map.
 OCL.Query createQuery(ExpressionInOcl specification)
          Creates a new QueryBase encapsulating a query expression with the current environment and extent map.
static java.lang.String initialize(org.eclipse.emf.ecore.resource.ResourceSet resourceSet)
          Initialize registries to support OCL and Ecore usage.
static OCL newInstance()
          Creates a new OCL using the shared Ecore environment factory instance.
static OCL newInstance(Environment env)
          Creates a new OCL using the specified initial Ecore environment.
static OCL newInstance(EnvironmentFactory envFactory)
          Creates a new OCL using the specified Ecore environment factory.
static OCL newInstance(EnvironmentFactory envFactory, org.eclipse.emf.ecore.resource.Resource resource)
          Creates a new OCL using the specified Ecore environment factory and a resource from which to load the initial environment.
 
Methods inherited from class org.eclipse.ocl.examples.pivot.OCLBase
check, check, dispose, evaluate, getConstraints, getEnvironment, getEnvironmentFactory, getEvaluationEnvironment, getEvaluationProblems, getModelManager, getParserRepairCount, getProblems, getTypeManager, getValueFactory, isEvaluationTracingEnabled, isParseTracingEnabled, setEvaluationTracingEnabled, setModelManager, setParserRepairCount, 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 envFactory)
Initializes me with an environment factory for the Ecore metamodel.

Parameters:
envFactory - my environment factory

OCL

protected OCL(Environment env)
Initializes me with an initial environment for the Ecore metamodel.

Parameters:
env - my root environment

OCL

protected OCL(EnvironmentFactory envFactory,
              org.eclipse.emf.ecore.resource.Resource resource)
Initializes me with an environment factory for the Ecore metamodel and a resource from which to load my root environment.

Parameters:
envFactory - my environment factory
resource - my persisted root environment
Method Detail

initialize

public static java.lang.String initialize(org.eclipse.emf.ecore.resource.ResourceSet resourceSet)
Initialize registries to support OCL and Ecore usage. This method is intended for initialization of standalone behaviors for which plugin extension registrations have not been applied.

A null resourceSet may be provided to initialize the global package registry and global URI mapping registry.

A non-null resourceSet may be provided to identify a specific package registry.

This method is used to configure the ResourceSet used to load the OCL Standard Library.

Parameters:
resourceSet - to be initialized or null for global initialization
Returns:
a failure reason, null if successful
Since:
3.0

newInstance

public static OCL newInstance()
Creates a new OCL using the shared Ecore environment factory instance.

Returns:
the new OCL

newInstance

public static OCL newInstance(EnvironmentFactory envFactory)
Creates a new OCL using the specified Ecore environment factory.

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

newInstance

public static OCL newInstance(Environment env)
Creates a new OCL using the specified initial Ecore environment.

Parameters:
env - an environment for Ecore
Returns:
the new OCL

newInstance

public static OCL newInstance(EnvironmentFactory envFactory,
                              org.eclipse.emf.ecore.resource.Resource resource)
Creates a new OCL using the specified Ecore environment factory and a resource from which to load the initial environment.

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

createOCLHelper

public OCLHelper createOCLHelper()


createQuery

public OCL.Query createQuery(Constraint constraint)
Creates a new QueryBase 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 Ecore binding for the generic Query<C,CLS,E> type.

Overrides:
createQuery in class OCLBase
Parameters:
constraint - the OCL constraint
Returns:
the new query object
See Also:
#createQuery(OCLExpression)

createQuery

public OCL.Query createQuery(ExpressionInOcl specification)
Creates a new QueryBase 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 Ecore binding for the generic Query<C,CLS,E> type.

Overrides:
createQuery in class OCLBase
Returns:
the new query object
See Also:
#createQuery(Object)