Package org.eclipse.emf.cdo.util

# Class CDOUtil

java.lang.Object
org.eclipse.emf.cdo.util.CDOUtil

public final class CDOUtil extends Object
Various static methods that may help in CDO client applications.

Author:
  Eike Stepper

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`CDO_ANNOTATION_URI`
`static final String`
`DOCUMENTATION_KEY`
`static final String`
`PROP_VIEW_CONFIGURATOR`
`static final String`
`PROP_VIEW_CONFIGURATOR_DESCRIPTION`
`static final String`
`PROP_VIEW_CONFIGURATOR_TYPE`

## Method Summary

Modifier and Type
Method
Description
`static void`
`cleanStaleReference(EObject eObject, EStructuralFeature eFeature)`
`static void`
`cleanStaleReference(EObject eObject, EStructuralFeature eFeature, int index)`
`static void`
`configureView(CDOView view)`
`static CDOBranch`
`createBranch(CDOBranchPoint base, String name)`
`static CDOCollectionLoadingPolicy`
`createCollectionLoadingPolicy(int initialChunkSize, int resolveChunkSize)`
`static CDOFeatureAnalyzer`
`createModelBasedFeatureAnalyzer()`
`static CDORevisionPrefetchingPolicy`
`createRevisionPrefetchingPolicy(int chunkSize)`
`static CDOFetchRuleManager`
`createThreadLocalFetchRuleManager()`
`static CDOFeatureAnalyzer`
`createUIFeatureAnalyzer()`
`static CDOFeatureAnalyzer`
`createUIFeatureAnalyzer(long maxTimeBetweenOperation)`
`static CDOXATransaction`
`createXATransaction(Notifier... notifiers)`
`static <T extends EObject>
EList<T>`
`filterReadables(Collection<T> collection)`
`static String`
`getAnnotation(ModelElement modelElement, String sourceURI, String key)`
`static CDOObject`
`getCDOObject(EObject object)`
`static CDOObject`
`getCDOObject(EObject object, boolean adaptLegacy)`
`static List<? extends CDOObject>`
`getCDOObjects(Collection<? extends EObject> objects)`
`static List<? extends CDOObject>`
`getCDOObjects(EObject... objects)`
`static String`
`getDocumentation(ModelElement modelElement)`
`static EObject`
`getEObject(EObject object)`
`static Map<String,EObject>`
`getIntrinsicIDToEObjectMap(CDOResource resource)`
Returns the map used to cache the EObject that is identified by the `value` of its ID feature.
`static CDOBranchPointRange`
`getLifetime(CDOObject object)`
`static EList<Resource>`
`getResources(ResourceSet resourceSet)`
`static CDORevision`
`getRevisionByVersion(CDOObject object, int version)`
`static CDORevision`
`getRevisionByVersion(CDOObject object, CDOBranch branch, int version)`
`static CDORevisionDelta`
`getRevisionDelta(CDOObject object)`
`static CDOSession`
`getSession(Object object)`
`static CDOView`
`getView(Notifier notifier)`
`static CDOView`
`getView(ResourceSet resourceSet, URI uri)`
`static CDOViewSet`
`getViewSet(Notifier notifier)`
`static CDOXATransaction`
`getXATransaction(CDOViewSet viewSet)`
`static boolean`
`isCDOObject(EObject object)`
`static boolean`
`isInvalidationRunnerActive()`
Deprecated.
As of 4.0 use CDOView.isInvalidationRunnerActive()
`static boolean`
`isLegacyModeDefault()`
Deprecated.
As of 4.2 the legacy mode is always enabled.
`static boolean`
`isLegacyObject(EObject object)`
`static boolean`
`isReadable(EObject object)`
`static boolean`
`isSessionDirty(CDOSession session)`
Returns `true` if the given `session` contains a dirty `transaction`, `false` otherwise.
`static boolean`
`isStaleObject(Object object)`
`static boolean`
`isWritable(EObject object)`
`static boolean`
`isWritableObject(EObject eObject)`
Queries whether an object is writable (is permitted to be modified in the current view context).
`static void`
`load(EObject eObject, CDOView view)`
`static InputStream`
`openInputStream(CDOLob<?> lob, String encoding)`
`static InputStream`
`openInputStream(CDOResourceLeaf leaf)`
`static boolean`
`prepareDynamicEPackage(EPackage startPackage)`
`static boolean`
`registerResourceFactory(Resource.Factory.Registry registry)`
`static Annotation`
`setAnnotation(ModelElement modelElement, String sourceURI, String key, String value)`
`static void`
`setCredentialsProvider(URI uri, org.eclipse.net4j.util.security.IPasswordCredentialsProvider provider)`
`static Annotation`
`setDocumentation(ModelElement modelElement, String value)`
`static void`
`setIntrinsicIDToEObjectMap(CDOResource resource, Map<String,EObject> intrinsicIDToEObjectMap)`
Sets the map used to cache the EObject identified by the value of its ID feature.
`static void`
`setLegacyModeDefault(boolean on)`
Deprecated.
As of 4.2 the legacy mode is always enabled.
`static void`
`setNextViewLock(Lock viewLock)`
Sets the `lock` to be used for the next view that is opened in the context of the current thread.
`static org.eclipse.net4j.util.concurrent.CriticalSection`
`sync(CDOView view)`
Returns a `critical section` that can be used to execute a block of code that needs to be synchronized with the internal operations of the given view and its `objects`.
`static org.eclipse.net4j.util.concurrent.CriticalSection`
`sync(Notifier object)`
Returns a `critical section` that can be used to execute a block of code that needs to be synchronized with the internal operations of the view of the given object.
`static CDOObject`
`wrapExternalObject(EObject object, CDOView view)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### PROP_VIEW_CONFIGURATOR

public static final String PROP_VIEW_CONFIGURATOR

Since:
  4.14
See Also:
  - Constant Field Values

### PROP_VIEW_CONFIGURATOR_TYPE

public static final String PROP_VIEW_CONFIGURATOR_TYPE

Since:
  4.14
See Also:
  - Constant Field Values

### PROP_VIEW_CONFIGURATOR_DESCRIPTION

public static final String PROP_VIEW_CONFIGURATOR_DESCRIPTION

Since:
  4.14
See Also:
  - Constant Field Values

### CDO_ANNOTATION_URI

public static final String CDO_ANNOTATION_URI

Since:
  4.3
See Also:
  - Constant Field Values

### DOCUMENTATION_KEY

public static final String DOCUMENTATION_KEY

Since:
  4.3
See Also:
  - Constant Field Values

## Method Details

### sync

public static org.eclipse.net4j.util.concurrent.CriticalSection sync(CDOView view)
Returns a `critical section` that can be used to execute a block of code that needs to be synchronized with the internal operations of the given view and its `objects`.

The critical section is reentrant and may be nested.

For more information see `CDOView.sync()`.

Returns:
  a critical section that can be used to synchronize with the given view and its objects or `CriticalSection.UNSYNCHRONIZED` if the given view is `null` or already closed. Never `null`.
Since:
  4.29
See Also:
  - `sync(Notifier)`

### sync

public static org.eclipse.net4j.util.concurrent.CriticalSection sync(Notifier object)
Returns a `critical section` that can be used to execute a block of code that needs to be synchronized with the internal operations of the view of the given object.

The critical section is reentrant and may be nested.

For more information see `CDOView.sync()`.

Returns:
  a critical section that can be used to synchronize with the view of the given object or `CriticalSection.UNSYNCHRONIZED` if the view is `null` or already closed. Never `null`.
Since:
  4.29
See Also:
  - `sync(CDOView)`

### registerResourceFactory

public static boolean registerResourceFactory(Resource.Factory.Registry registry)

Since:
  4.0

### getIntrinsicIDToEObjectMap

public static Map<String,EObject> getIntrinsicIDToEObjectMap(CDOResource resource)
Returns the map used to cache the EObject that is identified by the `value` of its ID feature.

Returns:
  the map used to cache the EObject that is identified by the value of its ID feature.
Since:
  4.2
See Also:
  - `setIntrinsicIDToEObjectMap(org.eclipse.emf.cdo.eresource.CDOResource, java.util.Map<java.lang.String, org.eclipse.emf.ecore.EObject>)`

### setIntrinsicIDToEObjectMap

public static void setIntrinsicIDToEObjectMap(CDOResource resource, Map<String,EObject> intrinsicIDToEObjectMap)
Sets the map used to cache the EObject identified by the value of its ID feature. This cache is only activated if the map is not `null`. The map will be lazily loaded by the `getEObjectByID` method. It is up to the client to clear the cache when it becomes invalid, e.g., when the ID of a previously mapped EObject is changed.

Parameters:
  `intrinsicIDToEObjectMap` - the new map or `null`.
Since:
  4.2
See Also:
  - `getIntrinsicIDToEObjectMap(org.eclipse.emf.cdo.eresource.CDOResource)`

### getSession

public static CDOSession getSession(Object object)

Since:
  3.0

### setNextViewLock

public static void setNextViewLock(Lock viewLock)
Sets the `lock` to be used for the next view that is opened in the context of the current thread.

This method is useful, for example, if EMF `adapters` call `Display.syncExec()` in response to CDO notifications. In these cases a `DelegableReentrantLock` can be injected into the new `view`, which does not deadlock when both CDO's invalidation thread and the display thread acquire the view lock.

This method involves a `ThreadLocal` variable to avoid method explosion in `CDOViewContainer` and `CDOTransactionContainer`. After calling this method make sure to either open a new `view` from the current thread or call `setNextViewLock(null)` to clear the `ThreadLocal` variable.

Since:
  4.5
See Also:
  - `CDOSession.Options.setDelegableViewLockEnabled(boolean)`

### configureView

public static void configureView(CDOView view)

Since:
  4.4

### prepareDynamicEPackage

public static boolean prepareDynamicEPackage(EPackage startPackage)

Since:
  2.0

### createCollectionLoadingPolicy

public static CDOCollectionLoadingPolicy createCollectionLoadingPolicy(int initialChunkSize, int resolveChunkSize)

Since:
  2.0

### createRevisionPrefetchingPolicy

public static CDORevisionPrefetchingPolicy createRevisionPrefetchingPolicy(int chunkSize)

Since:
  2.0

### createThreadLocalFetchRuleManager

public static CDOFetchRuleManager createThreadLocalFetchRuleManager()

Since:
  4.1

### createModelBasedFeatureAnalyzer

public static CDOFeatureAnalyzer createModelBasedFeatureAnalyzer()

Since:
  4.1

### createUIFeatureAnalyzer

public static CDOFeatureAnalyzer createUIFeatureAnalyzer()

Since:
  4.1

### createUIFeatureAnalyzer

public static CDOFeatureAnalyzer createUIFeatureAnalyzer(long maxTimeBetweenOperation)

Since:
  4.1

### createXATransaction

public static CDOXATransaction createXATransaction(Notifier... notifiers)

Since:
  4.0

### getXATransaction

public static CDOXATransaction getXATransaction(CDOViewSet viewSet)

Since:
  2.0

### getViewSet

public static CDOViewSet getViewSet(Notifier notifier)

Since:
  4.0

### getView

public static CDOView getView(Notifier notifier)

Since:
  4.4

### getView

public static CDOView getView(ResourceSet resourceSet, URI uri)

Since:
  4.4

### isStaleObject

public static boolean isStaleObject(Object object)

Since:
  3.0

### cleanStaleReference

public static void cleanStaleReference(EObject eObject, EStructuralFeature eFeature)

Since:
  3.0

### cleanStaleReference

public static void cleanStaleReference(EObject eObject, EStructuralFeature eFeature, int index)

Since:
  3.0

### load

public static void load(EObject eObject, CDOView view)

Since:
  2.0

### wrapExternalObject

public static CDOObject wrapExternalObject(EObject object, CDOView view)

Since:
  4.2

### isReadable

public static boolean isReadable(EObject object)

Since:
  4.23

### isWritable

public static boolean isWritable(EObject object)

Since:
  4.23

### getEObject

public static EObject getEObject(EObject object)

Since:
  2.0

### getCDOObject

public static CDOObject getCDOObject(EObject object)

Since:
  2.0

### getCDOObject

public static CDOObject getCDOObject(EObject object, boolean adaptLegacy)

Since:
  4.4

### getCDOObjects

public static List<? extends CDOObject> getCDOObjects(EObject... objects)

Since:
  4.6

### getCDOObjects

public static List<? extends CDOObject> getCDOObjects(Collection<? extends EObject> objects)

Since:
  4.6

### isCDOObject

public static boolean isCDOObject(EObject object)

Since:
  4.4

### createBranch

public static CDOBranch createBranch(CDOBranchPoint base, String name)

Since:
  4.6

### filterReadables

public static <T extends EObject> EList<T> filterReadables(Collection<T> collection)

Since:
  4.3

### getRevisionDelta

public static CDORevisionDelta getRevisionDelta(CDOObject object)

Since:
  4.20

### getLifetime

public static CDOBranchPointRange getLifetime(CDOObject object)

Since:
  4.4

### getRevisionByVersion

public static CDORevision getRevisionByVersion(CDOObject object, int version)

Since:
  2.0

### getRevisionByVersion

public static CDORevision getRevisionByVersion(CDOObject object, CDOBranch branch, int version)

Since:
  3.0

### getResources

public static EList<Resource> getResources(ResourceSet resourceSet)

Since:
  2.0

### isSessionDirty

public static boolean isSessionDirty(CDOSession session)
Returns `true` if the given `session` contains a dirty `transaction`, `false` otherwise.

Since:
  2.0
See Also:
  - `CDOTransaction`

### isInvalidationRunnerActive

@Deprecated public static boolean isInvalidationRunnerActive()
Deprecated.
As of 4.0 use CDOView.isInvalidationRunnerActive()

Since:
  3.0

### isWritableObject

public static boolean isWritableObject(EObject eObject)
Queries whether an object is writable (is permitted to be modified in the current view context).

Parameters:
  `eObject` - an object
Returns:
  `false` if the `eObject` is managed by CDO and does not have write permission; `true`, otherwise
Since:
  4.3

### isLegacyObject

public static boolean isLegacyObject(EObject object)

Since:
  3.0

### isLegacyModeDefault

@Deprecated public static boolean isLegacyModeDefault()
Deprecated.
As of 4.2 the legacy mode is always enabled.

Since:
  3.0

### setLegacyModeDefault

@Deprecated public static void setLegacyModeDefault(boolean on)
Deprecated.
As of 4.2 the legacy mode is always enabled.

Since:
  3.0

### setCredentialsProvider

public static void setCredentialsProvider(URI uri, org.eclipse.net4j.util.security.IPasswordCredentialsProvider provider)

Since:
  4.0

### getAnnotation

public static String getAnnotation(ModelElement modelElement, String sourceURI, String key)

Since:
  4.3

### setAnnotation

public static Annotation setAnnotation(ModelElement modelElement, String sourceURI, String key, String value)

Since:
  4.3

### getDocumentation

public static String getDocumentation(ModelElement modelElement)

Since:
  4.3

### setDocumentation

public static Annotation setDocumentation(ModelElement modelElement, String value)

Since:
  4.3

### openInputStream

public static InputStream openInputStream(CDOResourceLeaf leaf) throws IOException

Throws:
  `IOException`
Since:
  4.13

### openInputStream

public static InputStream openInputStream(CDOLob<?> lob, String encoding) throws IOException

Throws:
  `IOException`
Since:
  4.13