Package org.eclipse.emf.cdo.spi.common.revision

## Class BaseCDORevision

- java.lang.Object
- - org.eclipse.emf.cdo.spi.common.revision.AbstractCDORevision
  - - org.eclipse.emf.cdo.spi.common.revision.BaseCDORevision

- All Implemented Interfaces:
    `CDOBranchPoint`, `CDOBranchProvider`, `CDOBranchVersion`, `CDOIdentifiable`, `CDOIDAndVersion`, `CDORevisable`, `CDORevision`, `CDORevisionData`, `CDORevisionKey`, `CDOTimeProvider`, `CDOVersionProvider`, `CDOBranchAdjustable`, `CDOReferenceAdjustable`, `InternalCDORevision`

      public abstract class BaseCDORevision
      extends AbstractCDORevision

  If the meaning of this type isn't clear, there really should be more of a description here...
  Since:
    3.0
  Author:
    Eike Stepper
  No Extend
    This class is not intended to be subclassed by clients.

- - ### 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.common.branch.CDOBranchVersion

      `UNSPECIFIED_VERSION`

    - ### Fields inherited from interface org.eclipse.emf.cdo.common.revision.CDORevision

      `DEPTH_INFINITE, DEPTH_NONE, FIRST_VERSION, MAIN_BRANCH_ID, PERMISSION_PROVIDER, UNCHUNKED`

    - ### Fields inherited from interface org.eclipse.emf.cdo.common.revision.CDORevisionData

      `NIL`

    - ### Fields inherited from interface org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision

      `DO_NOT_CREATE_LIST`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `BaseCDORevision​(BaseCDORevision source)` |
    `` | `BaseCDORevision​(EClass eClass)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `add​(EStructuralFeature feature, int index, java.lang.Object value)` |
    `void` | `adjustBranches​(CDOBranchManager newBranchManager)` |
    `boolean` | `adjustReferences​(CDOReferenceAdjuster referenceAdjuster)` |
    `boolean` | `bypassPermissionChecks​(boolean on)` | Enables or disables permission checking for this revision.
    `static void` | `checkNoFeatureMap​(EStructuralFeature feature)` | Deprecated. As of 4.5 `feature maps` are no longer supported.
    `void` | `clear​(EStructuralFeature feature)` |
    `EStructuralFeature[]` | `clearValues()` |
    `InternalCDORevisionDelta` | `compare​(CDORevision origin)` |
    `boolean` | `contains​(EStructuralFeature feature, java.lang.Object value)` |
    `void` | `convertEObjects​(CDOIDProvider idProvider)` |
    `protected abstract java.lang.Object` | `doGetValue​(int featureIndex)` |
    `protected abstract void` | `doSetValue​(int featureIndex, java.lang.Object value)` |
    `static java.lang.String` | `formatFlags​(BaseCDORevision revision)` |
    `void` | `freeze()` |
    `java.lang.Object` | `get​(EStructuralFeature feature, int index)` |
    `InternalCDOBranch` | `getBranch()` | Returns the branch of this branch version.
    `java.lang.Object` | `getContainerID()` |
    `int` | `getContainingFeatureID()` | Provides the input to the calculation of the feature in the container revision that actually holds this revision.
    `CDOID` | `getID()` |
    `CDOList` | `getListOrNull​(EStructuralFeature feature)` |
    `CDOList` | `getOrCreateList​(EStructuralFeature feature)` | Same as `getOrCreateList(feature, 0)`.
    `CDOList` | `getOrCreateList​(EStructuralFeature feature, int size)` | Returns the list that represents the passed feature, possibly creates it if needed.
    `CDOPermission` | `getPermission()` |
    `CDOID` | `getResourceID()` |
    `java.lang.String` | `getResourceNodeName()` |
    `long` | `getRevised()` |
    `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.
    `protected java.lang.Object` | `getValue​(int featureIndex)` |
    `java.lang.Object` | `getValue​(EStructuralFeature feature)` | Should never return `CDORevisionData.NIL`
    `int` | `getVersion()` | Returns the version number of this branch version.
    `int` | `hashCode​(EStructuralFeature feature)` |
    `int` | `indexOf​(EStructuralFeature feature, java.lang.Object value)` |
    `protected abstract void` | `initValues​(EStructuralFeature[] allPersistentFeatures)` |
    `boolean` | `isEmpty​(EStructuralFeature feature)` |
    `boolean` | `isFrozen()` |
    `boolean` | `isListPreserving()` |
    `boolean` | `isUnchunked()` |
    `int` | `lastIndexOf​(EStructuralFeature feature, java.lang.Object value)` |
    `void` | `merge​(CDORevisionDelta delta)` |
    `java.lang.Object` | `move​(EStructuralFeature feature, int targetIndex, int sourceIndex)` |
    `void` | `read​(CDODataInput in)` |
    `protected void` | `readSystemValues​(CDODataInput in)` |
    `boolean` | `readValues​(CDODataInput in)` |
    `static java.lang.Object` | `remapID​(java.lang.Object value, java.util.Map<CDOID,​CDOID> idMappings, boolean allowUnmappedTempIDs)` |
    `java.lang.Object` | `remove​(EStructuralFeature feature, int index)` |
    `java.lang.Object` | `set​(EStructuralFeature feature, int index, java.lang.Object value)` |
    `void` | `setBranchPoint​(CDOBranchPoint branchPoint)` |
    `void` | `setContainerID​(java.lang.Object containerID)` |
    `void` | `setContainingFeatureID​(int containingFeatureID)` |
    `void` | `setID​(CDOID id)` |
    `void` | `setList​(EStructuralFeature feature, InternalCDOList list)` |
    `void` | `setListPreserving()` | The default behavior of a revision for calls to the `InternalCDORevision.clear(EStructuralFeature)` and `InternalCDORevision.unset(EStructuralFeature)` methods is to set the feature's value to null (discarding the value itself, a List).
    `void` | `setPermission​(CDOPermission permission)` |
    `void` | `setResourceID​(CDOID resourceID)` |
    `void` | `setRevised​(long revised)` |
    `void` | `setUnchunked()` |
    `protected void` | `setValue​(int featureIndex, java.lang.Object value)` |
    `java.lang.Object` | `setValue​(EStructuralFeature feature, java.lang.Object value)` |
    `void` | `setVersion​(int version)` |
    `int` | `size​(EStructuralFeature feature)` |
    `java.lang.Object[]` | `toArray​(EStructuralFeature feature)` |
    `<T> T[]` | `toArray​(EStructuralFeature feature, T[] array)` |
    `void` | `unfreeze()` |
    `void` | `unset​(EStructuralFeature feature)` |
    `void` | `write​(CDODataOutput out, int referenceChunk)` |
    `void` | `write​(CDODataOutput out, int referenceChunk, CDOBranchPoint securityContext)` |
    `protected void` | `writeSystemValues​(CDODataOutput out)` |
    `void` | `writeValues​(CDODataOutput out, int referenceChunk)` |

    - ### Methods inherited from class org.eclipse.emf.cdo.spi.common.revision.AbstractCDORevision

      `accept, accept, accept, adjustForCommit, data, equals, getAllPersistentFeatures, getClassInfo, getEClass, getFeatureIndex, getList, getList, getProperRevision, getRevisionForID, hashCode, initClassInfo, isHistorical, isReadable, isResource, isResourceFolder, isResourceNode, isValid, isValid, isWritable, revision, toString`

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

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

    - ### Methods inherited from interface org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision

      `copy`

