Package org.eclipse.emf.internal.cdo

## Class CDOObjectImpl

- java.lang.Object
- - org.eclipse.emf.common.notify.impl.BasicNotifierImpl
  - - org.eclipse.emf.ecore.impl.BasicEObjectImpl
    - - org.eclipse.emf.ecore.impl.MinimalEObjectImpl
      - - org.eclipse.emf.ecore.impl.MinimalEStoreEObjectImpl
        - - org.eclipse.emf.internal.cdo.CDOObjectImpl

- All Implemented Interfaces:
    `CDOObject`, `CDOWithID`, `CDOPackageTypeRegistry.CDOObjectMarker`, `org.eclipse.emf.common.notify.Notifier`, `org.eclipse.emf.ecore.EObject`, `org.eclipse.emf.ecore.EStructuralFeature.Internal.DynamicValueHolder`, `org.eclipse.emf.ecore.InternalEObject`, `InternalCDOLoadable`, `InternalCDOObject`
  Direct Known Subclasses:
    `AccessImpl`, `CDOResourceNodeImpl`, `ContainedObjectImpl`, `InvocationImpl`, `LinkedExpressionImpl`, `LinkedObjectImpl`, `ListConstructionImpl`, `ModelElementImpl`, `PermissionFilterImpl`, `PermissionImpl`, `UserPasswordImpl`, `ValueImpl`

      public class CDOObjectImpl
      extends org.eclipse.emf.ecore.impl.MinimalEStoreEObjectImpl
      implements InternalCDOObject

  The base class of all native `objects`.
  Author:
    Eike Stepper

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.eclipse.emf.ecore.impl.MinimalEObjectImpl

      `org.eclipse.emf.ecore.impl.MinimalEObjectImpl.Container`

    - ### Nested classes/interfaces inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl

      `org.eclipse.emf.ecore.impl.BasicEObjectImpl.EPropertiesHolder, org.eclipse.emf.ecore.impl.BasicEObjectImpl.EPropertiesHolderBaseImpl, org.eclipse.emf.ecore.impl.BasicEObjectImpl.EPropertiesHolderImpl`

    - ### Nested classes/interfaces inherited from class org.eclipse.emf.common.notify.impl.BasicNotifierImpl

      `org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EAdapterList<E extends java.lang.Object & org.eclipse.emf.common.notify.Adapter>, org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EObservableAdapterList, org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EScannableAdapterList`

    - ### Nested classes/interfaces inherited from interface org.eclipse.emf.ecore.InternalEObject

      `org.eclipse.emf.ecore.InternalEObject.EStore`

  - ### Field Summary

    - ### Fields inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl

      `EVIRTUAL_GET, EVIRTUAL_IS_SET, EVIRTUAL_NO_VALUE, EVIRTUAL_SET, EVIRTUAL_UNSET`

    - ### Fields inherited from interface org.eclipse.emf.ecore.EStructuralFeature.Internal.DynamicValueHolder

      `NIL`

    - ### Fields inherited from interface org.eclipse.emf.ecore.InternalEObject

      `EOPPOSITE_FEATURE_BASE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `CDOObjectImpl()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `InternalCDOClassInfo` | `cdoClassInfo()` |
    `boolean` | `cdoConflict()` | Returns `true` if this object contains local changes that are conflicting with recognized remote changes, `false` otherwise.
    `CDOResource` | `cdoDirectResource()` | Returns the directly containing `resource` of this object, or `null` if this object is not an element of the `contents` list of any CDO resource.
    `CDOObjectHistory` | `cdoHistory()` |
    `CDOID` | `cdoID()` | Returns the technical object identifier of this object, or `null` if the `state` of this object is `TRANSIENT` or `INVALID`.
    `org.eclipse.emf.ecore.EStructuralFeature` | `cdoInternalDynamicFeature​(int dynamicFeatureID)` | Deprecated.
    `org.eclipse.emf.ecore.InternalEObject` | `cdoInternalInstance()` |
    `void` | `cdoInternalPostAttach()` |
    `void` | `cdoInternalPostDetach​(boolean remote)` | Deprecated.
    `void` | `cdoInternalPostDetach​(boolean remote, boolean top)` | It is really important for accessing the data to go through `cdoStore()`.
    `void` | `cdoInternalPostInvalidate()` |
    `void` | `cdoInternalPostLoad()` |
    `void` | `cdoInternalPostRollback()` |
    `void` | `cdoInternalPreAttach()` |
    `void` | `cdoInternalPreCommit()` |
    `void` | `cdoInternalPreLoad()` |
    `void` | `cdoInternalSetID​(CDOID id)` |
    `void` | `cdoInternalSetResource​(CDOResource resource)` |
    `void` | `cdoInternalSetRevision​(CDORevision revision)` |
    `CDOState` | `cdoInternalSetState​(CDOState state)` |
    `void` | `cdoInternalSetView​(CDOView view)` |
    `boolean` | `cdoInvalid()` | Returns `true` if this object is considered as locally invalid (TODO Simon: please briefly explain what this state means) , `false` otherwise.
    `CDOLockState` | `cdoLockState()` | Returns the `lock state` of this object, or `null` if this object is `transient`.
    `CDOPermission` | `cdoPermission()` | Returns the permission of the current `session`'s user for this object.
    `void` | `cdoPrefetch​(int depth)` | Ensures that the revisions of the contained objects up to the given depth are in the local `revision cache`.
    `CDOLock` | `cdoReadLock()` | Returns the read lock associated with this object.
    `void` | `cdoReload()` | Deprecated.
    `CDOResource` | `cdoResource()` | Returns the `resource` of this object, no matter where this object is located in the containment tree of that resource, or `null` if this object is not contained in a CDO resource.
    `InternalCDORevision` | `cdoRevision()` | Returns the `revision` of this object, or `null` if this object does currently not have a revision.
    `InternalCDORevision` | `cdoRevision​(boolean loadOnDemand)` | Returns the `revision` of this object, or `null` if this object does currently not have a revision and loadOnDemand is `false`.
    `CDOState` | `cdoState()` | Returns the local `state` of this object.
    `InternalCDOView` | `cdoView()` | Returns the `view` this object is associated with, or `null` if this object is not associated with a view.
    `CDOLock` | `cdoWriteLock()` | Returns the write lock associated with this object.
    `CDOLock` | `cdoWriteOption()` | Returns the write option associated with this object.
    `protected org.eclipse.emf.ecore.util.FeatureMap` | `createFeatureMap​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature)` | Deprecated. As of 4.5 `feature maps` are no longer supported.
    `protected org.eclipse.emf.common.util.EList<?>` | `createList​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature)` |
    `static CDOLock` | `createLock​(InternalCDOObject object, org.eclipse.net4j.util.concurrent.IRWLockManager.LockType type)` |
    `protected org.eclipse.emf.internal.cdo.CDOObjectImpl.CDOStoreEcoreEMap` | `createMap​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature)` |
    `protected org.eclipse.emf.internal.cdo.CDOObjectImpl.CDOStoreEList` | `createOrderedList​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature)` |
    `protected org.eclipse.emf.internal.cdo.CDOObjectImpl.CDOStoreUnorderedEList<java.lang.Object>` | `createUnorderedList​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature)` |
    `java.lang.Object` | `dynamicGet​(int dynamicFeatureID)` |
    `void` | `dynamicSet​(int dynamicFeatureID, java.lang.Object value)` |
    `void` | `dynamicUnset​(int dynamicFeatureID)` |
    `protected void` | `eAdapterAdded​(org.eclipse.emf.common.notify.Adapter adapter)` | This method must not be private because the MinimalEStoreEObjectImpl in CDO's ecore.minimal (retrofitting) fragment introduces it as a protected method and calls it.
    `protected void` | `eAdapterRemoved​(org.eclipse.emf.common.notify.Adapter adapter)` | This method must not be private because the MinimalEStoreEObjectImpl in CDO's ecore.minimal (retrofitting) fragment introduces it as a protected method and calls it.
    `protected org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EObservableAdapterList.Listener[]` | `eBasicAdapterListeners()` | This method is not called by the MinimalEStoreEObjectImpl in CDO's ecore.minimal (retrofitting) fragment but it is called by the normal MinimalEObjectImpl as of EMF 2.9.
    `protected void` | `eBasicSetAdapterListeners​(org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EObservableAdapterList.Listener[] eAdapterListeners)` | This method is not called by the MinimalEStoreEObjectImpl in CDO's ecore.minimal (retrofitting) fragment but it is called by the normal MinimalEObjectImpl as of EMF 2.9.
    `protected void` | `eBasicSetContainer​(org.eclipse.emf.ecore.InternalEObject newEContainer, int newContainerFeatureID)` |
    `org.eclipse.emf.common.notify.NotificationChain` | `eBasicSetContainer​(org.eclipse.emf.ecore.InternalEObject newContainer, int newContainerFeatureID, org.eclipse.emf.common.notify.NotificationChain msgs)` | Code taken from `BasicEObjectImpl.eBasicSetContainer(org.eclipse.emf.ecore.InternalEObject, int)` and modified to detect whether the object is moved in the same context.
    `protected void` | `eBasicSetSettings​(java.lang.Object[] settings)` |
    `protected java.lang.Object[]` | `eBasicSettings()` |
    `org.eclipse.emf.ecore.EClass` | `eClass()` |
    `protected org.eclipse.emf.common.notify.Adapter[]` | `eContainerAdapterArray()` |
    `int` | `eContainerFeatureID()` |
    `org.eclipse.emf.ecore.resource.Resource.Internal` | `eDirectResource()` |
    `protected org.eclipse.emf.ecore.EClass` | `eDynamicClass()` |
    `protected org.eclipse.emf.ecore.EStructuralFeature` | `eDynamicFeature​(int dynamicFeatureID)` |
    `protected int` | `eDynamicFeatureID​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature)` |
    `protected boolean` | `eDynamicIsSet​(int dynamicFeatureID, org.eclipse.emf.ecore.EStructuralFeature eFeature)` |
    `protected boolean` | `eHasSettings()` |
    `org.eclipse.emf.ecore.InternalEObject` | `eInternalContainer()` |
    `org.eclipse.emf.ecore.resource.Resource.Internal` | `eInternalResource()` |
    `protected boolean` | `eIsCaching()` | Don't cache non-transient features in this CDOObject's `eSettings()`.
    `protected boolean` | `emfToString()` |
    `boolean` | `equals​(java.lang.Object obj)` | Specializing the behavior of `equals(Object)` is not permitted as per `EObject` specification.
    `void` | `eSetClass​(org.eclipse.emf.ecore.EClass eClass)` |
    `protected void` | `eSetDirectResource​(org.eclipse.emf.ecore.resource.Resource.Internal resource)` |

    `org.eclipse.emf.common.notify.NotificationChain`

    `eSetResource​(org.eclipse.emf.ecore.resource.Resource.Internal resource, org.eclipse.emf.common.notify.NotificationChain notifications)`

    Code taken from `BasicEObjectImpl.eSetResource(org.eclipse.emf.ecore.resource.Resource.Internal, org.eclipse.emf.common.notify.NotificationChain)` and modified to detect when objects are moved in the same context.

    `protected org.eclipse.emf.ecore.EStructuralFeature.Internal.DynamicValueHolder` | `eSettings()` |
    `org.eclipse.emf.ecore.InternalEObject.EStore` | `eStore()` |
    `static CDOLockState` | `getLockState​(InternalCDOObject object)` |
    `int` | `hashCode()` | Specializing the behavior of `hashCode()` is not permitted as per `EObject` specification.
    `static void` | `instanceToRevisionFeature​(InternalCDOView view, InternalCDOObject object, org.eclipse.emf.ecore.EStructuralFeature feature, java.lang.Object setting)` |
    `static void` | `revisionToInstanceFeature​(InternalCDOObject instance, InternalCDORevision revision, org.eclipse.emf.ecore.EStructuralFeature eFeature)` |
    `java.lang.String` | `toString()` |

    - ### Methods inherited from class org.eclipse.emf.ecore.impl.MinimalEStoreEObjectImpl

      `eBasicContainerFeatureID, eBasicInternalContainer, eDerivedStructuralFeatureID, eStaticFeatureCount`

    - ### Methods inherited from class org.eclipse.emf.ecore.impl.MinimalEObjectImpl

      `eAdapters, eBasicAdapterArray, eBasicAdapters, eBasicHasAdapters, eBasicProperties, eBasicSetAdapterArray, eBasicSetContainer, eBasicSetContainerFeatureID, eContents, eCrossReferences, eDeliver, eIsProxy, eProperties, eProxyURI, eSetDeliver, eSetProxyURI`

    - ### Methods inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl

      `eAddVirtualValue, eAllContents, eBaseStructuralFeatureID, eBasicRemoveFromContainer, eBasicRemoveFromContainerFeature, eComputeVirtualValuesCapacity, eContainer, eContainingFeature, eContainmentFeature, eContainmentFeature, eContains, eDerivedOperationID, eDerivedOperationID, eDerivedStructuralFeatureID, eDynamicBasicRemoveFromContainer, eDynamicGet, eDynamicGet, eDynamicGet, eDynamicInverseAdd, eDynamicInverseAdd, eDynamicInverseRemove, eDynamicInverseRemove, eDynamicInvoke, eDynamicInvoke, eDynamicIsSet, eDynamicIsSet, eDynamicSet, eDynamicSet, eDynamicSet, eDynamicUnset, eDynamicUnset, eDynamicUnset, eGet, eGet, eGet, eGet, eInverseAdd, eInverseAdd, eInverseRemove, eInverseRemove, eInvocationDelegate, eInvoke, eInvoke, eIsSet, eIsSet, eObjectForURIFragmentSegment, eOpenGet, eOpenIsSet, eOpenSet, eOpenUnset, eRemoveVirtualValue, eResolveProxy, eResource, eSet, eSet, eSetStore, eSetting, eSettingDelegate, eSetVirtualIndexBits, eSetVirtualValue, eSetVirtualValues, eStaticClass, eStaticOperationCount, eUnset, eUnset, eURIFragmentSegment, eVirtualBitCount, eVirtualGet, eVirtualGet, eVirtualIndex, eVirtualIndexBits, eVirtualIsSet, eVirtualSet, eVirtualUnset, eVirtualValue, eVirtualValues`

    - ### Methods inherited from class org.eclipse.emf.common.notify.impl.BasicNotifierImpl

      `eNotificationRequired, eNotify`

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

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

    - ### Methods inherited from interface org.eclipse.emf.ecore.EObject

      `eAllContents, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eInvoke, eIsProxy, eIsSet, eResource, eSet, eUnset`

    - ### Methods inherited from interface org.eclipse.emf.ecore.InternalEObject

      `eBaseStructuralFeatureID, eBasicRemoveFromContainer, eDerivedOperationID, eDerivedStructuralFeatureID, eGet, eGet, eInverseAdd, eInverseRemove, eInvoke, eIsSet, eNotificationRequired, eObjectForURIFragmentSegment, eProxyURI, eResolveProxy, eSet, eSetProxyURI, eSetStore, eSetting, eUnset, eURIFragmentSegment`

    - ### Methods inherited from interface org.eclipse.emf.common.notify.Notifier

      `eAdapters, eDeliver, eNotify, eSetDeliver`

