|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.jackrabbit.core.version.VersionManagerImpl
public class VersionManagerImpl
This Class implements a VersionManager.
Nested Class Summary | |
---|---|
static class |
VersionManagerImpl.DynamicESCFactory
|
Field Summary | |
---|---|
protected NodeStateEx |
historyRoot
Persistent root node of the version histories. |
protected LocalItemStateManager |
stateMgr
State manager for the version storage. |
Constructor Summary | |
---|---|
VersionManagerImpl(PersistenceManager pMgr,
FileSystem fs,
NodeTypeRegistry ntReg,
DelegatingObservationDispatcher obsMgr,
NodeId rootId,
NodeId rootParentId,
ItemStateCacheFactory cacheFactory,
ISMLocking ismLocking)
Creates a new version manager |
Method Summary | |
---|---|
protected void |
acquireReadLock()
aquires the read lock on this version manager. |
protected void |
acquireWriteLock()
aquires the write lock on this version manager. |
protected String |
calculateCheckinVersionName(org.apache.jackrabbit.core.version.InternalVersionHistoryImpl history,
NodeImpl node)
Calculates the name of the new version that will be created by a checkin call. |
protected InternalVersion |
checkin(org.apache.jackrabbit.core.version.InternalVersionHistoryImpl history,
NodeImpl node)
Checks in a node |
Version |
checkin(NodeImpl node)
invokes the checkin() on the persistent version manager and remaps the newly created version objects. This method must not be synchronized since it could cause deadlocks with item-reading listeners in the observation thread. |
void |
close()
Close this version manager. |
protected VersionItemStateManager |
createItemStateManager(PersistenceManager pMgr,
NodeId rootId,
NodeTypeRegistry ntReg,
ItemStateCacheFactory cacheFactory,
ISMLocking ismLocking)
Creates a VersionItemStateManager or derivative. |
VersionHistory |
createVersionHistory(Session session,
NodeState node)
Creates a new version history. This method must not be synchronized since it could cause deadlocks with item-reading listeners in the observation thread. |
void |
externalUpdate(ChangeLog changes,
List events)
Handle an external update. |
VersionManagerImpl.DynamicESCFactory |
getEscFactory()
Returns the event state collection factory. |
protected InternalVersionItem |
getItem(NodeId id)
Returns the item with the given persistent id. |
protected List |
getItemReferences(InternalVersionItem item)
Returns the item references that reference the given version item. |
PersistenceManager |
getPersistenceManager()
Return the persistence manager. |
protected SharedItemStateManager |
getSharedStateMgr()
Return the shared item state manager. |
InternalVersion |
getVersion(NodeId id)
Returns the version with the given id |
InternalVersionHistory |
getVersionHistory(NodeId id)
Returns the version history with the given id |
VersionHistory |
getVersionHistory(Session session,
NodeState node)
Returns the version history of the specified node or
null if the given node doesn't (yet) have an associated
version history. |
VirtualItemStateProvider |
getVirtualItemStateProvider()
returns the virtual item state provider that exposes the internal versions as items. |
boolean |
hasItem(NodeId id)
Return a flag indicating if the item specified exists. |
boolean |
hasVersion(NodeId id)
Checks if the version with the given id exists |
boolean |
hasVersionHistory(NodeId id)
Checks if the version history with the given id exists |
protected void |
itemDiscarded(InternalVersionItem item)
Invoked by the internal version item itself, when it's underlying persistence state was discarded. |
void |
itemsUpdated(Collection items)
Invoked by some external source to indicate that some items in the versions tree were updated. |
protected void |
releaseReadLock()
releases the read lock on this version manager. |
protected void |
releaseWriteLock()
releases the write lock on this version manager. |
protected void |
removeVersion(org.apache.jackrabbit.core.version.InternalVersionHistoryImpl history,
Name name)
Removes the specified version from the history |
void |
removeVersion(VersionHistory history,
Name name)
Removes the specified version from the given version history. This method must not be synchronized since it could cause deadlocks with item-reading listeners in the observation thread. |
void |
setEventChannel(UpdateEventChannel eventChannel)
Set an event channel to inform about updates. |
protected InternalVersion |
setVersionLabel(org.apache.jackrabbit.core.version.InternalVersionHistoryImpl history,
Name version,
Name label,
boolean move)
Set version label on the specified version. |
Version |
setVersionLabel(VersionHistory history,
Name version,
Name label,
boolean move)
Sets the version label to the given version .
This method must not be synchronized since it could cause deadlocks with
item-reading listeners in the observation thread. |
void |
stateCreated(ItemState created)
Called when an ItemState has successfully
been created (i.e.
Not used. |
void |
stateDestroyed(ItemState destroyed)
Called when an ItemState has successfully been
removed (i.e.
Remove item from cache on removal. |
void |
stateDiscarded(ItemState discarded)
Called when an ItemState has been discarded (i.e.
Not used. |
void |
stateModified(ItemState modified)
Called when an ItemState has successfully
been modified (i.e.
Not used. |
protected void |
versionCreated(InternalVersion version)
Invoked when a new internal item has been created. |
protected void |
versionDestroyed(InternalVersion version)
Invoked when a new internal item has been destroyed. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected LocalItemStateManager stateMgr
protected NodeStateEx historyRoot
Constructor Detail |
---|
public VersionManagerImpl(PersistenceManager pMgr, FileSystem fs, NodeTypeRegistry ntReg, DelegatingObservationDispatcher obsMgr, NodeId rootId, NodeId rootParentId, ItemStateCacheFactory cacheFactory, ISMLocking ismLocking) throws RepositoryException
RepositoryException
Method Detail |
---|
public VirtualItemStateProvider getVirtualItemStateProvider()
getVirtualItemStateProvider
in interface VersionManager
public PersistenceManager getPersistenceManager()
public void close() throws Exception
close
in interface VersionManager
Exception
- if an error occurspublic VersionManagerImpl.DynamicESCFactory getEscFactory()
public VersionHistory createVersionHistory(Session session, NodeState node) throws RepositoryException
createVersionHistory
in interface VersionManager
RepositoryException
VersionManager.getVersionHistory(Session, NodeState)
public boolean hasItem(NodeId id)
id
- the id of the item
true
if the item exists;
false
otherwiseprotected InternalVersionItem getItem(NodeId id) throws RepositoryException
id
- the id of the item
RepositoryException
- if an error occurspublic Version checkin(NodeImpl node) throws RepositoryException
checkin
in interface VersionManager
RepositoryException
public void removeVersion(VersionHistory history, Name name) throws VersionException, RepositoryException
removeVersion
in interface VersionManager
RepositoryException
VersionException
public Version setVersionLabel(VersionHistory history, Name version, Name label, boolean move) throws RepositoryException
label
to the given version
.
If the label is already assigned to another version, a VersionException is
thrown unless move
is true
. If version
is null
, the label is removed from the respective version.
In either case, the version the label was previously assigned is returned,
or null
of the label was not moved.
This method must not be synchronized since it could cause deadlocks with
item-reading listeners in the observation thread.
setVersionLabel
in interface VersionManager
RepositoryException
public void itemsUpdated(Collection items)
items
- items updatedpublic void setEventChannel(UpdateEventChannel eventChannel)
eventChannel
- event channelprotected void itemDiscarded(InternalVersionItem item)
protected List getItemReferences(InternalVersionItem item)
item
- version item
protected SharedItemStateManager getSharedStateMgr()
protected VersionItemStateManager createItemStateManager(PersistenceManager pMgr, NodeId rootId, NodeTypeRegistry ntReg, ItemStateCacheFactory cacheFactory, ISMLocking ismLocking) throws ItemStateException
VersionItemStateManager
or derivative.
pMgr
- persistence managerrootId
- root node idntReg
- node type registrycacheFactory
- cache factoryismLocking
- the ISM locking implementation
ItemStateException
- if an error occurspublic void stateCreated(ItemState created)
ItemState
has successfully
been created (i.e. its underlying persistent state was created).
Not used.
stateCreated
in interface ItemStateListener
created
- the ItemState
that has been 'created'public void stateModified(ItemState modified)
ItemState
has successfully
been modified (i.e. its underlying persistent state has changed).
Not used.
stateModified
in interface ItemStateListener
modified
- the ItemState
that has been 'modified'public void stateDestroyed(ItemState destroyed)
ItemState
has successfully been
removed (i.e. its underlying persistent state has been destroyed).
Remove item from cache on removal.
stateDestroyed
in interface ItemStateListener
destroyed
- the ItemState
that has been 'destroyed'public void stateDiscarded(ItemState discarded)
ItemState
has been discarded (i.e. it has
been rendered 'invalid').
Not used.
stateDiscarded
in interface ItemStateListener
discarded
- the ItemState
that has been discardedItemState.discard()
public void externalUpdate(ChangeLog changes, List events) throws RepositoryException
externalUpdate
in interface UpdateEventListener
changes
- external changes containing only node and property ids.events
- events to deliver
RepositoryException
- if the update cannot be processedpublic InternalVersion getVersion(NodeId id) throws RepositoryException
getVersion
in interface VersionManager
RepositoryException
public InternalVersionHistory getVersionHistory(NodeId id) throws RepositoryException
getVersionHistory
in interface VersionManager
RepositoryException
public boolean hasVersionHistory(NodeId id)
hasVersionHistory
in interface VersionManager
true
if the version history exists.public boolean hasVersion(NodeId id)
hasVersion
in interface VersionManager
true
if the version exists.protected void acquireWriteLock()
protected void releaseWriteLock()
protected void acquireReadLock()
protected void releaseReadLock()
public VersionHistory getVersionHistory(Session session, NodeState node) throws RepositoryException
node
or
null
if the given node doesn't (yet) have an associated
version history.
getVersionHistory
in interface VersionManager
node
- node whose version history should be returned
node
or
null
if the given node doesn't (yet) have an
associated version history.
RepositoryException
- if an error occursVersionManager.createVersionHistory(Session, NodeState)
protected InternalVersion checkin(org.apache.jackrabbit.core.version.InternalVersionHistoryImpl history, NodeImpl node) throws RepositoryException
history
- the version historynode
- node to checkin
RepositoryException
- if an error occursNode.checkin()
protected String calculateCheckinVersionName(org.apache.jackrabbit.core.version.InternalVersionHistoryImpl history, NodeImpl node) throws RepositoryException
history
- the version historynode
- the node to checkin
RepositoryException
- if an error occurs.protected void removeVersion(org.apache.jackrabbit.core.version.InternalVersionHistoryImpl history, Name name) throws VersionException, RepositoryException
history
- the version history from where to remove the version.name
- the name of the version to remove.
VersionException
- if the version history
does
not have a version with name
.
RepositoryException
- if any other error occurs.protected InternalVersion setVersionLabel(org.apache.jackrabbit.core.version.InternalVersionHistoryImpl history, Name version, Name label, boolean move) throws RepositoryException
history
- version historyversion
- version namelabel
- version labelmove
- true
to move from existing version;
false
otherwise
RepositoryException
- if an error occursprotected void versionCreated(InternalVersion version)
version
- internal version itemprotected void versionDestroyed(InternalVersion version)
version
- internal version item
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |