|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
A VersionHistory
object wraps an nt:versionHistory
node. It provides convenient access to version history information.
Method Summary | |
void |
addVersionLabel(java.lang.String versionName,
java.lang.String label,
boolean moveLabel)
Adds the specified label to the specified version. |
VersionIterator |
getAllVersions()
Returns an iterator over all the versions within this version history The order of the returned objects will not necessarily correspond to the order of versions in terms of the successor relation. |
Version |
getRootVersion()
Returns the root version of this version history. |
Version |
getVersion(java.lang.String versionName)
Retrieves a particular version from this version history by version name. |
java.lang.String |
getVersionableUUID()
Returns the UUID of the versionable node for which this is the version history. |
Version |
getVersionByLabel(java.lang.String label)
Retrieves a particular version from this version history by version label. |
java.lang.String[] |
getVersionLabels()
Returns all version labels of the history or an empty array if there are none. |
java.lang.String[] |
getVersionLabels(Version version)
Returns all version labels of the given version - empty array if none. |
boolean |
hasVersionLabel(java.lang.String label)
Returns true if any version in the history has the given label . |
boolean |
hasVersionLabel(Version version,
java.lang.String label)
Returns true if the given version has the given label . |
void |
removeVersion(java.lang.String versionName)
Removes the named version from this version history and automatically repairs the version graph. |
void |
removeVersionLabel(java.lang.String label)
Removes the specified label from among the labels of this version history. |
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, merge, orderBefore, removeMixin, restore, restore, restore, restoreByLabel, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, unlock, update |
Methods inherited from interface javax.jcr.Item |
accept, getAncestor, getDepth, getName, getParent, getPath, getSession, isModified, isNew, isNode, isSame, refresh, remove, save |
Method Detail |
public java.lang.String getVersionableUUID() throws RepositoryException
RepositoryException
- if an error occurs.public Version getRootVersion() throws RepositoryException
Version
object.
RepositoryException
- if an error occurs.public VersionIterator getAllVersions() throws RepositoryException
jcr:successor REFERENCE
properties starting with the root version. A version history will always
have at least one version, the root version. Therefore, this method will
always return an iterator of at least size 1.
VersionIterator
object.
RepositoryException
- if an error occurs.public Version getVersion(java.lang.String versionName) throws VersionException, RepositoryException
VersionException
if the specified version is not in
this version history.
versionName
- a version name
Version
object.
VersionException
- if the specified version is not in this version history.
RepositoryException
- if an error occurs.public Version getVersionByLabel(java.lang.String label) throws RepositoryException
VersionException
if the specified label
is not in
this version history.
label
- a version label
Version
object.
VersionException
- if the specified label
is not in this version history.
RepositoryException
- if an error occurs.public void addVersionLabel(java.lang.String versionName, java.lang.String label, boolean moveLabel) throws VersionException, RepositoryException
jcr:versionLabels
multi-value property of the
nt:version
node that represents the specified version.
Note that this change is made immediately; there is no need to call save
.
In fact, since the the version storage is read-only with respect to normal repository
methods, save
does not even function in this context.
Within a particular version history, a given label may appear a maximum of once.
If the specified label is already assigned to a version in this history and
moveLabel
is true
then the label is removed from its
current location and added to the version with the specified versionName
.
If moveLabel
is false
, then an attempt to add a label that
already exists in this version history will throw a VersionException
.
A VersionException
is also thrown if the named version is not in this
VersionHistory
or if it is the root version (jcr:rootVersion
)
or if the label
specified is not a valid JCR NAME
.
versionName
- the name of the version to which the label is to be added.label
- the label to be added.moveLabel
- if true
, then if label
is already assigned to a version in
this version history, it is moved to the new version specified; if false
, then attempting
to assign an already used label will throw a VersionException
.
VersionException
- if an attempt is made to add an existing label to a version history
and moveLabel
is false
or if the specifed version does not exist in
this version history or if the specified version is the root version (jcr:rootVersion
).
RepositoryException
- if another error occurs.public void removeVersionLabel(java.lang.String label) throws VersionException, RepositoryException
jcr:versionLabels
child node of the nt:versionHistory
node that represents this version
history.
Note that this change is made immediately; there is no need to call save
.
In fact, since the the version storage is read-only with respect to normal repository
methods, save
does not even function in this context.
If a label is specified that does not exist in this version history,
a VersionException
is thrown.
label
- a version label
VersionException
- if the name labvel does not exist in this version history.
RepositoryException
- if another error occurs.public boolean hasVersionLabel(java.lang.String label) throws RepositoryException
true
if any version in the history has the given label
.
label
- a version label
boolean
.
RepositoryException
- if an error occurs.public boolean hasVersionLabel(Version version, java.lang.String label) throws VersionException, RepositoryException
label
.
version
- a Version objectlabel
- a version label
boolean
.
VersionException
- if the specified version
is not of this version history.
RepositoryException
- if another error occurs.public java.lang.String[] getVersionLabels() throws RepositoryException
String
array containing all the labels of the version history.
RepositoryException
- if an error occurs.public java.lang.String[] getVersionLabels(Version version) throws VersionException, RepositoryException
version
- empty array if none.
Throws a VersionException
if the specified version
is not
in this version history.
version
-
String
array containing all the labels of the given version
VersionException
- if the specified version
is not in this version history.
RepositoryException
- if another error occurs.public void removeVersion(java.lang.String versionName) throws ReferentialIntegrityException, AccessDeniedException, UnsupportedRepositoryOperationException, VersionException, RepositoryException
V
, V
's
predecessor set is P
and V
's successor set is S
, then
the version graph is repaired s follows:
P
, remove the reference to V
from its
successor list and add references to each member of S
.
S
, remove the reference to V
from its
predecessor list and add references to each member of P
.
save
.
In fact, since the the version storage is read-only with respect to normal repository
methods, save
does not even function in this context.
A ReferentialIntegrityException
will be thrown if the specified version is
currently the target of a REFERENCE
property elsewhere in the repository
(not just in this workspace) and the current Session
has read access to
that REFERENCE
property.
An AccessDeniedException
will be thrown if the current Session
does not have permission to remove the specified version or if the specified version is
currently the target of a REFERENCE
property elsewhere in the repository
(not just in this workspace) and the current Session
does not have read
access to that REFERENCE
property.
Throws an UnsupportedRepositoryOperationException
if this operation is
not supported by the implementation.
Throws a VersionException
if the named version is not in this VersionHistory
.
versionName
- the name of a version in this version history.
ReferentialIntegrityException
- if the specified version is currently the target of a
REFERENCE
property elsewhere in the repository (not necessarily in this workspace)
and the current Session
has read access to that REFERENCE
property.
AccessDeniedException
- if the current Session does not have permission to remove the
specified version or if the specified version is currently the target of a REFERENCE
property elsewhere in the repository (not just in this workspace) and the current Session
does not have read access to that REFERENCE
property.
UnsupportedRepositoryOperationException
- if this operation is not supported by the implementation.
VersionException
- if the named version is not in this version history.
RepositoryException
- if another error occurs.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |