org.apache.jackrabbit.jcr2spi.hierarchy
Interface ChildNodeEntries


public interface ChildNodeEntries

ChildNodeEntries represents a collection of NodeEntrys that also maintains the index values of same-name siblings on insertion and removal.


Method Summary
 void add(NodeEntry cne)
          Adds a NodeEntry to the end of the list.
 void add(NodeEntry cne, int index)
          Adds a NodeEntry.
 void add(NodeEntry entry, int index, NodeEntry beforeEntry)
          Adds a the new NodeEntry before beforeEntry.
 List<NodeEntry> get(Name nodeName)
          Returns a List of NodeEntrys for the given nodeName.
 NodeEntry get(Name nodeName, int index)
          Returns the NodeEntry with the given nodeName and index.
 NodeEntry get(Name nodeName, String uniqueID)
          Return the NodeEntry that matches the given nodeName and uniqueID or null if no matching entry can be found.
 boolean isComplete()
           
 Iterator<NodeEntry> iterator()
          Returns an unmodifiable iterator over all NodeEntry objects present in this ChildNodeEntries collection irrespective of their status.
 void reload()
          Reloads this ChildNodeEntries object.
 NodeEntry remove(NodeEntry childEntry)
          Removes the child node entry refering to the node state.
 NodeEntry reorder(NodeEntry insertEntry, NodeEntry beforeEntry)
          Reorders an existing NodeEntry before another NodeEntry.
 void reorderAfter(NodeEntry insertEntry, NodeEntry afterEntry)
          Reorders an existing NodeEntry after another NodeEntry.
 

Method Detail

isComplete

boolean isComplete()
Returns:
true if this ChildNodeEntries have been updated or completely loaded without being invalidated in the mean time.

reload

void reload()
            throws ItemNotFoundException,
                   RepositoryException
Reloads this ChildNodeEntries object.

Throws:
ItemNotFoundException
RepositoryException

iterator

Iterator<NodeEntry> iterator()
Returns an unmodifiable iterator over all NodeEntry objects present in this ChildNodeEntries collection irrespective of their status.

Returns:
Iterator over all NodeEntry object

get

List<NodeEntry> get(Name nodeName)
Returns a List of NodeEntrys for the given nodeName. This method does not filter out removed NodeEntrys.

Parameters:
nodeName - the child node name.
Returns:
same name sibling nodes with the given nodeName.

get

NodeEntry get(Name nodeName,
              int index)
Returns the NodeEntry with the given nodeName and index. Note, that this method does not filter out removed NodeEntrys.

Parameters:
nodeName - name of the child node entry.
index - the index of the child node entry.
Returns:
the NodeEntry or null if there is no such NodeEntry.

get

NodeEntry get(Name nodeName,
              String uniqueID)
Return the NodeEntry that matches the given nodeName and uniqueID or null if no matching entry can be found.

Parameters:
nodeName -
uniqueID -
Returns:
Throws:
IllegalArgumentException - if the given uniqueID is null.

add

void add(NodeEntry cne)
Adds a NodeEntry to the end of the list. Same as add(NodeEntry, int), where the index is Path.INDEX_UNDEFINED.

Parameters:
cne - the NodeEntry to add.

add

void add(NodeEntry cne,
         int index)
Adds a NodeEntry.
Note the following special cases:
  1. If an entry with the given index already exists, the the new sibling is inserted before.
  2. If the given index is bigger that the last entry in the siblings list, intermediate entries will be created.

Parameters:
cne - the NodeEntry to add.

add

void add(NodeEntry entry,
         int index,
         NodeEntry beforeEntry)
Adds a the new NodeEntry before beforeEntry.

Parameters:
entry -
index -
beforeEntry -

remove

NodeEntry remove(NodeEntry childEntry)
Removes the child node entry refering to the node state.

Parameters:
childEntry - the entry to be removed.
Returns:
the removed entry or null if there is no such entry.

reorder

NodeEntry reorder(NodeEntry insertEntry,
                  NodeEntry beforeEntry)
Reorders an existing NodeEntry before another NodeEntry. If beforeEntry is null insertEntry is moved to the end of the child node entries.

Parameters:
insertEntry - the NodeEntry to move.
beforeEntry - the NodeEntry where insertEntry is reordered to.
Returns:
the NodeEntry that followed the 'insertEntry' before the reordering.
Throws:
NoSuchElementException - if insertEntry or beforeEntry does not have a NodeEntry in this ChildNodeEntries.

reorderAfter

void reorderAfter(NodeEntry insertEntry,
                  NodeEntry afterEntry)
Reorders an existing NodeEntry after another NodeEntry. If afterEntry is null insertEntry is moved to the beginning of the child node entries.

Parameters:
insertEntry - the NodeEntry to move.
afterEntry - the NodeEntry where insertEntry is reordered behind.
Throws:
NoSuchElementException - if insertEntry or afterEntry does not have a NodeEntry in this ChildNodeEntries.


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