## org.eclipse.emf.spi.cdo
Interface InternalCDOView

All Superinterfaces:
  CDOCommonView, CDOIDProvider, CDOView, org.eclipse.net4j.util.collection.Closeable, org.eclipse.net4j.util.lifecycle.ILifecycle, org.eclipse.net4j.util.lifecycle.ILifecycle.Introspection, org.eclipse.net4j.util.event.INotifier, org.eclipse.net4j.util.options.IOptionsContainer

All Known Subinterfaces:
  InternalCDOTransaction

    public interface InternalCDOView

extends CDOView, CDOIDProvider, org.eclipse.net4j.util.lifecycle.ILifecycle.Introspection

Since:
  2.0

Nested Class Summary

Nested classes/interfaces inherited from interface org.eclipse.emf.cdo.view.CDOView
`CDOView.Options`

Nested classes/interfaces inherited from interface org.eclipse.emf.cdo.common.CDOCommonView
`CDOCommonView.Type`

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

Nested classes/interfaces inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycle
`org.eclipse.net4j.util.lifecycle.ILifecycle.Introspection`

Field Summary

Fields inherited from interface org.eclipse.emf.cdo.common.CDOCommonView
`UNSPECIFIED_DATE`

Method Summary
`void` `attachResource(CDOResourceImpl resource)`
`java.lang.Object` `convertIDToObject(java.lang.Object potentialID)`
`java.lang.Object` `convertObjectToID(java.lang.Object potentialObject)`
`java.lang.Object` `convertObjectToID(java.lang.Object potentialObject, boolean onlyPersistedID)`
`void` `deregisterObject(InternalCDOObject object)`
`void` `getCDOIDAndVersion(java.util.Map<CDOID,CDOIDAndVersion> uniqueObjects, java.util.Collection<? extends CDOObject> cdoObjects)`
`CDOFeatureAnalyzer` `getFeatureAnalyzer()`
`InternalCDOObject[]` `getObjectsArray()`
`CDOID` `getResourceNodeID(java.lang.String path)`
`InternalCDORevision` `getRevision(CDOID id, boolean loadOnDemand)`
`InternalCDOSession` `getSession()` Returns the `session` this view was opened by.
`java.util.concurrent.locks.ReentrantLock` `getStateLock()` Each time CDORevision or CDOState of an CDOObject is modified, ensure that no concurrent access is modifying it at the same time.
`org.eclipse.emf.internal.cdo.CDOStore` `getStore()`
`InternalCDOViewSet` `getViewSet()` Returns the `view set` this view is associated with.
`void` `handleAddAdapter(InternalCDOObject eObject, org.eclipse.emf.common.notify.Adapter adapter)`
`void` `handleChangeSubscription(java.util.Collection<CDORevisionDelta> deltas, java.util.Collection<CDOID> detachedObjects)`
`java.util.Set<CDOObject>` `handleInvalidation(long timeStamp, java.util.Set<CDOIDAndVersion> dirtyOIDs, java.util.Collection<CDOID> detachedOIDs)` Returns the conflicting objects.
`java.util.Set<CDOObject>` `handleInvalidationWithoutNotification(java.util.Set<CDOIDAndVersion> dirtyOIDs, java.util.Collection<CDOID> detachedOIDs, java.util.Set<InternalCDOObject> dirtyObjects, java.util.Set<InternalCDOObject> detachedObjects)`
`void` `handleRemoveAdapter(InternalCDOObject eObject, org.eclipse.emf.common.notify.Adapter adapter)`
`boolean` `hasSubscription(CDOID id)`
`boolean` `isObjectLocked(CDOObject object, org.eclipse.net4j.util.concurrent.RWLockManager.LockType lockType, boolean byOthers)`
`void` `registerObject(InternalCDOObject object)`
`void` `registerProxyResource(CDOResourceImpl resource)`
`void` `remapObject(CDOID oldID)`
`InternalCDOObject` `removeObject(CDOID id)`
`void` `setFeatureAnalyzer(CDOFeatureAnalyzer featureAnalyzer)`
`void` `setSession(InternalCDOSession session)`
`void` `setViewID(int viewId)`
`void` `setViewSet(InternalCDOViewSet viewSet)`
`void` `subscribe(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.common.notify.Adapter adapter)`
`InternalCDOTransaction` `toTransaction()`
`void` `unsubscribe(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.common.notify.Adapter adapter)`

Methods inherited from interface org.eclipse.emf.cdo.view.CDOView
`createQuery, getLock, getObject, getObject, getObject, getResource, getResource, getResourceNode, getResourceSet, getRootResource, getURIHandler, hasConflict, hasResource, isDirty, isObjectRegistered, lockObjects, options, queryResources, queryResourcesAsync, reload, unlockObjects, unlockObjects`

Methods inherited from interface org.eclipse.emf.cdo.common.CDOCommonView
`getTimeStamp, getViewID, getViewType`

Methods inherited from interface org.eclipse.net4j.util.collection.Closeable
`close, isClosed`

