net.sf.saxon.tinytree
public final class TinyTree extends Object
It can be used to represent a tree that is rooted at a document node, or one that is rooted at an element node.
Field Summary | |
---|---|
protected int[] | alpha |
protected int[] | attCode |
protected int[] | attParent |
protected int[] | attTypeCode |
protected Value[] | attTypedValue |
protected CharSequence[] | attValue |
protected int[] | beta |
protected LargeStringBuffer | charBuffer |
protected FastStringBuffer | commentBuffer |
protected short[] | depth |
protected long | documentNumber |
protected int[] | nameCode |
protected int[] | namespaceCode |
protected int[] | namespaceParent |
protected int[] | next |
byte[] | nodeKind |
protected int | numberOfAttributes |
protected int | numberOfNamespaces |
protected int | numberOfNodes |
protected int[] | prior |
protected int | rootIndexUsed |
protected int[] | typeCodeArray |
protected Value[] | typedValueArray |
protected boolean | usesNamespaces |
Constructor Summary | |
---|---|
TinyTree()
Create a TinyTree. | |
TinyTree(int nodes, int attributes, int namespaces, int characters)
Create a tree with a specified initial size |
Method Summary | |
---|---|
void | addAttribute(NodeInfo root, int parent, int nameCode, int typeCode, CharSequence attValue, int properties)
Add an attribute node to the tree |
int | addDocumentNode(TinyDocumentImpl doc)
Add a document node to the tree. |
void | addNamespace(int parent, int nscode)
Add a namespace node to the current element |
int | addNode(short kind, int depth, int alpha, int beta, int nameCode)
Add a node to the tree |
int | addTextNodeCopy(int depth, int existingNodeNr)
Create a new text node that is a copy of an existing text node |
void | appendChars(CharSequence chars)
Append character data to the current text node |
void | condense()
Condense the tree: release unused memory. |
void | diagnosticDump()
Produce diagnostic print of main tree arrays |
static void | diagnosticDump(NodeInfo node)
Create diagnostic dump of the tree containing a particular node.
|
void | ensurePriorIndex()
On demand, make an index for quick access to preceding-sibling nodes |
int[] | getAlphaArray()
Get the array holding alpha information |
AtomicValue | getAtomizedValueOfUntypedNode(int nodeNr)
Get the typed value of a node whose type is known to be untypedAtomic.
|
int | getAttributeAnnotation(int nr)
Get the type annotation of an attribute node.
|
int[] | getAttributeNameCodeArray()
Get the array used to hold the name codes of all attributes |
TinyAttributeImpl | getAttributeNode(int nr)
Make a (transient) attribute node from the array of attributes |
int[] | getAttributeParentArray()
Get the array used to hold the parent pointers of all attributes |
int[] | getAttributeTypeCodeArray()
Get the array used to hold the type codes of all attributes |
CharSequence[] | getAttributeValueArray()
Get the array used to hold the name codes of all attributes |
int[] | getBetaArray()
Get the array holding beta information |
CharSequence | getCharacterBuffer()
Get the character buffer used to hold all the text data of the document |
int | getColumnNumber(int sequence)
Get the column number for a node. |
CharSequence | getCommentBuffer()
Get the character buffer used to hold all the comment data of the document |
Configuration | getConfiguration()
Get the configuration previously set using setConfiguration |
long | getDocumentNumber()
Get the document number (actually, the tree number) |
int | getLineNumber(int sequence)
Get the line number for a node. |
int | getNameCode(int nodeNr)
Get the nameCode for a given node, which must be a document, element,
text, comment, or processing instruction node |
int[] | getNameCodeArray()
Get the array holding node name information |
NamePool | getNamePool()
Get the name pool used for the names in this document |
int[] | getNamespaceCodeArray()
Get the array used to hold the namespace codes of namespace declarations |
int[] | getNamespaceParentArray()
Get the array used to hold the parent pointers of all namespace declarations |
int[] | getNextPointerArray()
Get the array holding next-sibling pointers |
TinyNodeImpl | getNode(int nr)
Get the node at a given position in the tree |
short[] | getNodeDepthArray()
Get the array holding node depth information |
int | getNodeKind(int nodeNr)
Get the node kind of a given node, which must be a document, element,
text, comment, or processing instruction node |
byte[] | getNodeKindArray()
Get the array holding node kind information |
int | getNumberOfAttributes()
Get the number of attributes in the tree |
int | getNumberOfNamespaces()
Get the number of namespace declarations in the tree |
int | getNumberOfNodes()
Get the number of nodes in the tree, excluding attributes and namespace nodes |
int | getRootNode(int nodeNr)
Get the root node for a given node |
String | getSystemId(int seq)
Get the system id of an element in the document |
int | getTypeAnnotation(int nodeNr)
Get the type annotation of a node. |
int[] | getTypeCodeArray()
Get the array holding node type information |
Value | getTypedValueOfAttribute(TinyAttributeImpl att)
Get the type value of an attribute node. |
Value | getTypedValueOfAttribute(int nodeNr)
Get the type value of an attribute node, given only the node number. |
Value | getTypedValueOfElement(TinyElementImpl element)
Get the type value of an element node. |
Value | getTypedValueOfElement(int nodeNr)
Get the type value of an element node, given only the node number |
void | indexIDElement(NodeInfo root, int nodeNr, NameChecker checker)
Index an element of type xs:ID |
boolean | isIdAttribute(int nr)
Determine whether an attribute is an IDREF/IDREFS attribute. |
boolean | isIdElement(int nr)
Ask whether an element is an ID element. |
boolean | isIdrefAttribute(int nr)
Determine whether an attribute is an IDREF/IDREFS attribute. |
boolean | isIdrefElement(int nr)
Ask whether an element is an IDREF/IDREFS element. |
boolean | isNilled(int nodeNr)
Ask whether a given node is nilled |
void | setConfiguration(Configuration config)
Set the Configuration that contains this document |
void | setElementAnnotation(int nodeNr, int typeCode)
Set the type annotation of an element node |
void | setLineNumber(int sequence, int line, int column)
Set the line number for a node. |
void | setLineNumbering()
Set line numbering on |
void | setSystemId(int seq, String uri)
Set the system id of an element in the document. |
void | showSize()
Output a statistical summary to System.err |
Parameters: nodes the expected number of (non attribute or namespace) nodes attributes the expected number of attributes namespaces the expected number of namespace declarations characters the expected number of characters in the document (in text nodes)
Parameters: root the root of the tree to contain the attribute parent the parent element of the new attribute nameCode the name code of the attribute typeCode the type annotation of the attribute attValue the string value of the attribute properties any special properties of the attribute (bit-significant)
Parameters: doc the document node to be added
Returns: the number of the node that was added
Parameters: parent the node number of the element nscode namespace code identifying the prefix and uri
Parameters: kind The kind of the node. This must be a document, element, text, comment, or processing-instruction node (not an attribute or namespace) depth The depth in the tree alpha Pointer to attributes or text beta Pointer to namespaces or text nameCode The name of the node
Returns: the node number of the node that was added
Parameters: depth the depth of the new node existingNodeNr the node to be copied
Returns: the node number of the new node
Parameters: chars the character data to be appended
Parameters: node the node in question
Returns: an array of integers, whose meaning depends on the node kind. For elements it is a pointer to the first attribute, for text, comment, and processing instruction nodes it is a pointer to the content
Parameters: nodeNr the node whose typed value is required
Returns: the atomic value of the node
Parameters: nr the node number of the attribute
Returns: Type.UNTYPED_ATOMIC if there is no annotation
Returns: an integer array; the Nth integer holds the attribute name code of attribute N
Parameters: nr the node number of the attribute
Returns: an attribute node
Returns: an integer array; the Nth integer holds the pointer to the parent element of attribute N
Returns: an integer array; the Nth integer holds the attribute type code of attribute N
Returns: an array of strings; the Nth string holds the string value of attribute N
Returns: an array of integers, whose meaning depends on the node kind. For elements it is a pointer to the first namespace declaration
Returns: the character buffer
Parameters: sequence the node number
Returns: the line number of the node. Return -1 if line numbering is off.
Returns: the character buffer used for comments
Returns: the Saxon configuration
Returns: the unique number of this TinyTree structure
Parameters: sequence the node number
Returns: the line number of the node. Return -1 if line numbering is off.
Parameters: nodeNr the node number
Returns: the name code
Returns: an array of integers, integer N is the name code of node number N
Returns: the name pool
Returns: an array of integer namespace codes
Returns: an integer array; the Nth integer holds the pointer to the parent element of namespace N
Returns: an array of integers, integer N is the next-sibling pointer for node number N
Parameters: nr the node number
Returns: the node at the given position
Returns: an array of shorts, byte N is the node depth of node number N
Parameters: nodeNr the node number
Returns: the node kind
Returns: an array of bytes, byte N is the node kind of node number N
Returns: the number of attributes
Returns: the number of namespace declarations
Returns: the number of nodes.
Parameters: nodeNr the node number of the given node
Returns: the node number of the root of the tree containing the given node
Parameters: seq the node number of the element node
Returns: the system id (base URI) of the element
Parameters: nodeNr the node whose type annotation is required
Returns: the fingerprint of the type annotation for elements and attributes, otherwise undefined.
Returns: an array of integers, integer N is the type code of node number N
Parameters: att the attribute node
Returns: the typed value of the node
Parameters: nodeNr the node number of the attribute node
Returns: the typed value of the node
Parameters: element the element node
Returns: the typed value of the node
Parameters: nodeNr the node number of the element node
Returns: the typed value of the node
Parameters: root the root node of the document nodeNr the element of type xs:ID checker checks names against XML 1.0 or XML 1.1 rules
Parameters: nr the node number of the attribute
Returns: true if this is an IDREF/IDREFS attribute
Parameters: nr the element node whose is-idref property is required
Returns: true if the node has the is-idref property
Parameters: nr the node number of the attribute
Returns: true if this is an IDREF/IDREFS attribute
Parameters: nr the element node whose is-idref property is required
Returns: true if the node has the is-idref property
Parameters: nodeNr the node in question (which must be an element node)
Returns: true if the node has the nilled property
Parameters: config the Saxon configuration
Parameters: nodeNr the node whose type annotation is to be set typeCode the type annotation
Parameters: sequence the node number line the line number to be set for the node column the column number for the node
Parameters: seq the node number uri the system ID