blob: 3a4a495c6eae446e650a5512b118c68799582530 [file] [log] [blame]
h2(#Standalone). Standalone Configuration
If you use Eclipse OCL within Eclipse you should find that the appropriate registrations are provided for you automatically by the plugin registration mechanisms.
However if you use Eclipse OCL outside Eclipse, for instance in JUnit tests, you must provide the corresponding registrations in your code.
h3. Ecore
For the Ecore metamodel, the required registrations should be provided by invoking
@org.eclipse.ocl.ecore.OCL.initialize(ResourceSet)@.
This may be invoked with a null argument to install the registrations in the global EPackage.Registry. This is not normally recommended, but since this is for your application, the integrity of the global registry is your responsibility.
It is normally recommended to install the registrations solely for use in your own ResourceSet and to pass that to the initialize routine.
This initialization ensures that *.ecore is understood.
If you want to use EMF delegates to dispatch OCL you also need the following code from @org.eclipse.ocl.ecore.tests.DelegatesTest@.
bc..
import org.eclipse.ocl.ecore.delegate.*;
String oclDelegateURI = OCLDelegateDomain.OCL_DELEGATE_URI;
EOperation.Internal.InvocationDelegate.Factory.Registry.INSTANCE.put
(oclDelegateURI, new OCLInvocationDelegateFactory.Global());
EStructuralFeature.Internal.SettingDelegate.Factory.Registry.INSTANCE.put
(oclDelegateURI, new OCLSettingDelegateFactory.Global());
EValidator.ValidationDelegate.Registry.INSTANCE.put
(oclDelegateURI, new OCLValidationDelegateFactory.Global());
QueryDelegate.Factory.Registry.INSTANCE.put
(oclDelegateURI, new OCLQueryDelegateFactory.Global());
p.
h3. UML
For the UML metamodel, the required registrations should be provided in a similar way by invoking
@org.eclipse.ocl.uml.OCL.initialize(ResourceSet)@.
This initialization ensures that *.uml is understood that http://www.eclipse.org/ocl/1.1.0/oclstdlib.uml is known and that standard pathmap: locations are resolvable.
h3. Pivot
For the Pivot metamodel, the required registrations should be provided in a similar way by invoking
@org.eclipse.ocl.examples.pivot.OCL.initialize(ResourceSet)@.
This initialization ensures that *.ecore is understood. If *.uml support is also required, invoke
@org.eclipse.ocl.examples.pivot.uml.UML2Pivot.initialize(ResourceSet)@ as well.
If you want to use EMF delegates to dispatch OCL you also need the following code from @org.eclipse.ocl.examples.pivot.tests.DelegatesTest@. (The same code as for Ecore but from a different package).
bc..
import org.eclipse.ocl.examples.pivot.delegate.*;
String oclDelegateURI = OCLDelegateDomain.OCL_DELEGATE_URI_PIVOT;
EOperation.Internal.InvocationDelegate.Factory.Registry.INSTANCE.put
(oclDelegateURI, new OCLInvocationDelegateFactory.Global());
EStructuralFeature.Internal.SettingDelegate.Factory.Registry.INSTANCE.put
(oclDelegateURI, new OCLSettingDelegateFactory.Global());
EValidator.ValidationDelegate.Registry.INSTANCE.put
(oclDelegateURI, new OCLValidationDelegateFactory.Global());
QueryDelegate.Factory.Registry.INSTANCE.put
(oclDelegateURI, new OCLQueryDelegateFactory.Global());
p.
h3. Xtext Editors
Each of the Xtext editors has a standard Xtext startup that ensures that the appropriate Resource registrations are installed.
bc..
org.eclipse.ocl.examples.xtext.completeocl.CompleteOCLStandaloneSetup.doSetup().
org.eclipse.ocl.examples.xtext.essentialocl.EssentialOCLStandaloneSetup.doSetup().
org.eclipse.ocl.examples.xtext.oclinecore.OCLinEcoreStandaloneSetup.doSetup().
org.eclipse.ocl.examples.xtext.oclstdlib.OCLstdlibStandaloneSetup.doSetup().
p.