Package org.eclipse.emf.cdo.transaction

# Class CDOPushTransaction

java.lang.Object
org.eclipse.net4j.util.event.Notifier
org.eclipse.emf.cdo.transaction.CDOPushTransaction

All Implemented Interfaces:
  `AutoCloseable`, `IAdaptable`, `CDOBranchPoint`, `CDOBranchProvider`, `CDOCommonTransaction`, `CDOCommonView`, `CDOChangeSetDataProvider`, `CDOCommitHistory.Provider<CDOObject,CDOObjectHistory>`, `CDORevisionProvider`, `CDOTimeProvider`, `CDOTransaction`, `CDOUserTransaction`, `CDOUpdatable`, `CDOView`, `org.eclipse.net4j.util.collection.Closeable`, `org.eclipse.net4j.util.container.IContainer<CDOResourceNode>`, `org.eclipse.net4j.util.event.INotifier`, `org.eclipse.net4j.util.event.INotifier.INotifier2`, `org.eclipse.net4j.util.options.IOptionsContainer`, `org.eclipse.net4j.util.properties.IPropertiesContainer`

public class CDOPushTransaction extends org.eclipse.net4j.util.event.Notifier implements CDOTransaction
A `transaction` that persists changes to the object graph locally on commit and can later load these changes and push them to the `repository`.

Since:
  3.0
Author:
  Eike Stepper
No Extend
  This interface is not intended to be extended by clients.
No Instantiate
  This class is not intended to be instantiated by clients.

## Nested Class Summary

## Nested classes/interfaces inherited from class org.eclipse.net4j.util.event.Notifier

`org.eclipse.net4j.util.event.Notifier.Cancelation`

## Nested classes/interfaces inherited from interface org.eclipse.emf.cdo.transaction.CDOTransaction

`CDOTransaction.CommitResult<T>, CDOTransaction.Options`

## Nested classes/interfaces inherited from interface org.eclipse.net4j.util.container.IContainer

`org.eclipse.net4j.util.container.IContainer.Modifiable<E>, org.eclipse.net4j.util.container.IContainer.Persistable<E>, org.eclipse.net4j.util.container.IContainer.Persistence<E>`

## Nested classes/interfaces inherited from interface org.eclipse.net4j.util.event.INotifier

`org.eclipse.net4j.util.event.INotifier.INotifier2`

## Field Summary

### Fields inherited from interface org.eclipse.emf.cdo.common.branch.CDOBranchPoint

`INVALID_DATE, UNSPECIFIED_DATE`

### Fields inherited from interface org.eclipse.emf.cdo.util.CDOUpdatable

`NO_TIMEOUT`

### Fields inherited from interface org.eclipse.emf.cdo.view.CDOView

`PROP_LIFECYCLE_EXCEPTION_HANDLER, PROP_TIME_MACHINE_DISABLED`

## Constructor Summary

Constructors
Constructor
Description
`CDOPushTransaction(CDOTransaction delegate)`
`CDOPushTransaction(CDOTransaction delegate, File file)`
`CDOPushTransaction(CDOTransaction delegate, File file, boolean reconstructSavepoints)`

## Method Summary

Modifier and Type
Method
Description
`void`
`addListener(org.eclipse.net4j.util.event.IListener listener)`
`void`
`addObjectHandler(CDOObjectHandler handler)`
`void`
`addRegistrationHandler(CDORegistrationHandler handler)`
`void`
`addTransactionHandler(CDOTransactionHandlerBase handler)`
`void`
`close()`
`CDOCommitInfo`
`commit()`
Same as `commit(null)`.
`CDOCommitInfo`
`commit(Runnable runnable, int attempts, IProgressMonitor monitor)`
`CDOCommitInfo`
`commit(Runnable runnable, Predicate<Long> retry, IProgressMonitor monitor)`
`CDOCommitInfo`
`commit(Runnable runnable, org.eclipse.net4j.util.Predicate<Long> retry, IProgressMonitor monitor)`
Deprecated.
`<T> CDOTransaction.CommitResult<T>`
`commit(Callable<T> callable, int attempts, IProgressMonitor monitor)`
`<T> CDOTransaction.CommitResult<T>`
`commit(Callable<T> callable, Predicate<Long> retry, IProgressMonitor monitor)`
`<T> CDOTransaction.CommitResult<T>`
`commit(Callable<T> callable, org.eclipse.net4j.util.Predicate<Long> retry, IProgressMonitor monitor)`
Deprecated.
`CDOCommitInfo`
`commit(IProgressMonitor monitor)`
Commits the modifications of this transaction to the repository and returns a `commit info` object if successful.
`CDOCommitInfo`
`commitAndClose(IProgressMonitor monitor, boolean keepOpenAfterCommitProblem)`
`CDOChangeSetData`
`compareRevisions(CDOBranchPoint source)`
`CDOBinaryResource`
`createBinaryResource(String path)`
`CDOQuery`
`createQuery(String language, String queryString)`
Same as `createQuery(language, queryString, null)`.
`CDOQuery`
`createQuery(String language, String queryString, boolean considerDirtyState)`
`CDOQuery`
`createQuery(String language, String queryString, Object context)`
`CDOQuery`
`createQuery(String language, String queryString, Object context, boolean considerDirtyState)`
`CDOResource`
`createResource(String path)`
`CDOResourceFolder`
`createResourceFolder(String path)`
`URI`
`createResourceURI(String path)`
Returns a `URI` that can be used in `ResourceSet.getResource(URI, boolean)` to load the resource with the specified path.
`static File`
`createTempFile(CDOTransaction transaction)`
`CDOTextResource`
`createTextResource(String path)`
`void`
`disableDurableLocking(boolean releaseLocks)`
Disables the storage of all information that's needed to `reopen` this view at a later point in time.
`String`
`enableDurableLocking()`
Enables the storage of all information that's needed to `reopen` this view at a later point in time.
`String`
`enableDurableLocking(boolean enable)`
Deprecated.
Use `enableDurableLocking()` instead or `disableDurableLocking(boolean)`, respectively.
`CDOSavepoint[]`
`exportChanges(OutputStream out)`
`Object`
`getAdapter(Class adapter)`
`CDOBinaryResource`
`getBinaryResource(String path)`
`CDOBranch`
`getBranch()`
Returns the branch of this branch point, or `null` if this branch point is the `base` of the `main branch`.
`CDOChangeSetData`
`getChangeSetData()`
`String`
`getCommitComment()`
Returns the comment to be used in the next commit operation.
`String`
`getCommitProperty(String key)`
`Set<? extends EObject>`
`getCommittables()`
`Set<CDOObject>`
`getConflicts()`
Returns the set of objects that are conflicting with remote modifications or an empty set if `CDOTransaction.hasConflict()` returns `false`.
`CDOTransaction`
`getDelegate()`
`Map<CDOID,CDOObject>`
`getDetachedObjects()`
`Map<CDOID,CDOObject>`
`getDirtyObjects()`
`String`
`getDurableLockingID()`
`CDOResourceNode[]`
`getElements()`
`File`
`getFile()`
`CDOSavepoint`
`getFirstSavepoint()`
`CDOCommitHistory`
`getHistory()`
`CDOObjectHistory`
`getHistory(CDOObject object)`
`long`
`getLastCommitTime()`
`CDOSavepoint`
`getLastSavepoint()`
`long`
`getLastUpdateTime()`
Returns the time stamp of the last commit operation.
`org.eclipse.net4j.util.event.IListener[]`
`getListeners()`
`CDOLockOwner`
`getLockOwner()`
`CDOLockState[]`
`getLockStates(Collection<CDOID> ids)`
Get an array of `lock states` corresponding to the specified collection of `ids`.
`CDOLockState[]`
`getLockStates(Collection<CDOID> ids, boolean loadOnDemand)`
Get an array of `lock states` corresponding to the specified collection of `ids`.
`CDOLockState[]`
`getLockStatesOfObjects(Collection<? extends CDOObject> objects)`
Get an array of `lock states` corresponding to the specified collection of `objects`.
`Map<CDOID,CDOObject>`
`getNewObjects()`
`CDOObject`
`getObject(CDOID id)`
Returns the object for the given CDOID.
`CDOObject`
`getObject(CDOID id, boolean loadOnDemand)`
Returns the object for the given CDOID.
`<T extends EObject>
T`
`getObject(T objectFromDifferentView)`
Takes an object from a (possibly) different view and contextifies it for the usage with this view.
`CDOObjectHandler[]`
`getObjectHandlers()`
`Map<CDOID,CDOObject>`
`getObjects(Collection<CDOID> ids)`
Returns the objects with the given CDOIDs.
`CDOBinaryResource`
`getOrCreateBinaryResource(String path)`
`CDOResource`
`getOrCreateResource(String path)`
`CDOResourceFolder`
`getOrCreateResourceFolder(String path)`
`CDOTextResource`
`getOrCreateTextResource(String path)`
`CDOViewProvider`
`getProvider()`
Returns the `provider` that has opened this view.
`CDORegistrationHandler[]`
`getRegistrationHandlers()`
`CDOResource`
`getResource(String path)`
Same as `getResource(String, true)`.
`CDOResource`
`getResource(String path, boolean loadOnDemand)`
`CDOResourceFolder`
`getResourceFolder(String path)`
`CDOResourceNode`
`getResourceNode(String path)`
Returns the resource node with the given path.
`ResourceSet`
`getResourceSet()`
Returns the `resource set` this view is associated with.
`CDORevision`
`getRevision(CDOID id)`
`Map<CDOID,CDORevisionDelta>`
`getRevisionDeltas()`
`CDOResource`
`getRootResource()`
Returns the root resource of the repository.
`CDOSession`
`getSession()`
Returns the `session` this view was opened by.
`int`
`getSessionID()`
`CDOTextResource`
`getTextResource(String path)`
`long`
`getTimeStamp()`
Returns the time stamp of this branch point, or the fixed special time stamp `unspecified` if this branch point marks the `head` of a branch.
`CDOTransactionHandler[]`
`getTransactionHandlers()`
`CDOTransactionHandler1[]`
`getTransactionHandlers1()`
`CDOTransactionHandler2[]`
`getTransactionHandlers2()`
`CDOUnitManager`
`getUnitManager()`
`URI`
`getURI()`
`URIHandler`
`getURIHandler()`
`int`
`getViewID()`
`Lock`
`getViewLock()`
Deprecated.
`CDOViewSet`
`getViewSet()`
Returns the `view set` this view is associated with.
`boolean`
`hasConflict()`
Returns `true` if this transaction contains local modifications that are conflicting with remote modifications, `false` otherwise.
`boolean`
`hasListeners()`
`boolean`
`hasResource(String path)`
Returns `true` if a resource with the given path exists in the repository, `false`.
`CDOSavepoint[]`
`importChanges(InputStream in, boolean reconstructSavepoints)`
`boolean`
`isClosed()`
`boolean`
`isDirty()`
Returns `true` if this transaction is not closed and contains uncommitted changes, `false` otherwise.
`boolean`
`isDurableView()`
`boolean`
`isEmpty()`
`boolean`
`isHistorical()`
`boolean`
`isInvalidating()`
`boolean`
`isInvalidationRunnerActive()`
Deprecated.
`boolean`
`isLegacyModeEnabled()`
Deprecated.
`boolean`
`isObjectRegistered(CDOID id)`
Returns `true` if an `object` with the given `id` is currently registered in this view, `false` otherwise.
`boolean`
`isReadOnly()`
`void`
`lockObjects(Collection<? extends CDOObject> objects, org.eclipse.net4j.util.concurrent.IRWLockManager.LockType lockType, long timeout)`
Locks the given objects.
`void`
`lockObjects(Collection<? extends CDOObject> objects, org.eclipse.net4j.util.concurrent.IRWLockManager.LockType lockType, long timeout, boolean recursive)`
`CDOChangeSetData`
`merge(CDOBranchPoint source, CDOBranchPoint sourceBase, CDOBranchPoint targetBase, CDOMerger merger)`
Merges the changes between the given source base point and the given source point into this transaction.
`CDOChangeSetData`
`merge(CDOBranchPoint source, CDOBranchPoint sourceBase, CDOMerger merger)`
Merges the changes between the given source base point and the given source point into this transaction.
`CDOChangeSetData`
`merge(CDOBranchPoint source, CDOMerger merger)`
Merges the changes from the given source point into this transaction and possibly considers previous merges from that `branch` by inspecting the `merge source` information of the `commit history`.
`CDOChangeSetData`
`merge(CDOBranch source, CDOMerger merger)`
Merges the changes from the given source branch into this transaction and possibly considers previous merges from that branch by inspecting the `merge source` information of the `commit history`.
`CDOTransaction.Options`
`options()`
Returns the `options` of this view.
`final org.eclipse.net4j.util.registry.IRegistry<String,Object>`
`properties()`
`void`
`push()`
`void`
`push(IProgressMonitor progressMonitor)`
`<T extends EObject>
List<T>`
`queryInstances(EClass type)`
Returns a list of the instances of the given type.
`<T extends EObject>
org.eclipse.net4j.util.collection.CloseableIterator<T>`
`queryInstancesAsync(EClass type)`
Returns an iterator over the instances of the given type.
`<T extends EObject>
org.eclipse.net4j.util.collection.CloseableIterator<T>`
`queryInstancesAsync(EClass type, boolean exact)`
Returns an iterator over the instances of the given type.
`List<CDOResourceNode>`
`queryResources(CDOResourceFolder folder, String name, boolean exactMatch)`
Returns a list of the resources in the given folder with a name equal to or starting with the value of the name parameter.
`org.eclipse.net4j.util.collection.CloseableIterator<CDOResourceNode>`
`queryResourcesAsync(CDOResourceFolder folder, String name, boolean exactMatch)`
Returns an iterator over the resources in the given folder with a name equal to or starting with the value of the name parameter.
`List<CDOObjectReference>`
`queryXRefs(Set<CDOObject> targetObjects, EReference... sourceReferences)`
Returns a list of `object references` that represent the cross references to the specified target objects.
`List<CDOObjectReference>`
`queryXRefs(CDOObject targetObject, EReference... sourceReferences)`
Returns a list of `object references` that represent the cross references to the specified target object.
`org.eclipse.net4j.util.collection.CloseableIterator<CDOObjectReference>`
`queryXRefsAsync(Set<CDOObject> targetObjects, EReference... sourceReferences)`
Returns an iterator over the `object references` that represent the cross references to the specified target objects.
`void`
`refreshLockStates(Consumer<CDOLockState> consumer)`
Deprecated.
`int`
`reload(CDOObject... objects)`
Deprecated.
`void`
`removeListener(org.eclipse.net4j.util.event.IListener listener)`
`void`
`removeObjectHandler(CDOObjectHandler handler)`
`void`
`removeRegistrationHandler(CDORegistrationHandler handler)`
`void`
`removeTransactionHandler(CDOTransactionHandlerBase handler)`
`CDOChangeSetData`
`revertTo(CDOBranchPoint branchPoint)`
`void`
`rollback()`
`boolean`
`runAfterUpdate(long updateTime, Runnable runnable)`
`boolean`
`setBranch(CDOBranch branch)`
Same as calling `setBranchPoint(branch, getTimeStamp())`.
`boolean`
`setBranch(CDOBranch branch, IProgressMonitor monitor)`
Same as `CDOView.setBranch(CDOBranch)` with `IProgressMonitor`.
`boolean`
`setBranchPoint(CDOBranch branch, long timeStamp)`
Sets the `branch` and the point in (repository) time this view should refer to.
`boolean`
`setBranchPoint(CDOBranch branch, long timeStamp, IProgressMonitor monitor)`
Same as `CDOView.setBranchPoint(CDOBranch, long)` with a `IProgressMonitor`.
`boolean`
`setBranchPoint(CDOBranchPoint branchPoint)`
Same as calling `setBranchPoint(branchPoint.getBranch(), branchPoint.getTimeStamp())`.
`boolean`
`setBranchPoint(CDOBranchPoint branchPoint, IProgressMonitor monitor)`
Same as calling `CDOView.setBranchPoint(CDOBranchPoint)` with a `IProgressMonitor` .
`void`
`setCommitComment(String comment)`
Sets the comment to be used in the next commit operation.
`String`
`setCommitProperty(String key, String value)`
`void`
`setCommittables(Set<? extends EObject> committables)`
`protected void`
`setDirty(boolean dirty)`
`void`
`setResourcePathCache(Map<String,CDOID> resourcePathCache)`
Sets the new `map` to be used as a cache for various `get*Resource*(String path)` methods.
`CDOSavepoint`
`setSavepoint()`
Creates a save point in the `CDOTransaction` that can be used to roll back a part of the transaction
`boolean`
`setTimeStamp(long timeStamp)`
Same as calling `setBranchPoint(getBranch(), timeStamp)`.
`boolean`
`setTimeStamp(long timeStamp, IProgressMonitor monitor)`
Same as `CDOView.setTimeStamp(long)` with `IProgressMonitor`.
`org.eclipse.net4j.util.concurrent.CriticalSection`
`sync()`
Returns a `critical section` that can be used to execute a block of code that needs to be synchronized with the internal operations of this view and its `objects`.
`void`
`syncExec(Runnable runnable)`
Deprecated.
`<V> V`
`syncExec(Callable<V> callable)`
Deprecated.
`String`
`toString()`
`void`
`unlockObjects()`
Unlocks all locked objects of this view.
`void`
`unlockObjects(Collection<? extends CDOObject> objects, org.eclipse.net4j.util.concurrent.IRWLockManager.LockType lockType)`
Unlocks the given locked objects of this view.
`void`
`unlockObjects(Collection<? extends CDOObject> objects, org.eclipse.net4j.util.concurrent.IRWLockManager.LockType lockType, boolean recursive)`
`void`
`waitForUpdate(long updateTime)`
Blocks the calling thread until a commit operation with the given time stamp (or higher) has occurred.
`boolean`
`waitForUpdate(long updateTime, long timeoutMillis)`
Blocks the calling thread until a commit operation with the given time stamp (or higher) has occurred or the given timeout has expired.

