org.eclipse.ocl.ecore.delegate
Class OCLDelegateDomain

java.lang.Object
  extended by org.eclipse.ocl.ecore.delegate.OCLDelegateDomain
All Implemented Interfaces:
DelegateDomain

public class OCLDelegateDomain
extends java.lang.Object
implements DelegateDomain

An implementation of a delegate domain for an OCL enhanced package. The domain maintains an OCL facade to be shared by all delegates within the package.

Since:
3.0

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.eclipse.ocl.ecore.delegate.DelegateDomain
DelegateDomain.Factory
 
Field Summary
protected  EPackage ePackage
           
protected  OCL ocl
           
static java.lang.String OCL_DELEGATE_URI
          The EAnnotation source URI for delegate OCL annotations.
protected  java.lang.String uri
           
 
Constructor Summary
OCLDelegateDomain(java.lang.String delegateURI, EPackage ePackage)
          Initializes me with my delegate URI and package.
 
Method Summary
 void dispose()
          Dispose of this delegate domain releasing any resources cached to support delegated behaviour for the associated package.
 OCL getOCL()
           
 java.lang.String getURI()
          Get the delegate domain name.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

OCL_DELEGATE_URI

public static final java.lang.String OCL_DELEGATE_URI
The EAnnotation source URI for delegate OCL annotations.

For an EOperation, the EAnnotation details may include
a body key to provide an OCL expression value that specifies body: of the operation.
a precondition key to provide an OCL expression value that specifies pre: for the operation.
a postcondition key to provide an OCL expression value that specifies post: for the operation.

For an EStructuralFeature, the EAnnotation details may include
a derivation key to provide an OCL expression value that specifies derive: for the property.
a initial key to provide an OCL expression value that specifies initial: for the operation.

For an EClassifier (EClass, EDataType), the EAnnotation details may include
a constraintName key to provide an OCL expression value that specifies inv constraintName: for the classifier.

Note that the delegate OCL functionality must be enabled by an EPackage Ecore annotation specifying this URI as the value of invocationDelegates, settingDelegates and validationDelegates details keys.

Note also that validation must be enabled by specifying an EClassifier Ecore annotation with a space separated list of invariant constraintNames as the value of the constraints details key.

See /org.eclipse.ocl.ecore.tests/model/Company.ecore or http://wiki.eclipse.org/MDT/OCLinEcore for an example.


uri

protected final java.lang.String uri

ePackage

protected final EPackage ePackage

ocl

protected final OCL ocl
Constructor Detail

OCLDelegateDomain

public OCLDelegateDomain(java.lang.String delegateURI,
                         EPackage ePackage)
Initializes me with my delegate URI and package.

Parameters:
delegateURI - the delegate namespace I handle
ePackage - the package that I handle
Throws:
ParserException - if the operation's OCL body expression is invalid
Method Detail

dispose

public void dispose()
Description copied from interface: DelegateDomain
Dispose of this delegate domain releasing any resources cached to support delegated behaviour for the associated package.

Specified by:
dispose in interface DelegateDomain

getOCL

public OCL getOCL()

getURI

public java.lang.String getURI()
Description copied from interface: DelegateDomain
Get the delegate domain name.

Specified by:
getURI in interface DelegateDomain
Returns:
the delegate URI

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

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