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

java.lang.Object
  extended by org.eclipse.emf.cdo.spi.common.revision.AbstractCDORevision
      extended by org.eclipse.emf.cdo.spi.common.revision.StubCDORevision
          extended by org.eclipse.emf.cdo.spi.common.revision.SyntheticCDORevision
All Implemented Interfaces:
CDOBranchPoint, CDOBranchVersion, CDOIDAndVersion, CDORevisable, CDORevision, CDORevisionData, CDORevisionKey, 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

Field Summary
 
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
SyntheticCDORevision(EClass eClass, CDOID id, CDOBranch branch)
           
 
Method Summary
 void freeze()
           
 CDOBranch getBranch()
          Returns the branch of this branch point, or null if this branch point is the base of the main branch.
 CDOID getID()
           
 
Methods inherited from class org.eclipse.emf.cdo.spi.common.revision.StubCDORevision
add, adjustReferences, clear, compare, compareTo, contains, convertEObjects, copy, get, getContainerID, getContainingFeatureID, getList, getList, getPermission, getResourceID, getRevised, getTimeStamp, getValue, getVersion, hashCode, indexOf, isEmpty, isUnchunked, lastIndexOf, merge, move, read, remove, set, setBranchPoint, setContainerID, setContainingFeatureID, setID, setList, setPermission, setResourceID, setRevised, setUnchunked, setValue, setVersion, size, toArray, toArray, unset, write, write
 
Methods inherited from class org.eclipse.emf.cdo.spi.common.revision.AbstractCDORevision
adjustForCommit, data, equals, getAllPersistentFeatures, getClassInfo, getEClass, getFeatureIndex, hashCode, isHistorical, isReadable, isResource, isResourceFolder, isResourceNode, isValid, isValid, isWritable, revision, setClassInfo, 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 CDOIDAndVersion
Overrides:
getID in class StubCDORevision

getBranch

public CDOBranch getBranch()
Description copied from interface: CDOBranchPoint
Returns the branch of this branch point, or null if this branch point is the base of the main branch.

Specified by:
getBranch in interface CDOBranchPoint
Specified by:
getBranch in interface CDOBranchVersion
Overrides:
getBranch in class StubCDORevision

freeze

public void freeze()
Specified by:
freeze in interface InternalCDORevision
Overrides:
freeze in class StubCDORevision


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