### Methods inherited from class org.eclipse.net4j.util.event.Notifier

`addUniqueListener, fireEvent, fireEvent, fireEvent, fireThrowable, firstListenerAdded, getNotificationService, hasListener, lastListenerRemoved, listenerAdded, listenerRemoved`

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

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

## Constructor Details

### CDOPushTransaction

public CDOPushTransaction(CDOTransaction delegate) throws IOException

Throws:
  `IOException`

### CDOPushTransaction

public CDOPushTransaction(CDOTransaction delegate, File file) throws IOException

Throws:
  `IOException`

### CDOPushTransaction

public CDOPushTransaction(CDOTransaction delegate, File file, boolean reconstructSavepoints) throws IOException

Throws:
  `IOException`

## Method Details

### getDelegate

public CDOTransaction getDelegate()

### getFile

public File getFile()

### properties

public final org.eclipse.net4j.util.registry.IRegistry<String,Object> properties()

Specified by:
  `properties` in interface `org.eclipse.net4j.util.properties.IPropertiesContainer`
Since:
  4.4

### isDirty

public boolean isDirty()
Description copied from interface: `CDOTransaction`
Returns `true` if this transaction is not closed and contains uncommitted changes, `false` otherwise.

Specified by:
  `isDirty` in interface `CDOTransaction`
Specified by:
  `isDirty` in interface `CDOView`
See Also:
  - `CDOTransaction.isDirty()`

### setDirty

protected void setDirty(boolean dirty)

### commit

public CDOCommitInfo commit() throws CommitException
Description copied from interface: `CDOUserTransaction`
Same as `commit(null)`.

Specified by:
  `commit` in interface `CDOUserTransaction`
Throws:
  `CommitException`

### commit

public CDOCommitInfo commit(IProgressMonitor monitor) throws CommitException
Description copied from interface: `CDOUserTransaction`
Commits the modifications of this transaction to the repository and returns a `commit info` object if successful.

Various kinds of problems can cause the commit to fail and not all of them can be avoided by acquiring pessimistic `locks` on the modified objects. In particular you must expect and handle `containment cycle exceptions`. The following example shows how write robust transactions:

        CDOTransaction transaction = null;

        try
        {
          transaction = session.openTransaction();

          for (;;)
          {
            transaction.getViewLock().lock();

            try
            {
              CDOResource resource = transaction.getResource("/stock/resource1");

              // Modify the model here...

              transaction.commit();
              break;
            }
            catch (ConcurrentAccessException ex)
            {
              transaction.rollback();
            }
            catch (CommitException ex)
            {
              throw ex.wrap();
            }
            finally
            {
              transaction.getViewLock().unlock();
            }
          }
        }
        finally
        {
          if (transaction != null)
          {
            transaction.close();
          }
        }

Note that the transaction stays functional after a any call to the `commit()` methods. If the transaction is not closed after a commit it can be used to apply additional modifications to the model.

Specified by:
  `commit` in interface `CDOUserTransaction`
Throws:
  `CommitException`

### commit

@Deprecated public <T> CDOTransaction.CommitResult<T> commit(Callable<T> callable, org.eclipse.net4j.util.Predicate<Long> retry, IProgressMonitor monitor) throws ConcurrentAccessException, CommitException, Exception
Deprecated.

Specified by:
  `commit` in interface `CDOTransaction`
Throws:
  `ConcurrentAccessException`
  `CommitException`
  `Exception`

### commit

public <T> CDOTransaction.CommitResult<T> commit(Callable<T> callable, Predicate<Long> retry, IProgressMonitor monitor) throws ConcurrentAccessException, CommitException, Exception

Specified by:
  `commit` in interface `CDOTransaction`
Throws:
  `ConcurrentAccessException`
  `CommitException`
  `Exception`

### commit

public <T> CDOTransaction.CommitResult<T> commit(Callable<T> callable, int attempts, IProgressMonitor monitor) throws ConcurrentAccessException, CommitException, Exception

Specified by:
  `commit` in interface `CDOTransaction`
Throws:
  `ConcurrentAccessException`
  `CommitException`
  `Exception`

### commit

@Deprecated public CDOCommitInfo commit(Runnable runnable, org.eclipse.net4j.util.Predicate<Long> retry, IProgressMonitor monitor) throws ConcurrentAccessException, CommitException
Deprecated.

Specified by:
  `commit` in interface `CDOTransaction`
Throws:
  `ConcurrentAccessException`
  `CommitException`

### commit

public CDOCommitInfo commit(Runnable runnable, Predicate<Long> retry, IProgressMonitor monitor) throws ConcurrentAccessException, CommitException

Specified by:
  `commit` in interface `CDOTransaction`
Throws:
  `ConcurrentAccessException`
  `CommitException`

### commit

public CDOCommitInfo commit(Runnable runnable, int attempts, IProgressMonitor monitor) throws ConcurrentAccessException, CommitException

Specified by:
  `commit` in interface `CDOTransaction`
Throws:
  `ConcurrentAccessException`
  `CommitException`

### commitAndClose

public CDOCommitInfo commitAndClose(IProgressMonitor monitor, boolean keepOpenAfterCommitProblem) throws CommitException

Specified by:
  `commitAndClose` in interface `CDOTransaction`
Throws:
  `CommitException`

### rollback

public void rollback()

Specified by:
  `rollback` in interface `CDOUserTransaction`

### push

public void push() throws CommitException

Throws:
  `CommitException`

### push

public void push(IProgressMonitor progressMonitor) throws CommitException

Throws:
  `CommitException`

### exportChanges