Methods inherited from interface org.eclipse.net4j.util.event.INotifier
`addListener, removeListener`

Methods inherited from interface org.eclipse.emf.cdo.common.id.CDOIDProvider
`provideCDOID`

Methods inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycle.Introspection
`getLifecycleState, isActive`

Methods inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycle
`activate, deactivate`

Method Detail

### setViewID

    void setViewID(int viewId)

### getSession

    InternalCDOSession 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()`, `CDOSession.openView()`, `CDOSession.openView(ResourceSet)`, `CDOSession.openAudit(long)`, `CDOSession.openAudit(ResourceSet, long)`, `CDOSession.openTransaction()`, `CDOSession.openTransaction(ResourceSet)`

### setSession

    void setSession(InternalCDOSession session)

### getViewSet

    InternalCDOViewSet 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()`

### setViewSet

    void setViewSet(InternalCDOViewSet viewSet)

### getFeatureAnalyzer

    CDOFeatureAnalyzer getFeatureAnalyzer()

### setFeatureAnalyzer

    void setFeatureAnalyzer(CDOFeatureAnalyzer featureAnalyzer)

### getStore

    org.eclipse.emf.internal.cdo.CDOStore getStore()

### toTransaction

    InternalCDOTransaction toTransaction()

### attachResource

    void attachResource(CDOResourceImpl resource)

### handleInvalidation

    java.util.Set<CDOObject> handleInvalidation(long timeStamp,
                                                java.util.Set<CDOIDAndVersion> dirtyOIDs,
                                                java.util.Collection<CDOID> detachedOIDs)

  Returns the conflicting objects.

### handleInvalidationWithoutNotification

    java.util.Set<CDOObject> handleInvalidationWithoutNotification(java.util.Set<CDOIDAndVersion> dirtyOIDs,
                                                                   java.util.Collection<CDOID> detachedOIDs,
                                                                   java.util.Set<InternalCDOObject> dirtyObjects,
                                                                   java.util.Set<InternalCDOObject> detachedObjects)

### getCDOIDAndVersion

    void getCDOIDAndVersion(java.util.Map<CDOID,CDOIDAndVersion> uniqueObjects,
                            java.util.Collection<? extends CDOObject> cdoObjects)

### handleChangeSubscription

    void handleChangeSubscription(java.util.Collection<CDORevisionDelta> deltas,
                                  java.util.Collection<CDOID> detachedObjects)

### getObjectsArray

    InternalCDOObject[] getObjectsArray()

### remapObject

    void remapObject(CDOID oldID)

### getResourceNodeID

    CDOID getResourceNodeID(java.lang.String path)

### registerProxyResource

    void registerProxyResource(CDOResourceImpl resource)

### registerObject

    void registerObject(InternalCDOObject object)

### deregisterObject

    void deregisterObject(InternalCDOObject object)

### removeObject

    InternalCDOObject removeObject(CDOID id)

### getRevision

    InternalCDORevision getRevision(CDOID id,
                                    boolean loadOnDemand)

### convertObjectToID

    java.lang.Object convertObjectToID(java.lang.Object potentialObject)

### convertObjectToID

    java.lang.Object convertObjectToID(java.lang.Object potentialObject,
                                       boolean onlyPersistedID)

### convertIDToObject

    java.lang.Object convertIDToObject(java.lang.Object potentialID)

### isObjectLocked

    boolean isObjectLocked(CDOObject object,
                           org.eclipse.net4j.util.concurrent.RWLockManager.LockType lockType,
                           boolean byOthers)

### handleAddAdapter

    void handleAddAdapter(InternalCDOObject eObject,
                          org.eclipse.emf.common.notify.Adapter adapter)

### handleRemoveAdapter

    void handleRemoveAdapter(InternalCDOObject eObject,
                             org.eclipse.emf.common.notify.Adapter adapter)

### subscribe

    void subscribe(org.eclipse.emf.ecore.EObject eObject,
                   org.eclipse.emf.common.notify.Adapter adapter)

### unsubscribe

    void unsubscribe(org.eclipse.emf.ecore.EObject eObject,
                     org.eclipse.emf.common.notify.Adapter adapter)

### hasSubscription

    boolean hasSubscription(CDOID id)

### getStateLock

    java.util.concurrent.locks.ReentrantLock getStateLock()

  Each time CDORevision or CDOState of an CDOObject is modified, ensure that no concurrent access is modifying it at the same time. Uses `getStateLock()` to be thread safe.

  In the case where `CDOObject.cdoRevision()` or `CDOObject.cdoState()` is called without using this lock, it is not guarantee that the state didn't change immediately after.

  `if (cdoObject.cdoState() != CDOState.PROXY) { // At this point could be a proxy! cdoObject.cdoRevision(); }`

  The reason were we didn't use `CDOView.getLock()` is to not allow the access of that lock to the users since it is very critical. Instead of giving this API to the end-users, a better API should be given in the CDOObject to give them want they need.

Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) and others. All Rights Reserved.