@ThreadSafe public class SessionChildReferences extends AbstractChildReferences
ChildReferences implementation that projects a single, changeable view of the child references of a node, allowing
child references to be added to the end of the persisted state. This view always reflects the view's changes on top of the
current persisted list of child references, even when the persisted state is changed by other sessions.
For example, consider a node A that has two children, B and C. If a SessionChildReferences instance is created for A,
then it includes ChildReference for nodes B and C. If a new child node, D, is created and appended to the list, the
MutableChildReferences object will show three children: B, C and D. Before these changes are saved, however, another client
adds to node A a new node, E, and persists those changes. At that instant, the MutableChildReferences will see four children
for node A: the persisted children B, C and E, plus the transient node D that has not yet been saved.
AbstractChildReferences.ChildReferenceWithNameIteratorChildReferences.BasicContext, ChildReferences.Changes, ChildReferences.ChildInsertions, ChildReferences.Context, ChildReferences.NoChanges, ChildReferences.NoContext, ChildReferences.NoSnsIndexesContext, ChildReferences.SingleNameContext, ChildReferences.WithChangesUNKNOWN_SIZE| Constructor and Description |
|---|
SessionChildReferences(ChildReferences persisted,
MutableChildReferences appended,
SessionNode.ChangedChildren changedChildren) |
| Modifier and Type | Method and Description |
|---|---|
protected Iterator<ChildReference> |
createIterator(ChildReferences.Context context) |
protected Iterator<ChildReference> |
createIterator(Name name,
ChildReferences.Context context) |
Iterator<NodeKey> |
getAllKeys()
Get the keys for all of the children.
|
ChildReference |
getChild(Name name,
int snsIndex,
ChildReferences.Context context)
Look for the child reference that has the given name and SNS index.
|
ChildReference |
getChild(NodeKey key)
Look for the child reference that has the node key.
|
ChildReference |
getChild(NodeKey key,
ChildReferences.Context context)
Look for the child reference that has the node key.
|
int |
getChildCount(Name name)
Return the number of nodes that have the supplied name.
|
boolean |
hasChild(NodeKey key)
Determine if this contains a reference to the specified child.
|
Iterator<ChildReference> |
iterator()
Get an iterator over all of the children.
|
Iterator<ChildReference> |
iterator(ChildReferences.Context context)
Get an iterator over all child references in this collection, but base the SNS indexes upon those already consumed.
|
Iterator<ChildReference> |
iterator(Name name,
ChildReferences.Context context)
Get an iterator over all of the children that have same name matching the supplied value.
|
long |
size()
Get the total number of child references for the node, including all subsequent blocks of ChildReferences.
|
StringBuilder |
toString(StringBuilder sb) |
contextSensitiveIterator, getChild, getChild, getChild, isEmpty, iterator, iterator, iterator, iterator, supportsGetChildReferenceByKey, toStringpublic SessionChildReferences(ChildReferences persisted, MutableChildReferences appended, SessionNode.ChangedChildren changedChildren)
public long size()
ChildReferencesChildReferences.UNKNOWN_SIZEpublic int getChildCount(Name name)
ChildReferencesname - the namepublic ChildReference getChild(Name name, int snsIndex, ChildReferences.Context context)
ChildReferencesname - the name for the nodesnsIndex - the same-name-sibling index; must be positivecontext - the context in which the child should be evaluated; may be null if there is no contextpublic boolean hasChild(NodeKey key)
ChildReferenceskey - the node key of the childpublic ChildReference getChild(NodeKey key)
ChildReferenceskey - the node key of the childpublic ChildReference getChild(NodeKey key, ChildReferences.Context context)
ChildReferenceskey - the node key of the childcontext - the context in which the child should be evaluated; may be null if there is no contextpublic Iterator<ChildReference> iterator()
ChildReferencespublic Iterator<ChildReference> iterator(Name name, ChildReferences.Context context)
ChildReferencesiterator in interface ChildReferencesiterator in class AbstractChildReferencesname - the name of the same-name-sibling nodes; may not be nullcontext - the context in which the child should be evaluated; may be null if there is no contextprotected Iterator<ChildReference> createIterator(Name name, ChildReferences.Context context)
public Iterator<ChildReference> iterator(ChildReferences.Context context)
AbstractChildReferencesiterator in interface ChildReferencesiterator in class AbstractChildReferencescontext - the context in which the child should be evaluated; may be null if there is no contextprotected Iterator<ChildReference> createIterator(ChildReferences.Context context)
public Iterator<NodeKey> getAllKeys()
ChildReferencespublic StringBuilder toString(StringBuilder sb)
toString in class AbstractChildReferencesCopyright © 2008-2014 JBoss, a division of Red Hat. All Rights Reserved.