org.eclipse.emf.cdo.view
Interface CDOView

All Superinterfaces:
CDOBranchPoint, CDOCommitHistory.Provider<CDOObject,CDOObjectHistory>, CDOCommonView, CDOLockOwner, CDORevisionProvider, CDOTimeProvider, CDOUpdatable, Closeable, IAdaptable, IContainer<CDOResourceNode>, INotifier, IOptionsContainer
All Known Subinterfaces:
CDOTransaction, InternalCDOTransaction, InternalCDOView
All Known Implementing Classes:
CDOPushTransaction

public interface CDOView
extends CDOCommonView, CDOUpdatable, CDOCommitHistory.Provider<CDOObject,CDOObjectHistory>, IContainer<CDOResourceNode>

A read-only view to the state of the object graph in the repository of the underlying session at a specific time at a specific branch.

If the time of a view is unspecified the objects provided and managed by that view always show the latest state the repository graph.

Objects that are accessed through this view are immutable for the client. Each attempt to call a mutator on one of these objects or one of their feature lists will result in a ReadOnlyException being thrown immediately. Mutable objects can be provided by a transaction.

A view is opened through API of the underlying session like this:

   CDOSession session = ...
   CDOView view = session.openView();
   ...
 

Since:
2.0
No Implement
This interface is not intended to be implemented by clients.
No Extend
This interface is not intended to be extended by clients.

Nested Class Summary
static interface CDOView.Options
          Encapsulates a set of notifying view configuration options.
 
Nested classes/interfaces inherited from interface org.eclipse.net4j.util.container.IContainer
IContainer.Modifiable<E>
 
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
 
Method Summary
 void addObjectHandler(CDOObjectHandler handler)
           
 CDOChangeSetData compareRevisions(CDOBranchPoint source)
           
 CDOQuery createQuery(String language, String queryString)
          Same as createQuery(language, queryString, null).
 CDOQuery createQuery(String language, String queryString, Object context)
           
 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.
 CDOBinaryResource getBinaryResource(String path)
           
 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()
           
 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.
 CDOResource getRootResource()
          Returns the root resource of the repository.
 CDOSession getSession()
          Returns the session this view was opened by.
 CDOTextResource getTextResource(String path)
           
 URIHandler getURIHandler()
           
 CDOViewSet getViewSet()
          Returns the view set this view is associated with.
 boolean hasConflict()
          Returns always false.
 boolean hasResource(String path)
          Returns true if a resource with the given path exists in the repository, false.
 boolean isDirty()
          Returns always false.
 boolean isInvalidationRunnerActive()
           
 boolean isLegacyModeEnabled()
          Deprecated. As of 4.2 the legacy mode is always enabled.
 boolean isObjectRegistered(CDOID id)
          Returns true if an object with the given id is currently registered in this view, false otherwise.
 void lockObjects(Collection<? extends CDOObject> objects, IRWLockManager.LockType lockType, long timeout)
          Locks the given objects.
 void lockObjects(Collection<? extends CDOObject> objects, IRWLockManager.LockType lockType, long timeout, boolean recursive)
           
 CDOView.Options options()
          Returns the options of this view.
 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.
 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(CDOObject targetObject, EReference... sourceReferences)
          Returns a list of object references that represent the cross references to the specified target object.
 List<CDOObjectReference> queryXRefs(Set<CDOObject> targetObjects, EReference... sourceReferences)
          Returns a list of object references that represent the cross references to the specified target objects.
 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.
 int reload(CDOObject... objects)
          Reloads the given objects from the repository.
 void removeObjectHandler(CDOObjectHandler handler)
           
 boolean setBranch(CDOBranch branch)
          Same as calling setBranchPoint(branch, getTimeStamp()).
 boolean setBranchPoint(CDOBranch branch, long timeStamp)
          Sets the branch and the point in (repository) time this view should refer to.
 boolean setBranchPoint(CDOBranchPoint branchPoint)
          Same as calling setBranchPoint(branchPoint.getBranch(), branchPoint.getTimeStamp()).
 void setResourcePathCache(Map<String,CDOID> resourcePathCache)
          Sets the new map to be used as a cache for various get*Resource*(String path) methods.
 boolean setTimeStamp(long timeStamp)
          Same as calling setBranchPoint(getBranch(), timeStamp).
 void unlockObjects()
          Unlocks all locked objects of this view.
 void unlockObjects(Collection<? extends CDOObject> objects, IRWLockManager.LockType lockType)
          Unlocks the given locked objects of this view.
 void unlockObjects(Collection<? extends CDOObject> objects, IRWLockManager.LockType lockType, boolean recursive)
           
 