public CDOSavepoint[] exportChanges(OutputStream out) throws IOException

Specified by:
  `exportChanges` in interface `CDOTransaction`
Throws:
  `IOException`

### importChanges

public CDOSavepoint[] importChanges(InputStream in, boolean reconstructSavepoints) throws IOException

Specified by:
  `importChanges` in interface `CDOTransaction`
Throws:
  `IOException`

### getLastCommitTime

public long getLastCommitTime()

Specified by:
  `getLastCommitTime` in interface `CDOTransaction`

### addListener

public void addListener(org.eclipse.net4j.util.event.IListener listener)

Specified by:
  `addListener` in interface `org.eclipse.net4j.util.event.INotifier`
Overrides:
  `addListener` in class `org.eclipse.net4j.util.event.Notifier`

### removeListener

public void removeListener(org.eclipse.net4j.util.event.IListener listener)

Specified by:
  `removeListener` in interface `org.eclipse.net4j.util.event.INotifier`
Overrides:
  `removeListener` in class `org.eclipse.net4j.util.event.Notifier`

### hasListeners

public boolean hasListeners()

Specified by:
  `hasListeners` in interface `org.eclipse.net4j.util.event.INotifier`
Overrides:
  `hasListeners` in class `org.eclipse.net4j.util.event.Notifier`

### getListeners

public org.eclipse.net4j.util.event.IListener[] getListeners()

Specified by:
  `getListeners` in interface `org.eclipse.net4j.util.event.INotifier`
Overrides:
  `getListeners` in class `org.eclipse.net4j.util.event.Notifier`

### addObjectHandler

public void addObjectHandler(CDOObjectHandler handler)

Specified by:
  `addObjectHandler` in interface `CDOView`

### addRegistrationHandler

public void addRegistrationHandler(CDORegistrationHandler handler)

Specified by:
  `addRegistrationHandler` in interface `CDOView`
Since:
  4.6

### addTransactionHandler

public void addTransactionHandler(CDOTransactionHandlerBase handler)

Specified by:
  `addTransactionHandler` in interface `CDOTransaction`
Since:
  4.0

### close

public void close()

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `org.eclipse.net4j.util.collection.Closeable`

### createQuery

public CDOQuery createQuery(String language, String queryString)
Description copied from interface: `CDOView`
Same as `createQuery(language, queryString, null)`.

Specified by:
  `createQuery` in interface `CDOView`
See Also:
  - `CDOView.createQuery(String, String, Object)`

### createQuery

public CDOQuery createQuery(String language, String queryString, Object context)

Specified by:
  `createQuery` in interface `CDOView`
Since:
  4.0

### createQuery

public CDOQuery createQuery(String language, String queryString, boolean considerDirtyState)

Specified by:
  `createQuery` in interface `CDOTransaction`
Since:
  4.0

### createQuery

public CDOQuery createQuery(String language, String queryString, Object context, boolean considerDirtyState)

Specified by:
  `createQuery` in interface `CDOTransaction`
Since:
  4.0

### createResourceFolder

public CDOResourceFolder createResourceFolder(String path)

Specified by:
  `createResourceFolder` in interface `CDOTransaction`
Since:
  4.0

### createResource

public CDOResource createResource(String path)

Specified by:
  `createResource` in interface `CDOTransaction`
See Also:
  - `ResourceSet.createResource(URI)`

### isLegacyModeEnabled

@Deprecated public boolean isLegacyModeEnabled()
Deprecated.

Specified by:
  `isLegacyModeEnabled` in interface `CDOView`
See Also:
  - `CDOUtil.setLegacyModeDefault(boolean)`

### getLastUpdateTime

public long getLastUpdateTime()
Description copied from interface: `CDOUpdatable`
Returns the time stamp of the last commit operation. May not be accurate if `passive updates` are disabled.

Specified by:
  `getLastUpdateTime` in interface `CDOUpdatable`

### waitForUpdate

public void waitForUpdate(long updateTime)
Description copied from interface: `CDOUpdatable`
Blocks the calling thread until a commit operation with the given time stamp (or higher) has occurred.

Specified by:
  `waitForUpdate` in interface `CDOUpdatable`
Parameters:
  `updateTime` - the time stamp of the update to wait for in milliseconds since Unix epoch.

### waitForUpdate

public boolean waitForUpdate(long updateTime, long timeoutMillis)
Description copied from interface: `CDOUpdatable`
Blocks the calling thread until a commit operation with the given time stamp (or higher) has occurred or the given timeout has expired.

Specified by:
  `waitForUpdate` in interface `CDOUpdatable`
Parameters:
  `updateTime` - the time stamp of the update to wait for in milliseconds since Unix epoch.
  `timeoutMillis` - the maximum number of milliseconds to wait for the update to occur, or `CDOUpdatable.NO_TIMEOUT` to wait indefinitely.
Returns:
  `true` if the specified commit operation has occurred within the given timeout period, `false` otherwise.

### runAfterUpdate

public boolean runAfterUpdate(long updateTime, Runnable runnable)

Specified by:
  `runAfterUpdate` in interface `CDOUpdatable`
Since:
  4.3

### getConflicts

public Set<CDOObject> getConflicts()
Description copied from interface: `CDOTransaction`
Returns the set of objects that are conflicting with remote modifications or an empty set if `CDOTransaction.hasConflict()` returns `false`.

Specified by:
  `getConflicts` in interface `CDOTransaction`

### getChangeSetData

public CDOChangeSetData getChangeSetData()

Specified by:
  `getChangeSetData` in interface `CDOChangeSetDataProvider`
Since:
  4.0

### getDetachedObjects

public Map<CDOID,CDOObject> getDetachedObjects()

Specified by:
  `getDetachedObjects` in interface `CDOTransaction`

### getDirtyObjects

public Map<CDOID,CDOObject> getDirtyObjects()

Specified by:
  `getDirtyObjects` in interface `CDOTransaction`

### getRevision

public CDORevision getRevision(CDOID id)

Specified by:
  `getRevision` in interface `CDORevisionProvider`
Since:
  4.0

### getFirstSavepoint

public CDOSavepoint getFirstSavepoint()

Specified by:
  `getFirstSavepoint` in interface `CDOTransaction`
Since:
  4.1

### getLastSavepoint

public CDOSavepoint getLastSavepoint()

Specified by:
  `getLastSavepoint` in interface `CDOTransaction`
Specified by:
  `getLastSavepoint` in interface `CDOUserTransaction`

### isInvalidationRunnerActive

@Deprecated public boolean isInvalidationRunnerActive()
Deprecated.

Specified by:
  `isInvalidationRunnerActive` in interface `CDOView`
Since:
  4.0

### isInvalidating

public boolean isInvalidating()

Specified by:
  `isInvalidating` in interface `CDOView`
Since:
  4.7

### getNewObjects

public Map<CDOID,CDOObject> getNewObjects()

Specified by:
  `getNewObjects` in interface `CDOTransaction`

### getObjects

public Map<CDOID,CDOObject> getObjects(Collection<CDOID> ids)
Description copied from interface: `CDOView`
Returns the objects with the given CDOIDs.

If objects are missing from the local cache they are loaded from the server in one round-trip.

Specified by:
  `getObjects` in interface `CDOView`
Parameters:
  `ids` - the collection of CDOIDs that identify the CDOObjects to return.
Returns:
  a map that contains the CDOObjects with the given CDOIDs.
Since:
  4.13

### getObject

public CDOObject getObject(CDOID id, boolean loadOnDemand)
Description copied from interface: `CDOView`
Returns the object for the given CDOID.

Specified by:
  `getObject` in interface `CDOView`
Parameters:
  `loadOnDemand` - whether to create and load the object, if it doesn't already exist.
Returns:
  the object resolved by the CDOID if the id is not `null`, or `null` if there isn't one and loadOnDemand is `false`.

### getObject

public CDOObject getObject(CDOID id)
Description copied from interface: `CDOView`
Returns the object for the given CDOID.

Same as `getObject(id, true)`.

