@Immutable public static class ImmutableChildReferences.Segmented extends AbstractChildReferences
AbstractChildReferences.ChildReferenceWithNameIterator
ChildReferences.BasicContext, ChildReferences.Changes, ChildReferences.ChildInsertions, ChildReferences.Context, ChildReferences.NoChanges, ChildReferences.NoContext, ChildReferences.NoSnsIndexesContext, ChildReferences.SingleNameContext, ChildReferences.WithChanges
Modifier and Type | Field and Description |
---|---|
protected boolean |
allowsSNS |
protected WorkspaceCache |
cache |
protected long |
totalSize |
UNKNOWN_SIZE
Constructor and Description |
---|
Segmented(WorkspaceCache cache,
ChildReferences firstSegment,
DocumentTranslator.ChildReferencesInfo info,
boolean allowsSNS) |
Modifier and Type | Method and Description |
---|---|
boolean |
allowsSNS()
Determine if the child references instance should support SNS or not.
|
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(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.
|
boolean |
supportsGetChildReferenceByKey()
Return whether it is possible/feasible to
find a ChildReference for a child node given
only its NodeKey. |
StringBuilder |
toString(StringBuilder sb) |
contextSensitiveIterator, defaultContext, getChild, getChild, getChild, isEmpty, iterator, iterator, iterator, iterator, iterator, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
forEach, spliterator
protected final WorkspaceCache cache
protected final long totalSize
protected final boolean allowsSNS
public Segmented(WorkspaceCache cache, ChildReferences firstSegment, DocumentTranslator.ChildReferencesInfo info, boolean allowsSNS)
public long size()
ChildReferences
ChildReferences.UNKNOWN_SIZE
public boolean supportsGetChildReferenceByKey()
ChildReferences
find
a ChildReference for a child node given
only its NodeKey. Implementations that have very large numbers of children may provide an alternative way to
lookup
a child reference directly. In such cases, this method may
return false.supportsGetChildReferenceByKey
in interface ChildReferences
supportsGetChildReferenceByKey
in class AbstractChildReferences
ChildReferences.getChild(NodeKey)
and ChildReferences.getChild(NodeKey, Context)
should be used to find the
ChildReference, or false if doing so is not recommended.public int getChildCount(Name name)
ChildReferences
name
- the namepublic ChildReference getChild(Name name, int snsIndex, ChildReferences.Context context)
ChildReferences
name
- 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)
ChildReferences
key
- the node key of the childpublic ChildReference getChild(NodeKey key)
ChildReferences
key
- the node key of the childpublic ChildReference getChild(NodeKey key, ChildReferences.Context context)
ChildReferences
key
- 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(Name name, ChildReferences.Context context)
ChildReferences
iterator
in interface ChildReferences
iterator
in class AbstractChildReferences
name
- 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 contextpublic Iterator<ChildReference> iterator(ChildReferences.Context context)
AbstractChildReferences
iterator
in interface ChildReferences
iterator
in class AbstractChildReferences
context
- the context in which the child should be evaluated; may be null if there is no contextpublic Iterator<NodeKey> getAllKeys()
ChildReferences
public StringBuilder toString(StringBuilder sb)
toString
in class AbstractChildReferences
public boolean allowsSNS()
ChildReferences
true
if the child reference instance supports SNSCopyright © 2008–2016 JBoss, a division of Red Hat. All rights reserved.