gnu.xml

Class NodeTree

Implemented Interfaces:
Consumable, Consumer, PositionConsumer, XConsumer

public class NodeTree
extends TreeList

Use to represent a Document or Document Fragment, in the XML DOM sense. More compact than traditional DOM, since it uses many fewer objects.

Field Summary

Fields inherited from class gnu.lists.TreeList

BEGIN_ATTRIBUTE_LONG, BEGIN_ATTRIBUTE_LONG_SIZE, BEGIN_DOCUMENT, BEGIN_ELEMENT_LONG, BEGIN_ELEMENT_SHORT, BEGIN_ELEMENT_SHORT_INDEX_MAX, BEGIN_ENTITY, BEGIN_ENTITY_SIZE, DOCUMENT_URI, END_ATTRIBUTE_SIZE, END_DOCUMENT, END_ELEMENT_LONG, END_ELEMENT_SHORT, END_ENTITY, INT_FOLLOWS, MAX_CHAR_SHORT, POSITION_PAIR_FOLLOWS, PROCESSING_INSTRUCTION, attrStart, data, docStart, gapEnd, gapStart, objects, oindex

Method Summary

int
ancestorAttribute(int ipos, String namespace, String name)
Look for matching attribute in ancestor or self.
Path
baseUriOfPos(int pos, boolean resolveRelative)
Return of the base-uri property, if known, of the node at pos.
int
getAttribute(int parent, String namespaceURI, String localName)
Find named attribute.
int
getAttributeI(int parent, String namespaceURI, String localName)
Find named attribute.
int
getId()
Get/create a new unique number.
SeqPosition
getIteratorAtPos(int ipos)
int
lookupID(String name)
Look for an element with matching ID.
static NodeTree
make()
void
makeIDtableIfNeeded()
int
nextPos(int position)
Return the next position following the argument.
int
posFirstChild(int ipos)
boolean
posHasAttributes(int ipos)
boolean
posIsDefaultNamespace(int ipos, String namespaceURI)
String
posLocalName(int ipos)
String
posLookupNamespaceURI(int ipos, String prefix)
String
posLookupPrefix(int ipos, String namespaceURI)
String
posNamespaceURI(int ipos)
String
posPrefix(int ipos)
String
posTarget(int ipos)
Get the target of a process-instruction.
int
stableCompare(AbstractSequence other)
This is used for the XML concept of "document order".
String
toString()
Object
typedValue(int ipos)
Return the type-value of the node at the specified position.

Methods inherited from class gnu.lists.TreeList

append, append, append, beginEntity, clear, compare, consume, consume, consumeIRange, consumeNext, consumePosRange, createPos, createRelativePos, documentUriOfPos, dump, dump, dump, endAttribute, endDocument, endElement, endEntity, ensureSpace, find, firstAttributePos, firstChildPos, get, getAttributeCount, getIndexDifference, getIntN, getLongN, getNextKind, getNextKindI, getNextTypeName, getNextTypeObject, getPosNext, getPosNextInt, getPosPrevious, gotoAttributesStart, gotoAttributesStart, gotoChildrenStart, hasNext, hashCode, ignoring, isEmpty, nextDataIndex, nextMatching, nextNodeIndex, nextPos, parentOrEntityI, parentOrEntityPos, parentPos, posToDataIndex, resizeObjects, setAttributeName, setElementName, setIntN, size, startAttribute, startAttribute, startDocument, startElement, startElement, statistics, statistics, stringValue, stringValue, stringValue, toString, write, write, write, write, writeBoolean, writeByte, writeCDATA, writeComment, writeComment, writeDocumentUri, writeDouble, writeFloat, writeInt, writeJoiner, writeLong, writeObject, writePosition, writeProcessingInstruction, writeProcessingInstruction

Methods inherited from class gnu.lists.AbstractSequence

add, add, addAll, addAll, addPos, clear, compare, compare, compare, consume, consumeNext, consumePosRange, contains, containsAll, copyPos, createPos, createRelativePos, elements, endPos, equals, equals, fill, fill, fillPosRange, firstAttributePos, firstChildPos, firstChildPos, fromEndIndex, get, get, getAttribute, getAttributeLength, getContainingSequenceSize, getEffectiveIndex, getIndexDifference, getIterator, getIterator, getIteratorAtPos, getLowBound, getNextKind, getNextTypeName, getNextTypeObject, getPosNext, getPosPrevious, getSize, gotoAttributesStart, gotoChildrenStart, gotoParent, hasNext, hasPrevious, hashCode, indexOf, isAfterPos, isEmpty, iterator, lastIndexOf, listIterator, listIterator, nextIndex, nextIndex, nextMatching, nextPos, parentPos, previousPos, rank, releasePos, remove, remove, removeAll, removePos, removePosRange, retainAll, set, set, setPosNext, setPosPrevious, size, stableCompare, startPos, subList, subSequence, subSequencePos, toArray, toArray, toString, toString, unsupported, unsupportedException

Method Details

ancestorAttribute

public int ancestorAttribute(int ipos,
                             String namespace,
                             String name)
Look for matching attribute in ancestor or self.
Parameters:
namespace - namespaceURI (interned) of required attribute
name - localName(interned) of required attribute
Returns:
attribute ipos or 0

baseUriOfPos

public Path baseUriOfPos(int pos,
                         boolean resolveRelative)
Return of the base-uri property, if known, of the node at pos.

getAttribute

public int getAttribute(int parent,
                        String namespaceURI,
                        String localName)
Find named attribute.
Parameters:
namespaceURI - need not be interned, or null which matches any namespace
localName - need not be interned, or null which matches any local name
Returns:
attribute ipos or 0

getAttributeI

public int getAttributeI(int parent,
                         String namespaceURI,
                         String localName)
Find named attribute.
Parameters:
namespaceURI - an interned String or null which matches any namespace
localName - an interned String, or null which matches any local name
Returns:
attribute ipos or 0

getId

public int getId()
Get/create a new unique number.

getIteratorAtPos

public SeqPosition getIteratorAtPos(int ipos)
Overrides:
getIteratorAtPos in interface AbstractSequence

lookupID

public int lookupID(String name)
Look for an element with matching ID. Returns an element ipos, or -1 if not found. Since we don't do any validation, for now only attributes with the name xml:id are recognized has having the is-id property. Assumes makeIDtableIfNeeded has been called at soem point.

make

public static NodeTree make()

makeIDtableIfNeeded

public void makeIDtableIfNeeded()

nextPos

public int nextPos(int position)
Return the next position following the argument. The new position has the isAfter property. The argument is implicitly released (as in releasePos). Returns 0 if we are already at end of file.
Overrides:
nextPos in interface TreeList

posFirstChild

public int posFirstChild(int ipos)

posHasAttributes

public boolean posHasAttributes(int ipos)

posIsDefaultNamespace

public boolean posIsDefaultNamespace(int ipos,
                                     String namespaceURI)

posLocalName

public String posLocalName(int ipos)

posLookupNamespaceURI

public String posLookupNamespaceURI(int ipos,
                                    String prefix)

posLookupPrefix

public String posLookupPrefix(int ipos,
                              String namespaceURI)

posNamespaceURI

public String posNamespaceURI(int ipos)

posPrefix

public String posPrefix(int ipos)

posTarget

public String posTarget(int ipos)
Get the target of a process-instruction.

stableCompare

public int stableCompare(AbstractSequence other)
This is used for the XML concept of "document order".
Overrides:
stableCompare in interface AbstractSequence

toString

public String toString()
Overrides:
toString in interface AbstractSequence

typedValue

public Object typedValue(int ipos)
Return the type-value of the node at the specified position.