Specified by:
  `getObject` in interface `CDOView`
See Also:
  - `CDOView.getObject(CDOID, boolean)`

### getObject

public <T extends EObject> T getObject(T objectFromDifferentView)
Description copied from interface: `CDOView`
Takes an object from a (possibly) different view and contextifies it for the usage with this view.

- If the given object is contained in this view it is returned unmodified.
- If the given object can not be cast to `CDOObject` it is returned unmodified.
- If the view of the given object is contained in a different session an `IllegalArgumentException` is thrown.
- If `null` is passed `null` is returned.

Specified by:
  `getObject` in interface `CDOView`

### getObjectHandlers

public CDOObjectHandler[] getObjectHandlers()

Specified by:
  `getObjectHandlers` in interface `CDOView`

### getRegistrationHandlers

public CDORegistrationHandler[] getRegistrationHandlers()

Specified by:
  `getRegistrationHandlers` in interface `CDOView`
Since:
  4.6

### getOrCreateResource

public CDOResource getOrCreateResource(String path)

Specified by:
  `getOrCreateResource` in interface `CDOTransaction`

### getOrCreateResourceFolder

public CDOResourceFolder getOrCreateResourceFolder(String path)

Specified by:
  `getOrCreateResourceFolder` in interface `CDOTransaction`
Since:
  4.0

### getResource

public CDOResource getResource(String path, boolean loadOnDemand) throws CDOResourceNodeNotFoundException

Specified by:
  `getResource` in interface `CDOView`
Throws:
  `CDOResourceNodeNotFoundException`
See Also:
  - `ResourceSet.getResource(URI, boolean)`

### getResource

public CDOResource getResource(String path) throws CDOResourceNodeNotFoundException
Description copied from interface: `CDOView`
Same as `getResource(String, true)`.

Specified by:
  `getResource` in interface `CDOView`
Throws:
  `CDOResourceNodeNotFoundException`
See Also:
  - `ResourceSet.getResource(URI, boolean)`

### getResourceNode

public CDOResourceNode getResourceNode(String path) throws CDOResourceNodeNotFoundException
Description copied from interface: `CDOView`
Returns the resource node with the given path.

Specified by:
  `getResourceNode` in interface `CDOView`
Returns:
  never `null`.
Throws:
  `CDOResourceNodeNotFoundException`

### createTextResource

public CDOTextResource createTextResource(String path)

Specified by:
  `createTextResource` in interface `CDOTransaction`
Since:
  4.2

### getOrCreateTextResource

public CDOTextResource getOrCreateTextResource(String path)

Specified by:
  `getOrCreateTextResource` in interface `CDOTransaction`
Since:
  4.2

### createBinaryResource

public CDOBinaryResource createBinaryResource(String path)

Specified by:
  `createBinaryResource` in interface `CDOTransaction`
Since:
  4.2

### getOrCreateBinaryResource

public CDOBinaryResource getOrCreateBinaryResource(String path)

Specified by:
  `getOrCreateBinaryResource` in interface `CDOTransaction`
Since:
  4.2

### getTextResource

public CDOTextResource getTextResource(String path) throws CDOResourceNodeNotFoundException

Specified by:
  `getTextResource` in interface `CDOView`
Throws:
  `CDOResourceNodeNotFoundException`
Since:
  4.2

### getBinaryResource

public CDOBinaryResource getBinaryResource(String path) throws CDOResourceNodeNotFoundException

Specified by:
  `getBinaryResource` in interface `CDOView`
Throws:
  `CDOResourceNodeNotFoundException`
Since:
  4.2

### getResourceFolder

public CDOResourceFolder getResourceFolder(String path) throws CDOResourceNodeNotFoundException

Specified by:
  `getResourceFolder` in interface `CDOView`
Throws:
  `CDOResourceNodeNotFoundException`
Since:
  4.2

### setResourcePathCache

public void setResourcePathCache(Map<String,CDOID> resourcePathCache)
Description copied from interface: `CDOView`
Sets the new `map` to be used as a cache for various `get*Resource*(String path)` methods.

Can be used to reset/clear the resource path cache by passing a `new HashMap<String, CDOID>()`. Smarter maps could implement a LRU eviction policy to limit the map capacity. Passing `null` disables resource path caching.

The default value is `new HashMap<String, CDOID>()`.

Specified by:
  `setResourcePathCache` in interface `CDOView`
Since:
  4.2
See Also:
  - `CDOView.getResourceNode(String)`
  - `CDOView.getResource(String)`
  - `CDOView.getResource(String, boolean)`
  - `CDOView.getBinaryResource(String)`
  - `CDOView.getTextResource(String)`
  - `CDOView.getResourceFolder(String)`
  - `CDOView.hasResource(String)`

### getResourceSet

public ResourceSet getResourceSet()
Description copied from interface: `CDOView`
Returns the `resource set` this view is associated with.

Same as calling `getViewSet().getResourceSet()`.

Specified by:
  `getResourceSet` in interface `CDOView`
See Also:
  - `CDOViewSet.getResourceSet()`

### getRevisionDeltas

public Map<CDOID,CDORevisionDelta> getRevisionDeltas()

Specified by:
  `getRevisionDeltas` in interface `CDOTransaction`

### getRootResource

public CDOResource getRootResource()
Description copied from interface: `CDOView`
Returns the root resource of the repository.

The root resource is a special resource with only `CDOResourceNodes` in its contents list. You can use it as the main entry into the new resource and folder structure.

Specified by:
  `getRootResource` in interface `CDOView`

### getSession

public CDOSession getSession()
Description copied from interface: `CDOView`
Returns the `session` this view was opened by.

Specified by:
  `getSession` in interface `CDOCommonView`
Specified by:
  `getSession` in interface `CDOView`
Returns:
  The session this view was opened by, or `null` if this view is closed.
See Also:
  - `Closeable.close()`
  - `Closeable.isClosed()`
  - `CDOViewContainer.openView()`
  - `CDOTransactionContainer.openTransaction()`

### getProvider

public CDOViewProvider getProvider()
Description copied from interface: `CDOView`
Returns the `provider` that has opened this view.

Specified by:
  `getProvider` in interface `CDOView`
Since:
  4.4

### createResourceURI

public URI createResourceURI(String path)
Description copied from interface: `CDOView`
Returns a `URI` that can be used in `ResourceSet.getResource(URI, boolean)` to load the resource with the specified path.

Specified by:
  `createResourceURI` in interface `CDOView`
Since:
  4.4

### getTimeStamp

public long getTimeStamp()
Description copied from interface: `CDOBranchPoint`
Returns the time stamp of this branch point, or the fixed special time stamp `unspecified` if this branch point marks the `head` of a branch.

Specified by:
  `getTimeStamp` in interface `CDOBranchPoint`
Specified by:
  `getTimeStamp` in interface `CDOTimeProvider`

### getDurableLockingID

public String getDurableLockingID()

Specified by:
  `getDurableLockingID` in interface `CDOCommonView`
Since:
  4.0

### getTransactionHandlers

public CDOTransactionHandler[] getTransactionHandlers()

Specified by:
  `getTransactionHandlers` in interface `CDOTransaction`

### getTransactionHandlers1

public CDOTransactionHandler1[] getTransactionHandlers1()

Specified by:
  `getTransactionHandlers1` in interface `CDOTransaction`
Since:
  4.0

### getTransactionHandlers2

public CDOTransactionHandler2[] getTransactionHandlers2()

Specified by:
  `getTransactionHandlers2` in interface `CDOTransaction`
Since:
  4.0

### getSessionID

public int getSessionID()

Specified by:
  `getSessionID` in interface `CDOCommonView`
Since:
  4.1

### isDurableView

public boolean isDurableView()

Specified by:
  `isDurableView` in interface `CDOCommonView`
Since:
  4.1

### getLockOwner

public CDOLockOwner getLockOwner()

Specified by:
  `getLockOwner` in interface `CDOCommonView`
Since:
  4.15

### getURI

public URI getURI()

Specified by:
  `getURI` in interface `CDOView`

### getViewID

public int getViewID()

Specified by:
  `getViewID` in interface `CDOCommonView`

### getViewSet

public CDOViewSet getViewSet()
Description copied from interface: `CDOView`
Returns the `view set` this view is associated with.

Specified by:
  `getViewSet` in interface `CDOView`
Returns:
  The view set this view is associated with, never `null`.
See Also:
  - `CDOViewSet.getViews()`

### sync

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

Here is an example:

     CDOView view = ...;
     CriticalSection sync = view.sync();

     MyResult result = sync.call(() -> {
       // Access the view and its objects safely here.
       CDOObject object1 = view.getObject(id1);
       CDOObject object2 = view.getObject(id2);
       CDOObject object3 = view.getObject(id3);
       ...
       return new MyResult(...);
     });

The critical section ensures that no invalidation or other internal operation of the view can occur while the block of code is executed. This is particularly important if the block of code accesses the view or `objects` of the view multiple times, because these objects can be `invalidated` by network threads at any time in between these accesses otherwise. This can lead to wrong computation results in the block of code being executed.

Note that single accesses to the view or its objects are always safe, even without using the critical section.

There are some other useful methods in CriticalSection that can be used to execute a block of code, such as `run(Runnable)` or `supply(Supplier)`.

By default the critical section uses the monitor lock of this view to synchronize. If you need a different locking strategy you can override this by calling `CDOUtil.setNextViewLock(Lock)` before opening the view.

In particular you can use a `DelegableReentrantLock`, which allows to delegate the lock ownership to a different thread. This is useful in scenarios where you need to hold the lock while waiting for an asynchronous operation to complete in a different thread.

A typical example is the Display.syncExec() method in SWT/JFace UI applications. With the default locking strategy this can lead to deadlocks:

1. Thread A (not the UI thread) holds the view lock and calls `Display.syncExec()` to execute some code in the UI thread.
2. The Runnable passed to syncExec() is scheduled for execution in the UI thread. Thread A waits for the Runnable to complete.
3. The UI thread executes the Runnable, which tries to access the view or an object of the view. This requires the view lock, which is already held by thread A.
4. Deadlock: Thread A waits for the Runnable to complete and the UI thread waits for the view lock to be released.

Note that, in this scenario, Thread A is holding the view lock while waiting for the Runnable to complete. This is kind of an anti-pattern, because it blocks other threads from accessing the view for an indeterminate amount of time. In addition, it is not necessary to hold the view lock while waiting for the Runnable to complete, because Thread A can not access the view in that time.

A `DelegableReentrantLock` can be used to avoid the deadlock. It uses so called lock delegation to temporarily transfer the ownership of the lock to a different thread. In the scenario described above, Thread A can delegate the lock ownership to the UI thread while waiting for the Runnable to complete. When the Runnable completes, the lock ownership is transferred back to Thread A. This way, the UI thread can access the view while executing the Runnable and no deadlock occurs.

`DelegableReentrantLock` uses `DelegableReentrantLock.DelegateDetector`s to determine whether the current thread is allowed to delegate the lock ownership to a different thread. A `DelegateDetector` can be registered with the lock by calling `DelegableReentrantLock.addDelegateDetector(DelegateDetector)`. The `org.eclipse.net4j.util.ui` plugin provides a `DisplayDelegateDetector` for the SWT/JFace UI thread that detects calls to `Display.syncExec()`.

Specified by:
  `sync` in interface `CDOView`
See Also:
  - `CDOUtil.sync(CDOView)`
  - `CDOUtil.sync(Notifier)`

### getViewLock

@Deprecated public Lock getViewLock()
Deprecated.

Specified by:
  `getViewLock` in interface `CDOView`
Since:
  4.5

### syncExec

@Deprecated public void syncExec(Runnable runnable)
Deprecated.

Specified by:
  `syncExec` in interface `CDOView`
Since:
  4.5

### syncExec

@Deprecated public <V> V syncExec(Callable<V> callable) throws Exception
Deprecated.

Specified by:
  `syncExec` in interface `CDOView`
Throws:
  `Exception`
Since:
  4.5

### hasConflict

public boolean hasConflict()
Description copied from interface: `CDOTransaction`
Returns `true` if this transaction contains local modifications that are conflicting with remote modifications, `false` otherwise.

Specified by:
  `hasConflict` in interface `CDOTransaction`
Specified by:
  `hasConflict` in interface `CDOView`
See Also:
  - `CDOTransaction.hasConflict()`

### hasResource

public boolean hasResource(String path)
Description copied from interface: `CDOView`
Returns `true` if a resource with the given path exists in the repository, `false`. Applies to `file resources`, as well.

Specified by:
  `hasResource` in interface `CDOView`
See Also:
  - `CDOView.getResource(String, boolean)`

### isClosed

public boolean isClosed()

Specified by:
  `isClosed` in interface `org.eclipse.net4j.util.collection.Closeable`

### isObjectRegistered

public boolean isObjectRegistered(CDOID id)
Description copied from interface: `CDOView`
Returns `true` if an `object` with the given `id` is currently registered in this view, `false` otherwise.

Specified by:
  `isObjectRegistered` in interface `CDOView`

### refreshLockStates

@Deprecated public void refreshLockStates(Consumer<CDOLockState> consumer)
Deprecated.
Description copied from interface: `CDOView`
Refreshes the `lock states` of this `view` with the latest states from the repository. If a lock state consumer is passed it is called for each resulting new lock state.

Specified by:
  `refreshLockStates` in interface `CDOView`
Since:
  4.12

### getLockStates

public CDOLockState[] getLockStates(Collection<CDOID> ids)
Description copied from interface: `CDOView`
Get an array of `lock states` corresponding to the specified collection of `ids`. If the collection of `ids` is empty, `lock states` of all objects are returned.

Specified by:
  `getLockStates` in interface `CDOView`
Since:
  4.6

### getLockStates

public CDOLockState[] getLockStates(Collection<CDOID> ids, boolean loadOnDemand)
Description copied from interface: `CDOView`
Get an array of `lock states` corresponding to the specified collection of `ids`. If the collection of `ids` is empty, `lock states` of all objects are returned.

Specified by:
  `getLockStates` in interface `CDOView`

### getLockStatesOfObjects

public CDOLockState[] getLockStatesOfObjects(Collection<? extends CDOObject> objects)
Description copied from interface: `CDOView`
Get an array of `lock states` corresponding to the specified collection of `objects`. If the collection of `objects` is empty, `lock states` of all locked objects are returned.

Specified by:
  `getLockStatesOfObjects` in interface `CDOView`
Since:
  4.6

### lockObjects

public void lockObjects(Collection<? extends CDOObject> objects, org.eclipse.net4j.util.concurrent.IRWLockManager.LockType lockType, long timeout) throws InterruptedException
Description copied from interface: `CDOView`
Locks the given objects. Once the objects are locked, they will not be changed remotely or go in conflict state.

Specified by:
  `lockObjects` in interface `CDOView`
Throws:
  `InterruptedException`

### lockObjects

public void lockObjects(Collection<? extends CDOObject> objects, org.eclipse.net4j.util.concurrent.IRWLockManager.LockType lockType, long timeout, boolean recursive) throws InterruptedException

Specified by:
  `lockObjects` in interface `CDOView`
Throws:
  `InterruptedException`

### options

public CDOTransaction.Options options()
Description copied from interface: `CDOCommonView`
Returns the `options` of this view.

Specified by:
  `options` in interface `CDOCommonView`
Specified by:
  `options` in interface `CDOTransaction`
Specified by:
  `options` in interface `CDOView`
Specified by:
  `options` in interface `org.eclipse.net4j.util.options.IOptionsContainer`

### queryResources

public List<CDOResourceNode> queryResources(CDOResourceFolder folder, String name, boolean exactMatch)
Description copied from interface: `CDOView`
Returns a list of the resources in the given folder with a name equal to or starting with the value of the name parameter.

Specified by:
  `queryResources` in interface `CDOView`
Parameters:
  `folder` - The folder to search in, or `null` for top level resource nodes.
  `name` - the name or prefix of the resource nodes to return.
  `exactMatch` - `true` if the complete name of the resource must match, `false` if only a common prefix of the name must match.

### queryResourcesAsync

public org.eclipse.net4j.util.collection.CloseableIterator<CDOResourceNode> queryResourcesAsync(CDOResourceFolder folder, String name, boolean exactMatch)
Description copied from interface: `CDOView`
Returns an iterator over the resources in the given folder with a name equal to or starting with the value of the name parameter. The underlying query will be executed asynchronously.

Specified by:
  `queryResourcesAsync` in interface `CDOView`
Parameters:
  `folder` - The folder to search in, or `null` for top level resource nodes.
  `name` - the name or prefix of the resource nodes to return.
  `exactMatch` - `true` if the complete name of the resource must match, `false` if only a common prefix of the name must match.

### queryInstances

public <T extends EObject> List<T> queryInstances(EClass type)
Description copied from interface: `CDOView`
Returns a list of the instances of the given type.

Specified by:
  `queryInstances` in interface `CDOView`
Since:
  4.3

### queryInstancesAsync

public <T extends EObject> org.eclipse.net4j.util.collection.CloseableIterator<T> queryInstancesAsync(EClass type)
Description copied from interface: `CDOView`
Returns an iterator over the instances of the given type. The underlying query will be executed asynchronously.

Specified by:
  `queryInstancesAsync` in interface `CDOView`
Since:
  4.3

### queryInstancesAsync

public <T extends EObject> org.eclipse.net4j.util.collection.CloseableIterator<T> queryInstancesAsync(EClass type, boolean exact)
Description copied from interface: `CDOView`
Returns an iterator over the instances of the given type. The underlying query will be executed asynchronously.

Specified by:
  `queryInstancesAsync` in interface `CDOView`
Since:
  4.6

### queryXRefs

public List<CDOObjectReference> queryXRefs(CDOObject targetObject, EReference... sourceReferences)
Description copied from interface: `CDOView`
Returns a list of `object references` that represent the cross references to the specified target object.

Specified by:
  `queryXRefs` in interface `CDOView`
Parameters:
  `targetObject` - The target object that referencing objects are requested for. An external target object can be used with the help of `CDOUtil.wrapExternalObject()`.
  `sourceReferences` - The reference features that referencing objects are requested for, or an empty array if all reference features are to be used in the request.
Since:
  4.0
See Also:
  - `CDOView.queryXRefs(Set, EReference...)`
  - `CDOView.queryXRefsAsync(Set, EReference...)`
  - `CDOUtil.wrapExternalObject(EObject, CDOView)`

### queryXRefs

public List<CDOObjectReference> queryXRefs(Set<CDOObject> targetObjects, EReference... sourceReferences)
Description copied from interface: `CDOView`
Returns a list of `object references` that represent the cross references to the specified target objects.

Specified by:
  `queryXRefs` in interface `CDOView`
Parameters:
  `targetObjects` - The set of target objects that referencing objects are requested for. External target objects can be used with the help of `CDOUtil.wrapExternalObject()`.
  `sourceReferences` - The reference features that referencing objects are requested for, or an empty array if all reference features are to be used in the request.
See Also:
  - `CDOView.queryXRefs(CDOObject, EReference...)`
  - `CDOView.queryXRefsAsync(Set, EReference...)`
  - `CDOUtil.wrapExternalObject(EObject, CDOView)`

### queryXRefsAsync

public org.eclipse.net4j.util.collection.CloseableIterator<CDOObjectReference> queryXRefsAsync(Set<CDOObject> targetObjects, EReference... sourceReferences)
Description copied from interface: `CDOView`
Returns an iterator over the `object references` that represent the cross references to the specified target objects. The underlying query will be executed asynchronously.

Specified by:
  `queryXRefsAsync` in interface `CDOView`
Parameters:
  `targetObjects` - The set of target objects that referencing objects are requested for. External target objects can be used with the help of `CDOUtil.wrapExternalObject()`.
  `sourceReferences` - The reference features that referencing objects are requested for, or an empty array if all reference features are to be used in the request.
See Also:
  - `CDOView.queryXRefs(CDOObject, EReference...)`
  - `CDOView.queryXRefs(Set, EReference...)`
  - `CDOUtil.wrapExternalObject(EObject, CDOView)`

### reload

@Deprecated public int reload(CDOObject... objects)
Deprecated.
Description copied from interface: `CDOView`
Reloads the given `objects` from the repository.

Specified by:
  `reload` in interface `CDOView`

### removeObjectHandler

public void removeObjectHandler(CDOObjectHandler handler)

Specified by:
  `removeObjectHandler` in interface `CDOView`

### removeRegistrationHandler

public void removeRegistrationHandler(CDORegistrationHandler handler)

Specified by:
  `removeRegistrationHandler` in interface `CDOView`
Since:
  4.6

### removeTransactionHandler

public void removeTransactionHandler(CDOTransactionHandlerBase handler)

Specified by:
  `removeTransactionHandler` in interface `CDOTransaction`
Since:
  4.0

### revertTo

public CDOChangeSetData revertTo(CDOBranchPoint branchPoint)

Specified by:
  `revertTo` in interface `CDOTransaction`
Since:
  4.15

### merge

public CDOChangeSetData merge(CDOBranch source, CDOMerger merger)
Description copied from interface: `CDOTransaction`
Merges the changes from the given source branch into this transaction and possibly considers previous merges from that branch by inspecting the `merge source` information of the `commit history`.

Specified by:
  `merge` in interface `CDOTransaction`
Since:
  4.6
See Also:
  - `CDOTransaction.merge(CDOBranchPoint, CDOMerger)`

### merge

public CDOChangeSetData merge(CDOBranchPoint source, CDOMerger merger)
Description copied from interface: `CDOTransaction`
Merges the changes from the given source point into this transaction and possibly considers previous merges from that `branch` by inspecting the `merge source` information of the `commit history`.

Specified by:
  `merge` in interface `CDOTransaction`

### merge

public CDOChangeSetData merge(CDOBranchPoint source, CDOBranchPoint sourceBase, CDOMerger merger)
Description copied from interface: `CDOTransaction`
Merges the changes between the given source base point and the given source point into this transaction.

Warning: If the branch of this transaction already contains merges from the given source point range (i.e., if this merge is a "remerge") this method will likely fail. One of the following methods should be used instead:

- `CDOTransaction.merge(CDOBranchPoint, CDOBranchPoint, CDOBranchPoint, CDOMerger)`
- `CDOTransaction.merge(CDOBranchPoint, CDOMerger)`
- `CDOTransaction.merge(CDOBranch, CDOMerger)`

Specified by:
  `merge` in interface `CDOTransaction`
Since:
  4.0

### merge

public CDOChangeSetData merge(CDOBranchPoint source, CDOBranchPoint sourceBase, CDOBranchPoint targetBase, CDOMerger merger)
Description copied from interface: `CDOTransaction`
Merges the changes between the given source base point and the given source point into this transaction.

When specifying an adequate target base point this method is able to perform a proper "remerge".

Specified by:
  `merge` in interface `CDOTransaction`
Since:
  4.6
See Also:
  - `CDOTransaction.merge(CDOBranchPoint, CDOMerger)`
  - `CDOTransaction.merge(CDOBranch, CDOMerger)`

### compareRevisions

public CDOChangeSetData compareRevisions(CDOBranchPoint source)

Specified by:
  `compareRevisions` in interface `CDOView`
Since:
  4.0

### getHistory

public CDOCommitHistory getHistory()

Specified by:
  `getHistory` in interface `CDOCommitHistory.Provider<CDOObject,CDOObjectHistory>`
Since:
  4.2

### getHistory

public CDOObjectHistory getHistory(CDOObject object)

