org.apache.jackrabbit.core.version
Class VersionImpl

java.lang.Object
  extended by org.apache.jackrabbit.core.ItemImpl
      extended by org.apache.jackrabbit.core.NodeImpl
          extended by org.apache.jackrabbit.core.version.VersionImpl
All Implemented Interfaces:
Item, Node, Version

public class VersionImpl
extends NodeImpl
implements Version

Base implementation of the Version interface.


Field Summary
 
Fields inherited from class org.apache.jackrabbit.core.NodeImpl
CREATED
 
Fields inherited from class org.apache.jackrabbit.core.ItemImpl
id, itemMgr, rep, session, stateMgr, STATUS_DESTROYED, STATUS_INVALIDATED, STATUS_MODIFIED, STATUS_NORMAL
 
Constructor Summary
VersionImpl(ItemManager itemMgr, SessionImpl session, AbstractNodeData data)
          Create a new instance of this class.
 
Method Summary
 VersionHistory getContainingHistory()
          
 Calendar getCreated()
          
 Node getFrozenNode()
          Returns the frozen node of this version.
 InternalFrozenNode getInternalFrozenNode()
          Returns the frozen node of this version
protected  InternalVersion getInternalVersion()
          Returns the internal version.
 Version getLinearPredecessor()
          Assuming that this Version object was acquired through a Workspace W and is within the VersionHistory H, this method returns the predecessor of this version along the same line of descent as is returned by H.getAllLinearVersions() where H was also acquired through W.
 Version getLinearSuccessor()
          Assuming that this Version object was acquired through a Workspace W and is within the VersionHistory H, this method returns the successor of this version along the same line of descent as is returned by H.getAllLinearVersions() where H was also acquired through W.
 Version[] getPredecessors()
          
 Version[] getSuccessors()
          
 boolean isMoreRecent(VersionImpl v)
          Checks if this version is more recent than the given version v.
 boolean isRootVersion()
          Checks if this is the root version.
 boolean isSame(Item otherItem)
          
 NodeIterator merge(String srcWorkspace, boolean bestEffort)
          Always throws a ConstraintViolationException since this node is protected.
 String toString()
          Return a string representation of this version node for diagnostic purposes.
 void update(String srcWorkspaceName)
          Always throws a ConstraintViolationException since this node is protected.
 
Methods inherited from class org.apache.jackrabbit.core.NodeImpl
accept, addMixin, addMixin, addNode, addNode, addNode, addNodeWithUuid, addNodeWithUuid, canAddMixin, cancelMerge, checkin, checkin, checkLock, checkout, checkSetProperty, clone, computeSystemGeneratedPropertyValues, createChildNode, createChildProperty, doneMerge, followLifecycleTransition, getAllowedLifecycleTransistions, getApplicableChildNodeDefinition, getApplicablePropertyDefinition, getBaseVersion, getCorrespondingNodePath, getDefinition, getEffectiveNodeType, getIdentifier, getIndex, getLock, getMixinNodeTypes, getMixinTypeNames, getName, getNode, getNode, getNode, getNodeId, getNodes, getNodes, getOrCreateProperty, getOrCreateProperty, getOrCreateTransientItemState, getParent, getPrimaryItem, getPrimaryNodeType, getPrimaryPath, getProperties, getProperties, getProperty, getProperty, getQName, getReferences, getReferences, getSharedSet, getUUID, getVersionHistory, getWeakReferences, getWeakReferences, hasNode, hasNode, hasNode, hasNodes, hasPendingChanges, hasProperties, hasProperty, hasProperty, holdsLock, internalAddChildNode, internalAddChildNode, internalAddNode, internalAddNode, internalCopyPropertyFrom, internalGetUUID, internalIsCheckedOut, internalRestore, internalSetProperty, internalSetProperty, internalSetProperty, isCheckedOut, isLocked, isNode, isNodeType, isNodeType, lock, makePersistent, merge, onRedefine, onRemove, orderBefore, orderBefore, removeChildNode, removeChildProperty, removeChildProperty, removeMixin, removeMixin, removeShare, removeSharedSet, renameChildNode, replaceChildNode, resolveRelativeNodePath, resolveRelativePropertyPath, restore, restore, restore, restoreByLabel, restoreTransient, setPrimaryType, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, unlock
 
