gnu.xml
Class NodeTree

java.lang.Object
  extended by gnu.lists.AbstractSequence
      extended by gnu.lists.TreeList
          extended by gnu.xml.NodeTree
All 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
attrStart, 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, data, docStart, DOCUMENT_URI, END_ATTRIBUTE_SIZE, END_DOCUMENT, END_ELEMENT_LONG, END_ELEMENT_SHORT, END_ENTITY, gapEnd, gapStart, INT_FOLLOWS, MAX_CHAR_SHORT, objects, oindex, POSITION_PAIR_FOLLOWS, PROCESSING_INSTRUCTION
 
Constructor Summary
NodeTree()
           
 
Method Summary
 int ancestorAttribute(int ipos, java.lang.String namespace, java.lang.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, java.lang.String namespaceURI, java.lang.String localName)
          Find named attribute.
 int getAttributeI(int parent, java.lang.String namespaceURI, java.lang.String localName)
          Find named attribute.
 int getId()
          Get/create a new unique number.
 SeqPosition getIteratorAtPos(int ipos)
           
 int lookupID(java.lang.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, java.lang.String namespaceURI)
           
 java.lang.String posLocalName(int ipos)
           
 java.lang.String posLookupNamespaceURI(int ipos, java.lang.String prefix)
           
 java.lang.String posLookupPrefix(int ipos, java.lang.String namespaceURI)
           
 java.lang.String posNamespaceURI(int ipos)
           
 java.lang.String posPrefix(int ipos)
           
 java.lang.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".
 java.lang.String toString()
           
 java.lang.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, hashCode, hasNext, ignoring, isEmpty, nextDataIndex, nextMatching, nextNodeIndex, 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, writeDocumentUri, writeDouble, writeFloat, writeInt, writeJoiner, writeLong, writeObject, writePosition, writeProcessingInstruction
 
Methods inherited from class gnu.lists.AbstractSequence
add, add, addAll, addAll, addPos, compare, compare, contains, containsAll, copyPos, elements, endPos, equals, equals, fill, fill, fillPosRange, firstChildPos, fromEndIndex, get, getAttribute, getAttributeLength, getContainingSequenceSize, getEffectiveIndex, getIterator, getIterator, getLowBound, getSize, gotoChildrenStart, gotoParent, hasPrevious, indexOf, isAfterPos, iterator, lastIndexOf, listIterator, listIterator, nextIndex, nextIndex, previousPos, rank, releasePos, remove, remove, removeAll, removePos, removePosRange, retainAll, set, set, setPosNext, setPosPrevious, startPos, subList, subSequence, subSequencePos, toArray, toArray, unsupported, unsupportedException
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

NodeTree

public NodeTree()
Method Detail

nextPos

public int nextPos(int position)
Description copied from class: AbstractSequence
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 class TreeList

make

public static NodeTree make()

getId

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


stableCompare

public int stableCompare(AbstractSequence other)
Description copied from class: AbstractSequence
This is used for the XML concept of "document order".

Overrides:
stableCompare in class AbstractSequence

getIteratorAtPos

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

posNamespaceURI

public java.lang.String posNamespaceURI(int ipos)

posPrefix

public java.lang.String posPrefix(int ipos)

posLocalName

public java.lang.String posLocalName(int ipos)

posIsDefaultNamespace

public boolean posIsDefaultNamespace(int ipos,
                                     java.lang.String namespaceURI)

posLookupNamespaceURI

public java.lang.String posLookupNamespaceURI(int ipos,
                                              java.lang.String prefix)

posLookupPrefix

public java.lang.String posLookupPrefix(int ipos,
                                        java.lang.String namespaceURI)

posFirstChild

public int posFirstChild(int ipos)

posHasAttributes

public boolean posHasAttributes(int ipos)

getAttribute

public int getAttribute(int parent,
                        java.lang.String namespaceURI,
                        java.lang.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,
                         java.lang.String namespaceURI,
                         java.lang.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

typedValue

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


posTarget

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


ancestorAttribute

public int ancestorAttribute(int ipos,
                             java.lang.String namespace,
                             java.lang.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.


toString

public java.lang.String toString()
Overrides:
toString in class AbstractSequence

makeIDtableIfNeeded

public void makeIDtableIfNeeded()

lookupID

public int lookupID(java.lang.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.