Interface HierarchyEntry
-
- All Known Subinterfaces:
NodeEntry
,PropertyEntry
- All Known Implementing Classes:
NodeEntryImpl
,PropertyEntryImpl
public interface HierarchyEntry
HierarchyEntry
...
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
calculateStatus()
Calculates the status of the underlyingItemState
: any pending changes to the underlyingItemState
are applied.void
complete(Operation transientOperation)
Clean up this entry uponOperation.undo()
orOperation.persisted()
.boolean
denotesNode()
True if thisHierarchyEntry
would resolve to aNodeState
.long
getGeneration()
The required generation of thisHierarchyEntry
.ItemState
getItemState()
If thisHierarchyEntry
has already been resolved before (seeisAvailable()
), thatItemState
is returned.Name
getName()
NodeEntry
getParent()
Returns theNodeEntry
being parent to thisHierarchyEntry
.Path
getPath()
int
getStatus()
If thisHierarchyEntry
provides an underlyingItemState
this method returns the status of that state, otherwise it returnsStatus._UNDEFINED_
.Path
getWorkspacePath()
void
invalidate(boolean recursive)
Invalidates the underlyingItemState
if available and if it is not transiently modified.boolean
isAvailable()
Returnstrue
if the referencedItemState
is available.void
reload(boolean recursive)
Reloads this hierarchy entry and the corresponding ItemState, if this entry has already been resolved.void
remove()
Removes thisHierarchyEntry
from its parent and sets the status of the underlying ItemState toStatus.REMOVED
or toStatus.STALE_DESTROYED
, respectively.void
revert()
Traverses the hierarchy and reverts all transient modifications such as adding, modifying or removing item states.void
setItemState(ItemState state)
Set the ItemState this hierarchyEntry will be resolved to.void
transientRemove()
Traverses the hierarchy and marks all available item states as transiently removed.
-
-
-
Method Detail
-
denotesNode
boolean denotesNode()
True if thisHierarchyEntry
would resolve to aNodeState
.- Returns:
-
getName
Name getName()
- Returns:
- the name of this hierarchy entry.
-
getPath
Path getPath() throws RepositoryException
- Returns:
- the path of this hierarchy entry.
- Throws:
RepositoryException
-
getWorkspacePath
Path getWorkspacePath() throws RepositoryException
- Returns:
- If this entry has not been modified this method returns the same
as
getPath()
. In case of moved items this method return the original path as it is present on the persistent layer. - Throws:
RepositoryException
-
getParent
NodeEntry getParent()
Returns theNodeEntry
being parent to thisHierarchyEntry
.- Returns:
- the parent
HierarchyEntry
-
getStatus
int getStatus()
If thisHierarchyEntry
provides an underlyingItemState
this method returns the status of that state, otherwise it returnsStatus._UNDEFINED_
.- Returns:
- Status of the ItemState or
Status._UNDEFINED_
if this entry has not been resolved yet. - See Also:
ItemState.getStatus()
-
isAvailable
boolean isAvailable()
Returnstrue
if the referencedItemState
is available. That is, the referencedItemState
has already been resolved.
Note, that the validity of the ItemState is not checked.- Returns:
true
if theItemState
is available; otherwisefalse
.- See Also:
getItemState()
-
getItemState
ItemState getItemState() throws ItemNotFoundException, RepositoryException
If thisHierarchyEntry
has already been resolved before (seeisAvailable()
), thatItemState
is returned. Note however, that the validity of the State is not asserted.
If the entry has not been resolved yet an attempt is made to resolve this entry, which may fail if there exists no accessibleItemState
or if the corresponding state has been removed in the mean time.- Returns:
- the referenced
ItemState
. - Throws:
ItemNotFoundException
- if theItemState
does not exist anymore.RepositoryException
- If an error occurs while retrieving theItemState
.
-
setItemState
void setItemState(ItemState state)
Set the ItemState this hierarchyEntry will be resolved to.- Parameters:
state
-
-
invalidate
void invalidate(boolean recursive)
Invalidates the underlyingItemState
if available and if it is not transiently modified. If therecursive
flag is true, also invalidates the child entries recursively.
Note, that in contrast toreload(boolean)
this method only sets the status of this item state toStatus.INVALIDATED
and does not actually update it with the persistent state in the repository.
-
calculateStatus
void calculateStatus()
Calculates the status of the underlyingItemState
: any pending changes to the underlyingItemState
are applied.
-
revert
void revert() throws RepositoryException
Traverses the hierarchy and reverts all transient modifications such as adding, modifying or removing item states. 'Existing' item states are reverted to their initial state and their status is reset toStatus.EXISTING
.- Throws:
RepositoryException
- if an error occurs.
-
reload
void reload(boolean recursive)
Reloads this hierarchy entry and the corresponding ItemState, if this entry has already been resolved. If 'recursive
' the complete hierarchy below this entry is reloaded as well.- Parameters:
recursive
-
-
transientRemove
void transientRemove() throws InvalidItemStateException, RepositoryException
Traverses the hierarchy and marks all available item states as transiently removed. They will change their status to eitherStatus.EXISTING_REMOVED
if the item is existing in the persistent storage orStatus.REMOVED
if the item has been transiently added before. In the latter case, the corresponding HierarchyEntries can be removed as well from their parent.- Throws:
InvalidItemStateException
- if this entry has been removed in the mean time.RepositoryException
- if an error occurs while removing any of the item states e.g. an item state is not valid anymore.
-
remove
void remove()
Removes thisHierarchyEntry
from its parent and sets the status of the underlying ItemState toStatus.REMOVED
or toStatus.STALE_DESTROYED
, respectively. If this entry is a NodeEntry all descending ItemStates must get their status changed as well.
-
complete
void complete(Operation transientOperation) throws RepositoryException
Clean up this entry uponOperation.undo()
orOperation.persisted()
.- Parameters:
transientOperation
-- Throws:
RepositoryException
-
getGeneration
long getGeneration()
The required generation of thisHierarchyEntry
. This is used by theItemInfoCache
to determine whether an item info in the cache is up to date or not. That is whether the generation of the item info in the cache is the same or more recent as the required generation of this entry.
-
-