Methods inherited from interface org.eclipse.emf.cdo.common.CDOCommonView
getDurableLockingID, getViewID, isReadOnly
 
Methods inherited from interface org.eclipse.emf.cdo.common.lock.CDOLockOwner
getSessionID, isDurableView
 
Methods inherited from interface org.eclipse.emf.cdo.common.branch.CDOBranchPoint
getBranch, getTimeStamp
 
Methods inherited from interface org.eclipse.emf.cdo.common.revision.CDORevisionProvider
getRevision
 
Methods inherited from interface org.eclipse.core.runtime.IAdaptable
getAdapter
 
Methods inherited from interface org.eclipse.net4j.util.collection.Closeable
close, isClosed
 
Methods inherited from interface org.eclipse.emf.cdo.util.CDOUpdatable
getLastUpdateTime, waitForUpdate, waitForUpdate
 
Methods inherited from interface org.eclipse.emf.cdo.common.commit.CDOCommitHistory.Provider
getHistory, getHistory
 
Methods inherited from interface org.eclipse.net4j.util.container.IContainer
getElements, isEmpty
 
Methods inherited from interface org.eclipse.net4j.util.event.INotifier
addListener, getListeners, hasListeners, removeListener
 

Method Detail

getSession

CDOSession getSession()
Returns the session this view was opened by.

Specified by:
getSession in interface CDOCommonView
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()

getViewSet

CDOViewSet getViewSet()
Returns the view set this view is associated with.

Returns:
The view set this view is associated with, never null.
See Also:
CDOViewSet.getViews()

getResourceSet

ResourceSet getResourceSet()
Returns the resource set this view is associated with.

Same as calling getViewSet().getResourceSet().

See Also:
CDOViewSet.getResourceSet()

getURIHandler

URIHandler getURIHandler()

setBranchPoint

boolean setBranchPoint(CDOBranch branch,
                       long timeStamp)
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.

Returns:
true if the branch point was changed, false otherwise.
Since:
3.0

setBranchPoint

boolean setBranchPoint(CDOBranchPoint branchPoint)
Same as calling setBranchPoint(branchPoint.getBranch(), branchPoint.getTimeStamp()).

Since:
3.0

setBranch

boolean setBranch(CDOBranch branch)
Same as calling setBranchPoint(branch, getTimeStamp()).

Since:
3.0

setTimeStamp

boolean setTimeStamp(long timeStamp)
Same as calling setBranchPoint(getBranch(), timeStamp).

Since:
3.0

isInvalidationRunnerActive

boolean isInvalidationRunnerActive()
Since:
4.0

isLegacyModeEnabled

@Deprecated
boolean isLegacyModeEnabled()
Deprecated. As of 4.2 the legacy mode is always enabled.

Since:
3.0
See Also:
CDOUtil.setLegacyModeDefault(boolean)

isDirty

boolean isDirty()
Returns always false.

This method has a special implementation in CDOTransaction as well.

See Also:
CDOTransaction.isDirty()

hasConflict

boolean hasConflict()
Returns always false.

This method has a special implementation in CDOTransaction as well.

See Also:
CDOTransaction.hasConflict()

hasResource

boolean hasResource(String path)
Returns true if a resource with the given path exists in the repository, false. Applies to file resources, as well.

See Also:
getResource(String, boolean)

getResource

CDOResource getResource(String path,
                        boolean loadOnDemand)
See Also:
ResourceSet.getResource(URI, boolean)

getResource

CDOResource getResource(String path)
Same as getResource(String, true).

See Also:
ResourceSet.getResource(URI, boolean)

getTextResource

CDOTextResource getTextResource(String path)
Since:
4.2

getBinaryResource

CDOBinaryResource getBinaryResource(String path)
Since:
4.2

getResourceNode

CDOResourceNode getResourceNode(String path)
                                throws CDOException
Returns the resource node with the given path.

Returns:
never null.
Throws:
CDOException - if no such resource node exists.

getResourceFolder

CDOResourceFolder getResourceFolder(String path)
Since:
4.2

getRootResource

