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

## Class SyntheticCDORevision

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

- All Implemented Interfaces:
    CDOBranchPoint, CDOBranchProvider, CDOBranchVersion, CDOIdentifiable, CDOIDAndVersion, CDORevisable, CDORevision, CDORevisionData, CDORevisionKey, CDOTimeProvider, CDOVersionProvider, CDOBranchAdjustable, CDOReferenceAdjustable, InternalCDORevision
  Direct Known Subclasses:
    DetachedCDORevision, PointerCDORevision

      public abstract class SyntheticCDORevision
      extends StubCDORevision

  A synthetic revision that represents the initial period of an object in a `branch` when the object is still associated with a revision from one of the baseline branches. It always has `version` `zero` and can only appear in branches below the `main` branch.

  Synthetic revisions are used for two slightly different purposes:

  1. For `cache` optimization.
  2. As a persistent "detach marker" indicating that the first modification of an object in a branch is its deletion.

  Instances of this marker revision are not supposed to be exposed outside of a revision `manager`. They are mainly used in the communication between a revision manager and its associated revision `loader`.

  Since:
    3.0
  Author:
    Eike Stepper

- - ### Field Summary

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

      `DO_NOT_CREATE_LIST`

    - ### 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.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.CDORevisionData

      `NIL`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SyntheticCDORevision(EClass eClass, CDOID id, CDOBranch branch)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `freeze()`
    `InternalCDOBranch` | `getBranch()` Returns the branch of this branch version.
    `CDOID` | `getID()`

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

      `add, adjustBranches, adjustReferences, bypassPermissionChecks, clear, clearValues, compare, compareTo, contains, convertEObjects, copy, get, getContainerID, getContainingFeatureID, getListOrNull, getOrCreateList, getOrCreateList, getPermission, getResourceID, getResourceNodeName, getRevised, getTimeStamp, getValue, getVersion, hashCode, indexOf, isEmpty, isFrozen, isListPreserving, isUnchunked, lastIndexOf, merge, move, read, readValues, remove, set, setBranchPoint, setContainerID, setContainingFeatureID, setID, setList, setListPreserving, setPermission, setResourceID, setRevised, setUnchunked, setValue, setVersion, size, toArray, toArray, unset, write, write, writeValues`

    - ### 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`

- - ### Constructor Detail

    - #### SyntheticCDORevision

          public SyntheticCDORevision(EClass eClass,
                                      CDOID id,
                                      CDOBranch branch)

  - ### Method Detail

    - #### getID

          public CDOID getID()

      Specified by:
        `getID` in interface `CDOIdentifiable`
      Overrides:
        `getID` in class `StubCDORevision`

    - #### getBranch

          public InternalCDOBranch getBranch()

      Description copied from interface: `CDOBranchVersion`
      Returns the branch of this branch version.
      Specified by:
        `getBranch` in interface `CDOBranchPoint`
      Specified by:
        `getBranch` in interface `CDOBranchProvider`
      Specified by:
        `getBranch` in interface `CDOBranchVersion`
      Specified by:
        `getBranch` in interface `InternalCDORevision`
      Overrides:
        `getBranch` in class `StubCDORevision`

    - #### freeze

          public void freeze()

      Specified by:
        `freeze` in interface `InternalCDORevision`
      Overrides:
        `freeze` in class `StubCDORevision`

Copyright (c) 2004-2019 Eike Stepper (Loehne, Germany) and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html