- - ### Constructor Detail

    - #### BaseCDORevision

          public BaseCDORevision​(EClass eClass)

      Since:
        3.0

    - #### BaseCDORevision

          protected BaseCDORevision​(BaseCDORevision source)

  - ### Method Detail

    - #### read

          public void read​(CDODataInput in)
                    throws java.io.IOException

      Throws:
        `java.io.IOException`
      Since:
        3.0

    - #### readSystemValues

          protected void readSystemValues​(CDODataInput in)
                                   throws java.io.IOException

      Throws:
        `java.io.IOException`
      Since:
        4.0

    - #### readValues

          public boolean readValues​(CDODataInput in)
                             throws java.io.IOException

      Throws:
        `java.io.IOException`
      Since:
        4.3

    - #### write

          public void write​(CDODataOutput out,
                            int referenceChunk)
                     throws java.io.IOException

      Throws:
        `java.io.IOException`
      Since:
        4.0

    - #### write

          public void write​(CDODataOutput out,
                            int referenceChunk,
                            CDOBranchPoint securityContext)
                     throws java.io.IOException

      Throws:
        `java.io.IOException`
      Since:
        4.1

    - #### writeSystemValues

          protected void writeSystemValues​(CDODataOutput out)
                                    throws java.io.IOException

      Throws:
        `java.io.IOException`
      Since:
        4.0

    - #### writeValues

          public void writeValues​(CDODataOutput out,
                                  int referenceChunk)
                           throws java.io.IOException

      Throws:
        `java.io.IOException`
      Since:
        4.3

    - #### convertEObjects

          public void convertEObjects​(CDOIDProvider idProvider)

      Since:
        3.0
      See Also:
        `write(CDODataOutput, int)`

    - #### getID

          public CDOID getID()

    - #### setID

          public void setID​(CDOID id)

    - #### getBranch

          public InternalCDOBranch getBranch()

      Description copied from interface: `CDOBranchVersion`
      Returns the branch of this branch version.
      Since:
        4.2

    - #### 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.
      Since:
        3.0

    - #### setBranchPoint

          public void setBranchPoint​(CDOBranchPoint branchPoint)

      Since:
        3.0

    - #### getVersion

          public int getVersion()

      Description copied from interface: `CDOBranchVersion`
      Returns the version number of this branch version.

    - #### setVersion

          public void setVersion​(int version)

    - #### getRevised

          public long getRevised()

    - #### setRevised

          public void setRevised​(long revised)

    - #### compare

          public InternalCDORevisionDelta compare​(CDORevision origin)

    - #### merge

          public void merge​(CDORevisionDelta delta)

    - #### getResourceID

          public CDOID getResourceID()

    - #### setResourceID

          public void setResourceID​(CDOID resourceID)

    - #### getContainerID

          public java.lang.Object getContainerID()

    - #### setContainerID

          public void setContainerID​(java.lang.Object containerID)

    - #### getContainingFeatureID

          public int getContainingFeatureID()

      Description copied from interface: `CDORevisionData`
      Provides the input to the calculation of the feature in the container revision that actually holds this revision.

      Usage Example:

           CDORevision revision = ...;
           CDORevision container = Util.getRevision(revision.data().getContainerID());

           int containingFeatureID = revision.data().getContainingFeatureID();

           EStructuralFeature feature = containingFeatureID <= InternalEObject.EOPPOSITE_FEATURE_BASE ?
               container.getEClass().getEStructuralFeature(InternalEObject.EOPPOSITE_FEATURE_BASE - containingFeatureID) :
               ((EReference)revision.getEClass().getEStructuralFeature(containingFeatureID)).getEOpposite();

      See Also:
        `BasicEObjectImpl.eContainingFeature()`, `CDORevisionData.getContainerID()`

    - #### setContainingFeatureID

          public void setContainingFeatureID​(int containingFeatureID)

    - #### hashCode

          public int hashCode​(EStructuralFeature feature)

    - #### get

          public java.lang.Object get​(EStructuralFeature feature,
                                      int index)

    - #### contains

          public boolean contains​(EStructuralFeature feature,
                                  java.lang.Object value)

    - #### indexOf

          public int indexOf​(EStructuralFeature feature,
                             java.lang.Object value)

    - #### lastIndexOf

          public int lastIndexOf​(EStructuralFeature feature,
                                 java.lang.Object value)

    - #### isEmpty

          public boolean isEmpty​(EStructuralFeature feature)

    - #### size

          public int size​(EStructuralFeature feature)

    - #### toArray

          public java.lang.Object[] toArray​(EStructuralFeature feature)

    - #### toArray

          public <T> T[] toArray​(EStructuralFeature feature,
                                 T[] array)

    - #### add

          public void add​(EStructuralFeature feature,
                          int index,
                          java.lang.Object value)

    - #### clear

          public void clear​(EStructuralFeature feature)

    - #### move

          public java.lang.Object move​(EStructuralFeature feature,
                                       int targetIndex,
                                       int sourceIndex)

    - #### remove

          public java.lang.Object remove​(EStructuralFeature feature,
                                         int index)

    - #### set

          public java.lang.Object set​(EStructuralFeature feature,
                                      int index,
                                      java.lang.Object value)

    - #### unset

          public void unset​(EStructuralFeature feature)

    - #### adjustReferences

          public boolean adjustReferences​(CDOReferenceAdjuster referenceAdjuster)

      Since:
        4.0

    - #### adjustBranches

          public void adjustBranches​(CDOBranchManager newBranchManager)

      Since:
        4.3

    - #### getValue

          public java.lang.Object getValue​(EStructuralFeature feature)

      Description copied from interface: `InternalCDORevision`
      Should never return `CDORevisionData.NIL`

    - #### setValue

          public java.lang.Object setValue​(EStructuralFeature feature,
                                           java.lang.Object value)

    - #### getListOrNull

          public CDOList getListOrNull​(EStructuralFeature feature)

      Since:
        4.7

    - #### getOrCreateList

          public CDOList getOrCreateList​(EStructuralFeature feature)

      Description copied from interface: `InternalCDORevision`
      Same as `getOrCreateList(feature, 0)`.

      Warning: Must be used with caution because list creation for an `unsettable` feature implies a transition from UNSET to SET!

    - #### getOrCreateList

          public CDOList getOrCreateList​(EStructuralFeature feature,
                                         int size)

      Description copied from interface: `InternalCDORevision`
      Returns the list that represents the passed feature, possibly creates it if needed.

      Warning: Must be used with caution because list creation for an `unsettable` feature implies a transition from UNSET to SET!

        `size` - the initialCapacity of a new list to be created if this revision has no list so far (its size will always be 0), or -1 to skip list creation and return `null` in this case.
      See Also:
        `InternalCDORevision.DO_NOT_CREATE_LIST`

    - #### setList

          public void setList​(EStructuralFeature feature,
                              InternalCDOList list)

    - #### clearValues

          public EStructuralFeature[] clearValues()

      Since:
        4.2

    - #### getResourceNodeName

          public java.lang.String getResourceNodeName()

      Since:
        4.3

    - #### getPermission

          public CDOPermission getPermission()

      Since:
        4.1

    - #### setPermission

          public void setPermission​(CDOPermission permission)

      Since:
        4.1

    - #### bypassPermissionChecks

          public boolean bypassPermissionChecks​(boolean on)

      Description copied from interface: `InternalCDORevision`
      Enables or disables permission checking for this revision.

      This method is used on the client side if the framework changes the revision on another user's behalf, e.g., during invalidation or general revision copying. It's safe to offer this method on the client side because the server is always the permission checking authority (during load or commit).

      Since:
        4.3

    - #### isListPreserving

          public boolean isListPreserving()

      Since:
        4.3

    - #### setListPreserving

          public void setListPreserving()

      Description copied from interface: `InternalCDORevision`
      The default behavior of a revision for calls to the `InternalCDORevision.clear(EStructuralFeature)` and `InternalCDORevision.unset(EStructuralFeature)` methods is to set the feature's value to null (discarding the value itself, a List). By calling this `InternalCDORevision.setListPreserving()` method the default behavior is changed; instead of setting the feature's value to null, the `List.clear()` method is called on the feature's list instance.
      Since:
        4.3

    - #### freeze

          public void freeze()

      Since:
        4.1

    - #### unfreeze

          public void unfreeze()

      Since:
        4.11

    - #### isFrozen

          public boolean isFrozen()

      Since:
        4.2

    - #### isUnchunked

          public boolean isUnchunked()

      Since:
        4.1

    - #### setUnchunked

          public void setUnchunked()

      Since:
        4.1

    - #### getValue

          protected java.lang.Object getValue​(int featureIndex)

    - #### setValue

          protected void setValue​(int featureIndex,
                                  java.lang.Object value)

    - #### initValues

          protected abstract void initValues​(EStructuralFeature[] allPersistentFeatures)

    - #### doGetValue

          protected abstract java.lang.Object doGetValue​(int featureIndex)

      Since:
        4.1

    - #### doSetValue

          protected abstract void doSetValue​(int featureIndex,
                                             java.lang.Object value)

      Since:
        4.1

    - #### checkNoFeatureMap

          @Deprecated
          public static void checkNoFeatureMap​(EStructuralFeature feature)

      Deprecated.
      As of 4.5 `feature maps` are no longer supported.

    - #### remapID

          public static java.lang.Object remapID​(java.lang.Object value,
                                                 java.util.Map<CDOID,​CDOID> idMappings,
                                                 boolean allowUnmappedTempIDs)

    - #### formatFlags

          public static java.lang.String formatFlags​(BaseCDORevision revision)

      Since:
        4.3