CDOResource getRootResource()
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.


setResourcePathCache

void setResourcePathCache(Map<String,CDOID> resourcePathCache)
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>().

Since:
4.2
See Also:
getResourceNode(String), getResource(String), getResource(String, boolean), getBinaryResource(String), getTextResource(String), getResourceFolder(String), hasResource(String)

queryResources

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.

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

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. The underlying query will be executed asynchronously.

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.

queryXRefs

List<CDOObjectReference> queryXRefs(CDOObject targetObject,
                                    EReference... sourceReferences)
Returns a list of object references that represent the cross references to the specified target object.

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:
queryXRefs(Set, EReference...), queryXRefsAsync(Set, EReference...), CDOUtil.wrapExternalObject(EObject, CDOView)

queryXRefs

List<CDOObjectReference> queryXRefs(Set<CDOObject> targetObjects,
                                    EReference... sourceReferences)
Returns a list of object references that represent the cross references to the specified target objects.

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.
Since:
3.0
See Also:
queryXRefs(CDOObject, EReference...), queryXRefsAsync(Set, EReference...), CDOUtil.wrapExternalObject(EObject, CDOView)

queryXRefsAsync

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. The underlying query will be executed asynchronously.

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.
Since:
3.0
See Also:
queryXRefs(CDOObject, EReference...), queryXRefs(Set, EReference...), CDOUtil.wrapExternalObject(EObject, CDOView)

getObject

CDOObject getObject(CDOID id,
                    boolean loadOnDemand)
Returns the object for the given CDOID.

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

CDOObject getObject(CDOID id)
Returns the object for the given CDOID.

Same as getObject(id, true).

See Also:
getObject(CDOID, boolean)

getObject

<T extends EObject> T getObject(T objectFromDifferentView)
Takes an object from a (possibly) different view and contextifies it for the usage with this view.


isObjectRegistered

boolean isObjectRegistered(CDOID id)
Returns true if an object with the given id is currently registered in this view, false otherwise.


reload

int reload(CDOObject... objects)
Reloads the given objects from the repository.


lockObjects

void lockObjects(Collection<? extends CDOObject> objects,
                 IRWLockManager.LockType lockType,
                 long timeout)
                 throws InterruptedException
Locks the given objects. Once the objects are locked, they will not be changed remotely or go in conflict state.

Throws:
InterruptedException
Since:
3.0

lockObjects

void lockObjects(Collection<? extends CDOObject> objects,
                 IRWLockManager.LockType lockType,
                 long timeout,
                 boolean recursive)
                 throws InterruptedException
Throws:
InterruptedException

unlockObjects

void unlockObjects(Collection<? extends CDOObject> objects,
                   IRWLockManager.LockType lockType)
Unlocks the given locked objects of this view.


unlockObjects

void unlockObjects(Collection<? extends CDOObject> objects,
                   IRWLockManager.LockType lockType,
                   boolean recursive)

unlockObjects

void unlockObjects()
Unlocks all locked objects of this view.

Since:
2.0

enableDurableLocking

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

Since:
4.0

enableDurableLocking

String enableDurableLocking()
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.

Since:
4.1
See Also:
CDOViewContainer.openView(String), CDOViewContainer.openView(String, ResourceSet), CDOTransactionContainer.openTransaction(String), CDOTransactionContainer.openTransaction(String, ResourceSet), disableDurableLocking(boolean)

disableDurableLocking

void disableDurableLocking(boolean releaseLocks)
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.

Since:
4.1
See Also:
enableDurableLocking()

addObjectHandler

void addObjectHandler(CDOObjectHandler handler)
Since:
3.0

removeObjectHandler

void removeObjectHandler(CDOObjectHandler handler)
Since:
3.0

getObjectHandlers

CDOObjectHandler[] getObjectHandlers()
Since:
3.0

createQuery

CDOQuery createQuery(String language,
                     String queryString)
Same as createQuery(language, queryString, null).

Since:
2.0
See Also:
createQuery(String, String, Object)

createQuery

CDOQuery createQuery(String language,
                     String queryString,
                     Object context)
Since:
4.0

compareRevisions

CDOChangeSetData compareRevisions(CDOBranchPoint source)
Since:
4.0

options

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

Specified by:
options in interface CDOCommonView
Specified by:
options in interface IOptionsContainer
Since:
2.0


Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others.