Specified by:
  `getHistory` in interface `CDOCommitHistory.Provider<CDOObject,CDOObjectHistory>`
Since:
  4.2

### setSavepoint

public CDOSavepoint setSavepoint()
Description copied from interface: `CDOUserTransaction`
Creates a save point in the `CDOTransaction` that can be used to roll back a part of the transaction

Save points do not involve the server side, everything is done on the client side.

Specified by:
  `setSavepoint` in interface `CDOTransaction`
Specified by:
  `setSavepoint` in interface `CDOUserTransaction`

### unlockObjects

public void unlockObjects()
Description copied from interface: `CDOView`
Unlocks all locked objects of this view.

Specified by:
  `unlockObjects` in interface `CDOView`

### unlockObjects

public void unlockObjects(Collection<? extends CDOObject> objects, org.eclipse.net4j.util.concurrent.IRWLockManager.LockType lockType)
Description copied from interface: `CDOView`
Unlocks the given locked objects of this view.

Specified by:
  `unlockObjects` in interface `CDOView`

### unlockObjects

public void unlockObjects(Collection<? extends CDOObject> objects, org.eclipse.net4j.util.concurrent.IRWLockManager.LockType lockType, boolean recursive)

Specified by:
  `unlockObjects` in interface `CDOView`

### enableDurableLocking

@Deprecated public String enableDurableLocking(boolean enable)
Deprecated.
Use `enableDurableLocking()` instead or `disableDurableLocking(boolean)`, respectively.

Specified by:
  `enableDurableLocking` in interface `CDOView`
Since:
  4.0

### enableDurableLocking

public String enableDurableLocking()
Description copied from interface: `CDOView`
Enables the storage of all information that's needed to `reopen` this view at a later point in time. This information includes the `branch point`, the user ID of the `session`, whether it's a read-only view or a `transaction` and all the locks that are acquired or will be acquired while durable locking is enabled.

Specified by:
  `enableDurableLocking` in interface `CDOView`
Since:
  4.1
See Also:
  - `CDOViewContainer.openView(String)`
  - `CDOViewOpener.openView(String, ResourceSet)`
  - `CDOTransactionContainer.openTransaction(String)`
  - `CDOTransactionOpener.openTransaction(String, ResourceSet)`
  - `CDOView.disableDurableLocking(boolean)`

### disableDurableLocking

public void disableDurableLocking(boolean releaseLocks)
Description copied from interface: `CDOView`
Disables the storage of all information that's needed to `reopen` this view at a later point in time. If such information is stored when this method is called it is removed. Note that locks acquired by this view are only released if `true` is passed to the `releaseLocks` parameter.

Specified by:
  `disableDurableLocking` in interface `CDOView`
Since:
  4.1
See Also:
  - `CDOView.enableDurableLocking()`

### isReadOnly

public boolean isReadOnly()

Specified by:
  `isReadOnly` in interface `CDOCommonView`

### isHistorical

public boolean isHistorical()

Specified by:
  `isHistorical` in interface `CDOCommonView`
Since:
  4.5

### getBranch

public CDOBranch getBranch()
Description copied from interface: `CDOBranchPoint`
Returns the branch of this branch point, or `null` if this branch point is the `base` of the `main branch`.

Specified by:
  `getBranch` in interface `CDOBranchPoint`
Specified by:
  `getBranch` in interface `CDOBranchProvider`

### setBranchPoint

public boolean setBranchPoint(CDOBranch branch, long timeStamp)
Description copied from interface: `CDOView`
Sets the `branch` and the point in (repository) time this view should refer to. `Objects` provided by this view will be `valid` at this time. The special value `UNSPECIFIED_DATE` denotes a "floating view" that always shows the latest state of the repository.

Specified by:
  `setBranchPoint` in interface `CDOView`
Returns:
  `true` if the branch point was changed, `false` otherwise.

### setBranchPoint

public boolean setBranchPoint(CDOBranch branch, long timeStamp, IProgressMonitor monitor)
Description copied from interface: `CDOView`
Same as `CDOView.setBranchPoint(CDOBranch, long)` with a `IProgressMonitor`.

Specified by:
  `setBranchPoint` in interface `CDOView`
Since:
  4.4

### setBranchPoint

public boolean setBranchPoint(CDOBranchPoint branchPoint)
Description copied from interface: `CDOView`
Same as calling `setBranchPoint(branchPoint.getBranch(), branchPoint.getTimeStamp())`.

Specified by:
  `setBranchPoint` in interface `CDOView`

### setBranchPoint

public boolean setBranchPoint(CDOBranchPoint branchPoint, IProgressMonitor monitor)
Description copied from interface: `CDOView`
Same as calling `CDOView.setBranchPoint(CDOBranchPoint)` with a `IProgressMonitor` .

Specified by:
  `setBranchPoint` in interface `CDOView`
Since:
  4.4

### setBranch

public boolean setBranch(CDOBranch branch)
Description copied from interface: `CDOView`
Same as calling `setBranchPoint(branch, getTimeStamp())`.

Specified by:
  `setBranch` in interface `CDOView`

### setBranch

public boolean setBranch(CDOBranch branch, IProgressMonitor monitor)
Description copied from interface: `CDOView`
Same as `CDOView.setBranch(CDOBranch)` with `IProgressMonitor`.

Specified by:
  `setBranch` in interface `CDOView`
Since:
  4.4

### setTimeStamp

public boolean setTimeStamp(long timeStamp)
Description copied from interface: `CDOView`
Same as calling `setBranchPoint(getBranch(), timeStamp)`.

Specified by:
  `setTimeStamp` in interface `CDOView`

### setTimeStamp

public boolean setTimeStamp(long timeStamp, IProgressMonitor monitor)
Description copied from interface: `CDOView`
Same as `CDOView.setTimeStamp(long)` with `IProgressMonitor`.

Specified by:
  `setTimeStamp` in interface `CDOView`
Since:
  4.4

### getURIHandler

public URIHandler getURIHandler()

Specified by:
  `getURIHandler` in interface `CDOView`

### getUnitManager

public CDOUnitManager getUnitManager()

Specified by:
  `getUnitManager` in interface `CDOView`
Since:
  4.5

### getCommitComment

public String getCommitComment()
Description copied from interface: `CDOTransaction`
Returns the comment to be used in the next commit operation.

Specified by:
  `getCommitComment` in interface `CDOTransaction`
See Also:
  - `CDOCommitInfo.getComment()`

### setCommitComment

public void setCommitComment(String comment)
Description copied from interface: `CDOTransaction`
Sets the comment to be used in the next commit operation.

Specified by:
  `setCommitComment` in interface `CDOTransaction`
See Also:
  - `CDOCommitInfo.getComment()`

### getCommitProperty

public String getCommitProperty(String key)

Specified by:
  `getCommitProperty` in interface `CDOTransaction`

### setCommitProperty

public String setCommitProperty(String key, String value)

Specified by:
  `setCommitProperty` in interface `CDOTransaction`

### setCommittables

public void setCommittables(Set<? extends EObject> committables)

Specified by:
  `setCommittables` in interface `CDOTransaction`
Since:
  4.0

### getCommittables

public Set<? extends EObject> getCommittables()

Specified by:
  `getCommittables` in interface `CDOTransaction`
Since:
  4.0

### isEmpty

public boolean isEmpty()

Specified by:
  `isEmpty` in interface `org.eclipse.net4j.util.container.IContainer<CDOResourceNode>`
Since:
  4.2

### getElements

public CDOResourceNode[] getElements()

Specified by:
  `getElements` in interface `org.eclipse.net4j.util.container.IContainer<CDOResourceNode>`
Since:
  4.2

### toString

public String toString()

Overrides:
  `toString` in class `Object`

### getAdapter

public Object getAdapter(Class adapter)

Specified by:
  `getAdapter` in interface `IAdaptable`
Since:
  4.2

### createTempFile

public static File createTempFile(CDOTransaction transaction) throws IOException

Throws:
  `IOException`