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, JackrabbitNode

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, sessionContext, stateMgr, STATUS_DESTROYED, STATUS_INVALIDATED, STATUS_MODIFIED, STATUS_NORMAL
 
Fields inherited from interface javax.jcr.Node
JCR_CHILD_NODE_DEFINITION, JCR_CONTENT, JCR_FROZEN_NODE, JCR_PROPERTY_DEFINITION, JCR_ROOT_VERSION, JCR_VERSION_LABELS
 
Constructor Summary
VersionImpl(ItemManager itemMgr, SessionContext sessionContext, AbstractNodeData data)
          Create a new instance of this class.
 
Method Summary
 VersionHistory getContainingHistory()
          
 Calendar getCreated()
          
 Node getFrozenNode()
          
 InternalFrozenNode getInternalFrozenNode()
          Returns the frozen node of this version
protected  InternalVersion getInternalVersion()
          Returns the internal version.
 Version getLinearPredecessor()
          
 Version getLinearSuccessor()
          
 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, assignLifecyclePolicy, canAddMixin, cancelMerge, checkin, checkin, checkLock, checkout, checkSetProperty, clone, createChildNode, createChildProperty, doneMerge, followLifecycleTransition, getAllowedLifecycleTransistions, getApplicableChildNodeDefinition, getApplicablePropertyDefinition, getBaseVersion, getCorrespondingNodePath, getDefinition, getEffectiveNodeType, getIdentifier, getIndex, getLock, getMixinNodeTypes, getMixinTypeNames, getName, getNode, getNode, getNode, getNodeId, getNodes, getNodes, getNodes, getOrCreateProperty, getOrCreateProperty, getOrCreateTransientItemState, getParent, getParentId, getPrimaryItem, getPrimaryNodeType, getPrimaryPath, getProperties, getProperties, getProperties, getProperty, getProperty, getQName, getReferences, getReferences, getSharedSet, getUUID, getVersionHistory, getWeakReferences, getWeakReferences, hasNode, hasNode, hasNode, hasNodes, hasPendingChanges, hasProperties, hasProperty, hasProperty, holdsLock, internalSetProperty, internalSetProperty, internalSetProperty, isCheckedOut, isLocked, isNode, isNodeType, isNodeType, lock, makePersistent, onRedefine, onRemove, orderBefore, orderBefore, removeChildNode, removeChildProperty, removeMixin, removeMixin, removeShare, removeSharedSet, rename, renameChildNode, renameChildNode, replaceChildNode, resolveRelativeNodePath, resolveRelativePropertyPath, restore, restore, restore, restoreByLabel, restoreTransient, setMixins, 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, getQName, getSession, getType, getValueFactory, getValues, isModified, isNew, isTransactionalNew, isTransient, itemSanityCheck, perform, 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, followLifecycleTransition, getAllowedLifecycleTransistions, getBaseVersion, getCorrespondingNodePath, getDefinition, getIdentifier, getIndex, getLock, getMixinNodeTypes, getNode, getNodes, getNodes, getNodes, getPrimaryItem, getPrimaryNodeType, getProperties, getProperties, getProperties, getProperty, getReferences, getReferences, getSharedSet, getUUID, getVersionHistory, getWeakReferences, getWeakReferences, hasNode, hasNodes, hasProperties, hasProperty, holdsLock, isCheckedOut, isLocked, isNodeType, lock, orderBefore, removeMixin, removeShare, removeSharedSet, restore, restore, restore, restoreByLabel, setPrimaryType, setProperty, setProperty, 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,
                   SessionContext sessionContext,
                   AbstractNodeData data)
Create a new instance of this class.

Parameters:
itemMgr - item manager
sessionContext - component context of the associated 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

Specified by:
getLinearSuccessor in interface Version
Throws:
RepositoryException

getLinearPredecessor

public Version getLinearPredecessor()
                             throws RepositoryException

Specified by:
getLinearPredecessor in interface Version
Throws:
RepositoryException

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

Specified by:
getFrozenNode in interface Version
Throws:
RepositoryException

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-2010 The Apache Software Foundation. All Rights Reserved.