Methods inherited from class org.apache.jackrabbit.core.ItemImpl
getAncestor, getDepth, getId, getPath, getSession, internalRemove, isModified, isNew, isTransactionalNew, isTransient, refresh, remove, safeGetJCRPath, sanityCheck, save, setRemoved
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface javax.jcr.Node
addMixin, addNode, addNode, canAddMixin, cancelMerge, checkin, checkout, doneMerge, getBaseVersion, getCorrespondingNodePath, getDefinition, getIndex, getLock, getMixinNodeTypes, getNode, getNodes, getNodes, getPrimaryItem, getPrimaryNodeType, getProperties, getProperties, getProperty, getReferences, getUUID, getVersionHistory, hasNode, hasNodes, hasProperties, hasProperty, holdsLock, isCheckedOut, isLocked, isNodeType, lock, orderBefore, removeMixin, restore, restore, restore, restoreByLabel, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, unlock
 
Methods inherited from interface javax.jcr.Item
accept, getAncestor, getDepth, getName, getParent, getPath, getSession, isModified, isNew, isNode, refresh, remove, save
 

Constructor Detail

VersionImpl

public VersionImpl(ItemManager itemMgr,
                   SessionImpl session,
                   AbstractNodeData data)
Create a new instance of this class.

Parameters:
itemMgr - item manager
session - session
data - node data
Method Detail

getInternalVersion

protected InternalVersion getInternalVersion()
                                      throws RepositoryException
Returns the internal version. Subclass responsibility.

Returns:
internal version
Throws:
RepositoryException - if the internal version is not available

getCreated

public Calendar getCreated()
                    throws RepositoryException

Specified by:
getCreated in interface Version
Throws:
RepositoryException

getSuccessors

public Version[] getSuccessors()
                        throws RepositoryException

Specified by:
getSuccessors in interface Version
Throws:
RepositoryException

getPredecessors

public Version[] getPredecessors()
                          throws RepositoryException

Specified by:
getPredecessors in interface Version
Throws:
RepositoryException

getLinearSuccessor

public Version getLinearSuccessor()
                           throws RepositoryException
Assuming that this Version object was acquired through a Workspace W and is within the VersionHistory H, this method returns the successor of this version along the same line of descent as is returned by H.getAllLinearVersions() where H was also acquired through W.

Note that under simple versioing the behavior of this method is equivalent to getting the unique successor (if any) of this version.

Returns:
a Version or null if no linear successor exists.
Throws:
RepositoryException - if an error occurs.
See Also:
VersionHistory.getAllLinearVersions()

getLinearPredecessor

public Version getLinearPredecessor()
                             throws RepositoryException
Assuming that this Version object was acquired through a Workspace W and is within the VersionHistory H, this method returns the predecessor of this version along the same line of descent as is returned by H.getAllLinearVersions() where H was also acquired through W.

Note that under simple versioning the behavior of this method is equivalent to getting the unique predecessor (if any) of this version.

Returns:
a Version or null if no linear predecessor exists.
Throws:
RepositoryException - if an error occurs.
See Also:
VersionHistory.getAllLinearVersions()

getContainingHistory

public VersionHistory getContainingHistory()
                                    throws RepositoryException

Specified by:
getContainingHistory in interface Version
Throws:
RepositoryException

getInternalFrozenNode

public InternalFrozenNode getInternalFrozenNode()
                                         throws RepositoryException
Returns the frozen node of this version

Returns:
the internal frozen node
Throws:
RepositoryException - if an error occurs

getFrozenNode

public Node getFrozenNode()
                   throws RepositoryException
Returns the frozen node of this version.

Returns:
a Node object
Throws:
RepositoryException - if an error occurs.

isSame

public boolean isSame(Item otherItem)

Specified by:
isSame in interface Item
Overrides:
isSame in class ItemImpl

isMoreRecent

public boolean isMoreRecent(VersionImpl v)
                     throws RepositoryException
Checks if this version is more recent than the given version v. A version is more recent if and only if it is a successor (or a successor of a successor, etc., to any degree of separation) of the compared one.

Parameters:
v - the version to check
Returns:
true if the version is more recent; false otherwise.
Throws:
RepositoryException - if a repository error occurs

isRootVersion

public boolean isRootVersion()
                      throws RepositoryException
Checks if this is the root version.

Returns:
true if this version is the root version; false otherwise.
Throws:
RepositoryException - if a repository error occurs

update

public void update(String srcWorkspaceName)
            throws ConstraintViolationException
Always throws a ConstraintViolationException since this node is protected.

Specified by:
update in interface Node
Overrides:
update in class NodeImpl
Throws:
ConstraintViolationException

merge

public NodeIterator merge(String srcWorkspace,
                          boolean bestEffort)
                   throws ConstraintViolationException
Always throws a ConstraintViolationException since this node is protected.

Specified by:
merge in interface Node
Overrides:
merge in class NodeImpl
Throws:
ConstraintViolationException

toString

public String toString()
Return a string representation of this version node for diagnostic purposes.

Overrides:
toString in class NodeImpl
Returns:
"version node /path/to/item"


Copyright © 2004-2009 The Apache Software Foundation. All Rights Reserved.