- - ### Constructor Detail

    - #### CDOObjectImpl

          public CDOObjectImpl()

  - ### Method Detail

    - #### cdoClassInfo

          public final InternalCDOClassInfo cdoClassInfo()

      Specified by:
        `cdoClassInfo` in interface `InternalCDOObject`
      Since:
        4.2

    - #### cdoState

          public final CDOState cdoState()

      Description copied from interface: `CDOObject`
      Returns the local `state` of this object.
      Specified by:
        `cdoState` in interface `CDOObject`

    - #### cdoView

          public final InternalCDOView cdoView()

      Description copied from interface: `CDOObject`
      Returns the `view` this object is associated with, or `null` if this object is not associated with a view. This view manages all aspects of this object and cahces it as long as required.
      Specified by:
        `cdoView` in interface `CDOObject`
      Specified by:
        `cdoView` in interface `InternalCDOObject`
      Since:
        2.0

    - #### cdoID

          public final CDOID cdoID()

      Description copied from interface: `CDOObject`
      Returns the technical object identifier of this object, or `null` if the `state` of this object is `TRANSIENT` or `INVALID`.

      If the state of this object is `NEW` the returned CDOID instance can be cast to `CDOIDTemp` and is unique in the scope of the associated `transaction`. In all other states a non-`null` return value uniquely identifies a persistent object in the scope of the whole repository.

      Specified by:
        `cdoID` in interface `CDOObject`
      Specified by:
        `cdoID` in interface `CDOWithID`
      See Also:
        `CDOObject.cdoState()`

    - #### cdoRevision

          public final InternalCDORevision cdoRevision()

      Description copied from interface: `CDOObject`
      Returns the `revision` of this object, or `null` if this object does currently not have a revision. The revision is used to store all modeled data of this object, together with some technical data required by the framework.
      Specified by:
        `cdoRevision` in interface `CDOObject`
      Specified by:
        `cdoRevision` in interface `InternalCDOObject`
      Since:
        2.0

    - #### cdoRevision

          public final InternalCDORevision cdoRevision​(boolean loadOnDemand)

      Description copied from interface: `CDOObject`
      Returns the `revision` of this object, or `null` if this object does currently not have a revision and loadOnDemand is `false`. The revision is used to store all modeled data of this object, together with some technical data required by the framework.
      Specified by:
        `cdoRevision` in interface `CDOObject`
      Specified by:
        `cdoRevision` in interface `InternalCDOObject`
      Since:
        4.3

    - #### cdoPermission

          public final CDOPermission cdoPermission()

      Description copied from interface: `CDOObject`
      Returns the permission of the current `session`'s user for this object.
      Specified by:
        `cdoPermission` in interface `CDOObject`
      Since:
        4.3

    - #### cdoResource

          public final CDOResource cdoResource()

      Description copied from interface: `CDOObject`
      Returns the `resource` of this object, no matter where this object is located in the containment tree of that resource, or `null` if this object is not contained in a CDO resource.

      This method may not return `null` return for objects that have no `direct resource`. Please note that, depending on the containment depth of this object, the evaluation of the resource can be a costly operation.

      Specified by:
        `cdoResource` in interface `CDOObject`
      See Also:
        `CDOObject.cdoDirectResource()`

    - #### cdoDirectResource

          public final CDOResource cdoDirectResource()

      Description copied from interface: `CDOObject`
      Returns the directly containing `resource` of this object, or `null` if this object is not an element of the `contents` list of any CDO resource.

      Please note that, independend of the containment depth of this object, the evaluation of the direct resource is an operation with a constant cost.

      Specified by:
        `cdoDirectResource` in interface `CDOObject`
      Since:
        2.0

    - #### cdoPrefetch

          public final void cdoPrefetch​(int depth)

      Description copied from interface: `CDOObject`
      Ensures that the revisions of the contained objects up to the given depth are in the local `revision cache`. Subsequent access to the respective contained objects will not lead to server round-trips after calling this method.
      Specified by:
        `cdoPrefetch` in interface `CDOObject`
      Parameters:
        `depth` - `CDORevision.DEPTH_NONE`, `CDORevision.DEPTH_INFINITE` or any other positive integer number.
      Since:
        3.0

    - #### cdoReload

          @Deprecated
          public final void cdoReload()

      Deprecated.
      Specified by:
        `cdoReload` in interface `CDOObject`

    - #### cdoHistory

          public final CDOObjectHistory cdoHistory()

      Specified by:
        `cdoHistory` in interface `CDOObject`
      Since:
        4.2

    - #### cdoConflict

          public final boolean cdoConflict()

      Description copied from interface: `CDOObject`
      Returns `true` if this object contains local changes that are conflicting with recognized remote changes, `false` otherwise.

      This method is a convenience method to determine whether the `state` of this object is either `CONFLICT` or `INVALID_CONFLICT`.

      Specified by:
        `cdoConflict` in interface `CDOObject`
      Since:
        2.0

    - #### cdoInvalid

          public final boolean cdoInvalid()

      Description copied from interface: `CDOObject`
      Returns `true` if this object is considered as locally invalid (TODO Simon: please briefly explain what this state means) , `false` otherwise.

      This method is a convenience method to determine whether the `state` of this object is either `INVALID` or `INVALID_CONFLICT`.

      Specified by:
        `cdoInvalid` in interface `CDOObject`
      Since:
        2.0

    - #### cdoReadLock

          public final CDOLock cdoReadLock()

      Description copied from interface: `CDOObject`
      Returns the read lock associated with this object.
      Specified by:
        `cdoReadLock` in interface `CDOObject`
      Returns:
        Never `null`.
      Since:
        2.0

    - #### cdoWriteLock

          public final CDOLock cdoWriteLock()

      Description copied from interface: `CDOObject`
      Returns the write lock associated with this object.
      Specified by:
        `cdoWriteLock` in interface `CDOObject`
      Returns:
        Never `null`.
      Since:
        2.0

    - #### cdoWriteOption

          public final CDOLock cdoWriteOption()

      Description copied from interface: `CDOObject`
      Returns the write option associated with this object.

      A write option is a lock that

      - is exclusive; i.e. can only be held by one view
      - prevents other views from obtaining a write lock on the same object
      - does not prevent other views from obtaining a read lock on the same object

      It thus allows a view to ensure that it is the only that who will be able to obtain a write lock in the future, without preventing read locks to be obtained by others at this moment.

      Specified by:
        `cdoWriteOption` in interface `CDOObject`
      Since:
        4.1

    - #### cdoLockState

          public final CDOLockState cdoLockState()

      Description copied from interface: `CDOObject`
      Returns the `lock state` of this object, or `null` if this object is `transient`.
      Specified by:
        `cdoLockState` in interface `CDOObject`
      Since:
        4.1

    - #### cdoInternalSetState

          public final CDOState cdoInternalSetState​(CDOState state)

      Specified by:
        `cdoInternalSetState` in interface `InternalCDOObject`

    - #### cdoInternalSetView

          public final void cdoInternalSetView​(CDOView view)

      Specified by:
        `cdoInternalSetView` in interface `InternalCDOObject`
      Since:
        2.0

    - #### cdoInternalSetID

          public final void cdoInternalSetID​(CDOID id)

      Specified by:
        `cdoInternalSetID` in interface `InternalCDOObject`

    - #### cdoInternalSetRevision

          public final void cdoInternalSetRevision​(CDORevision revision)

      Specified by:
        `cdoInternalSetRevision` in interface `InternalCDOObject`
      Since:
        2.0

    - #### cdoInternalSetResource

          public final void cdoInternalSetResource​(CDOResource resource)

    - #### cdoInternalPreLoad

          public void cdoInternalPreLoad()

      Specified by:
        `cdoInternalPreLoad` in interface `InternalCDOLoadable`
      Since:
        2.0

    - #### cdoInternalPostLoad

          public final void cdoInternalPostLoad()

      Specified by:
        `cdoInternalPostLoad` in interface `InternalCDOLoadable`

    - #### cdoInternalPostInvalidate

          public final void cdoInternalPostInvalidate()

      Specified by:
        `cdoInternalPostInvalidate` in interface `InternalCDOObject`
      Since:
        2.0

    - #### cdoInternalPreAttach

          public void cdoInternalPreAttach()

      Specified by:
        `cdoInternalPreAttach` in interface `InternalCDOObject`
      Since:
        4.7

    - #### cdoInternalPostAttach

          public final void cdoInternalPostAttach()

      Specified by:
        `cdoInternalPostAttach` in interface `InternalCDOObject`

    - #### cdoInternalPostDetach

          public void cdoInternalPostDetach​(boolean remote,
                                            boolean top)

      It is really important for accessing the data to go through `cdoStore()`. `eStore()` will redirect you to the transient data.
      Specified by:
        `cdoInternalPostDetach` in interface `InternalCDOObject`
      Since:
        2.0

    - #### cdoInternalPostRollback

          public final void cdoInternalPostRollback()

      Specified by:
        `cdoInternalPostRollback` in interface `InternalCDOObject`
      Since:
        3.0

    - #### cdoInternalPreCommit

          public final void cdoInternalPreCommit()

      Specified by:
        `cdoInternalPreCommit` in interface `InternalCDOObject`

    - #### cdoInternalInstance

          public final org.eclipse.emf.ecore.InternalEObject cdoInternalInstance()

      Specified by:
        `cdoInternalInstance` in interface `InternalCDOObject`

    - #### cdoInternalDynamicFeature

          @Deprecated
          public final org.eclipse.emf.ecore.EStructuralFeature cdoInternalDynamicFeature​(int dynamicFeatureID)

      Deprecated.
      Specified by:
        `cdoInternalDynamicFeature` in interface `InternalCDOObject`

    - #### cdoInternalPostDetach

          @Deprecated
          public void cdoInternalPostDetach​(boolean remote)

      Deprecated.
      Specified by:
        `cdoInternalPostDetach` in interface `InternalCDOObject`

    - #### eStore

          public final org.eclipse.emf.ecore.InternalEObject.EStore eStore()

      Specified by:
        `eStore` in interface `org.eclipse.emf.ecore.InternalEObject`
      Specified by:
        `eStore` in class `org.eclipse.emf.ecore.impl.MinimalEStoreEObjectImpl`
      Since:
        2.0

    - #### eDynamicClass

          protected final org.eclipse.emf.ecore.EClass eDynamicClass()

      Overrides:
        `eDynamicClass` in class `org.eclipse.emf.ecore.impl.MinimalEObjectImpl`

    - #### eClass

          public final org.eclipse.emf.ecore.EClass eClass()

      Specified by:
        `eClass` in interface `org.eclipse.emf.ecore.EObject`
      Overrides:
        `eClass` in class `org.eclipse.emf.ecore.impl.MinimalEObjectImpl`

    - #### eSetClass

          public void eSetClass​(org.eclipse.emf.ecore.EClass eClass)

      Specified by:
        `eSetClass` in interface `org.eclipse.emf.ecore.InternalEObject`
      Overrides:
        `eSetClass` in class `org.eclipse.emf.ecore.impl.MinimalEObjectImpl`

    - #### eDirectResource

          public org.eclipse.emf.ecore.resource.Resource.Internal eDirectResource()

      Specified by:
        `eDirectResource` in interface `org.eclipse.emf.ecore.InternalEObject`
      Overrides:
        `eDirectResource` in class `org.eclipse.emf.ecore.impl.MinimalEObjectImpl`
      Since:
        2.0

    - #### eInternalResource

          public final org.eclipse.emf.ecore.resource.Resource.Internal eInternalResource()

      Specified by:
        `eInternalResource` in interface `org.eclipse.emf.ecore.InternalEObject`
      Overrides:
        `eInternalResource` in class `org.eclipse.emf.ecore.impl.BasicEObjectImpl`

    - #### dynamicGet

          public final java.lang.Object dynamicGet​(int dynamicFeatureID)

      Specified by:
        `dynamicGet` in interface `org.eclipse.emf.ecore.EStructuralFeature.Internal.DynamicValueHolder`
      Overrides:
        `dynamicGet` in class `org.eclipse.emf.ecore.impl.MinimalEStoreEObjectImpl`

    - #### dynamicSet

          public final void dynamicSet​(int dynamicFeatureID,
                                       java.lang.Object value)

      Specified by:
        `dynamicSet` in interface `org.eclipse.emf.ecore.EStructuralFeature.Internal.DynamicValueHolder`
      Overrides:
        `dynamicSet` in class `org.eclipse.emf.ecore.impl.MinimalEStoreEObjectImpl`

    - #### dynamicUnset

          public final void dynamicUnset​(int dynamicFeatureID)

      Specified by:
        `dynamicUnset` in interface `org.eclipse.emf.ecore.EStructuralFeature.Internal.DynamicValueHolder`
      Overrides:
        `dynamicUnset` in class `org.eclipse.emf.ecore.impl.MinimalEStoreEObjectImpl`

    - #### eDynamicIsSet

          protected final boolean eDynamicIsSet​(int dynamicFeatureID,
                                                org.eclipse.emf.ecore.EStructuralFeature eFeature)

      Overrides:
        `eDynamicIsSet` in class `org.eclipse.emf.ecore.impl.MinimalEStoreEObjectImpl`
      Since:
        2.0

    - #### eInternalContainer

          public final org.eclipse.emf.ecore.InternalEObject eInternalContainer()

      Specified by:
        `eInternalContainer` in interface `org.eclipse.emf.ecore.InternalEObject`
      Overrides:
        `eInternalContainer` in class `org.eclipse.emf.ecore.impl.MinimalEStoreEObjectImpl`

    - #### eContainerFeatureID

          public final int eContainerFeatureID()

      Specified by:
        `eContainerFeatureID` in interface `org.eclipse.emf.ecore.InternalEObject`
      Overrides:
        `eContainerFeatureID` in class `org.eclipse.emf.ecore.impl.MinimalEStoreEObjectImpl`

    - #### eBasicSetContainer

          public org.eclipse.emf.common.notify.NotificationChain eBasicSetContainer​(org.eclipse.emf.ecore.InternalEObject newContainer,
                                                                                    int newContainerFeatureID,
                                                                                    org.eclipse.emf.common.notify.NotificationChain msgs)

      Code taken from `BasicEObjectImpl.eBasicSetContainer(org.eclipse.emf.ecore.InternalEObject, int)` and modified to detect whether the object is moved in the same context. (E.g.: An object is moved from resA to resB. resA and resB belongs to the same CDORepositoryInfo. Without this special handling, a detach and newObject will be generated for the object moved)
      Specified by:
        `eBasicSetContainer` in interface `org.eclipse.emf.ecore.InternalEObject`
      Overrides:
        `eBasicSetContainer` in class `org.eclipse.emf.ecore.impl.BasicEObjectImpl`
      Since:
        2.0

    - #### eSetResource

          public final org.eclipse.emf.common.notify.NotificationChain eSetResource​(org.eclipse.emf.ecore.resource.Resource.Internal resource,
                                                                                    org.eclipse.emf.common.notify.NotificationChain notifications)

      Code taken from `BasicEObjectImpl.eSetResource(org.eclipse.emf.ecore.resource.Resource.Internal, org.eclipse.emf.common.notify.NotificationChain)` and modified to detect when objects are moved in the same context.
      Specified by:
        `eSetResource` in interface `org.eclipse.emf.ecore.InternalEObject`
      Overrides:
        `eSetResource` in class `org.eclipse.emf.ecore.impl.BasicEObjectImpl`
      Since:
        2.0

    - #### eSetDirectResource

          protected void eSetDirectResource​(org.eclipse.emf.ecore.resource.Resource.Internal resource)

      Overrides:
        `eSetDirectResource` in class `org.eclipse.emf.ecore.impl.MinimalEObjectImpl`

    - #### eBasicSetContainer

          protected final void eBasicSetContainer​(org.eclipse.emf.ecore.InternalEObject newEContainer,
                                                  int newContainerFeatureID)

      Overrides:
        `eBasicSetContainer` in class `org.eclipse.emf.ecore.impl.MinimalEObjectImpl`

    - #### eDynamicFeatureID

          protected final int eDynamicFeatureID​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature)

      Overrides:
        `eDynamicFeatureID` in class `org.eclipse.emf.ecore.impl.BasicEObjectImpl`

    - #### eDynamicFeature

          protected final org.eclipse.emf.ecore.EStructuralFeature eDynamicFeature​(int dynamicFeatureID)

      Overrides:
        `eDynamicFeature` in class `org.eclipse.emf.ecore.impl.BasicEObjectImpl`

    - #### eSettings

          protected final org.eclipse.emf.ecore.EStructuralFeature.Internal.DynamicValueHolder eSettings()

      Overrides:
        `eSettings` in class `org.eclipse.emf.ecore.impl.MinimalEObjectImpl`

    - #### eHasSettings

          protected final boolean eHasSettings()

      Overrides:
        `eHasSettings` in class `org.eclipse.emf.ecore.impl.MinimalEObjectImpl`

    - #### eBasicSettings

          protected final java.lang.Object[] eBasicSettings()

      Overrides:
        `eBasicSettings` in class `org.eclipse.emf.ecore.impl.MinimalEObjectImpl`

    - #### eBasicSetSettings

          protected final void eBasicSetSettings​(java.lang.Object[] settings)

      Overrides:
        `eBasicSetSettings` in class `org.eclipse.emf.ecore.impl.MinimalEObjectImpl`

    - #### eIsCaching

          protected final boolean eIsCaching()

      Don't cache non-transient features in this CDOObject's `eSettings()`.
      Overrides:
        `eIsCaching` in class `org.eclipse.emf.ecore.impl.MinimalEStoreEObjectImpl`

    - #### eContainerAdapterArray

          protected final org.eclipse.emf.common.notify.Adapter[] eContainerAdapterArray()

      Overrides:
        `eContainerAdapterArray` in class `org.eclipse.emf.ecore.impl.BasicEObjectImpl`

    - #### eBasicAdapterListeners

          protected final org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EObservableAdapterList.Listener[] eBasicAdapterListeners()

      This method is not called by the MinimalEStoreEObjectImpl in CDO's ecore.minimal (retrofitting) fragment but it is called by the normal MinimalEObjectImpl as of EMF 2.9.
      Overrides:
        `eBasicAdapterListeners` in class `org.eclipse.emf.ecore.impl.MinimalEObjectImpl`
      Since:
        4.2

    - #### eBasicSetAdapterListeners

          protected final void eBasicSetAdapterListeners​(org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EObservableAdapterList.Listener[] eAdapterListeners)

      This method is not called by the MinimalEStoreEObjectImpl in CDO's ecore.minimal (retrofitting) fragment but it is called by the normal MinimalEObjectImpl as of EMF 2.9.
      Overrides:
        `eBasicSetAdapterListeners` in class `org.eclipse.emf.ecore.impl.MinimalEObjectImpl`
      Since:
        4.2

    - #### eAdapterAdded

          protected final void eAdapterAdded​(org.eclipse.emf.common.notify.Adapter adapter)

      This method must not be private because the MinimalEStoreEObjectImpl in CDO's ecore.minimal (retrofitting) fragment introduces it as a protected method and calls it.
      Since:
        4.2

    - #### eAdapterRemoved

          protected final void eAdapterRemoved​(org.eclipse.emf.common.notify.Adapter adapter)

      This method must not be private because the MinimalEStoreEObjectImpl in CDO's ecore.minimal (retrofitting) fragment introduces it as a protected method and calls it.
      Since:
        4.2

    - #### hashCode

          public final int hashCode()

      Specializing the behavior of `hashCode()` is not permitted as per `EObject` specification.
      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### equals

          public final boolean equals​(java.lang.Object obj)

      Specializing the behavior of `equals(Object)` is not permitted as per `EObject` specification.
      Overrides:
        `equals` in class `java.lang.Object`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `org.eclipse.emf.ecore.impl.BasicEObjectImpl`

    - #### emfToString

          protected boolean emfToString()

      Since:
        4.12

    - #### createFeatureMap

          @Deprecated
          protected final org.eclipse.emf.ecore.util.FeatureMap createFeatureMap​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature)

      Deprecated.
      As of 4.5 `feature maps` are no longer supported.
      Overrides:
        `createFeatureMap` in class `org.eclipse.emf.ecore.impl.MinimalEStoreEObjectImpl`

    - #### createList

          protected org.eclipse.emf.common.util.EList<?> createList​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature)

      Overrides:
        `createList` in class `org.eclipse.emf.ecore.impl.MinimalEStoreEObjectImpl`

    - #### createOrderedList

          protected final org.eclipse.emf.internal.cdo.CDOObjectImpl.CDOStoreEList createOrderedList​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature)

      Since:
        4.8

    - #### createUnorderedList

          protected final org.eclipse.emf.internal.cdo.CDOObjectImpl.CDOStoreUnorderedEList<java.lang.Object> createUnorderedList​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature)

      Since:
        4.1

    - #### createMap

          protected final org.eclipse.emf.internal.cdo.CDOObjectImpl.CDOStoreEcoreEMap createMap​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature)

      Since:
        4.1

    - #### instanceToRevisionFeature

          public static void instanceToRevisionFeature​(InternalCDOView view,
                                                       InternalCDOObject object,
                                                       org.eclipse.emf.ecore.EStructuralFeature feature,
                                                       java.lang.Object setting)

      Since:
        3.0

    - #### revisionToInstanceFeature

          public static void revisionToInstanceFeature​(InternalCDOObject instance,
                                                       InternalCDORevision revision,
                                                       org.eclipse.emf.ecore.EStructuralFeature eFeature)

      Since:
        2.0

    - #### createLock

          public static CDOLock createLock​(InternalCDOObject object,
                                           org.eclipse.net4j.util.concurrent.IRWLockManager.LockType type)

      Since:
        4.1

    - #### getLockState

          public static CDOLockState getLockState​(InternalCDOObject object)

      Since:
        4.1