## Package org.eclipse.ocl.utilities

Abstract API for OCL AST utilities and extensions of the UML metamodel.

See:
Description

Interface Summary
ASTNode: A representation of the model object 'AST Node'
CallingASTNode: A representation of the model object 'Calling AST Node'
ExpressionInOCL<C,PM>: A representation of the model object 'Expression In OCL'
OCLFactory: Interface for a factory of OCl Abstract Syntax elements.
PredefinedType<O>: A representation of the model object 'Predefined Type'
TypedASTNode: A representation of the model object 'Typed AST Node'
TypedElement<C>: A representation of the model object 'Typed Element'
UMLReflection<PK,C,O,P,EL,PM,S,COA,SSA,CT>: An interface providing reflection service for the metaclasses that the OCL borrows from UML.
UtilitiesFactory: The Factory for the model.
UtilitiesPackage: The Package for the model.
UtilitiesPackage.Literals: Defines literals for the meta objects that represent each class, each feature of each class, each enum, and each data type
Visitable: A representation of the model object 'Visitable'
Visitor<T,C,O,P,EL,PM,S,COA,SSA,CT>: Something which can visit an `OCLExpression`.

Class Summary
AbstractVisitor<T,C,O,P,EL,PM,S,COA,SSA,CT>: An abstract implementation of the `Visitor` API, in which subclasses need only selectively override `handleXxx(...)`

## Package org.eclipse.ocl.utilities Description

Abstract API for OCL AST utilities and extensions of the UML metamodel.

## Package Specification

This package defines a number of utility interfaces that are mixed in to the AST model defined in the `org.eclipse.ocl.expressions` and `org.eclipse.ocl.types` packages, as well as UML metamodel extensions and related services. These utilities include:

- a `Visitor` pattern definition
- visitor accept protocol
- tracking from where in the source text an AST node was parsed
- an emulation of the UML `TypedElement` metaclass
- access to the name and operations of the types pre-defined by OCL

These concerns are orthogonal to the definition of the abstract syntax model and do not affect XMI serialization.

This package also defines the `ExpressionInOCL` metaclass that extends the UML `OpaqueExpression` metaclass to support embedding of OCL expressions in models.

Also of note is the `UMLReflection` interface that provides introspection and construction of the model concepts that OCL re-uses from the UML. Providers of OCL metamodel bindings (i.e., `Environment`s) are required to implement this interface to manipulate metaclasses either from the metamodel that they are binding, or that they define themselves to implement these concepts.

See Also:
  `org.eclipse.ocl.expressions`, `org.eclipse.ocl.types`

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