public abstract class AbstractNodeWrapper extends java.lang.Object implements NodeInfo, VirtualNode
This implementation of the NodeInfo interface contains common code used by many "wrapper" implementations for external data models.
| Constructor and Description |
|---|
AbstractNodeWrapper() |
| Modifier and Type | Method and Description |
|---|---|
AtomicSequence |
atomize()
Get the typed value.
|
void |
copy(Receiver out,
int copyOptions,
Location locationId)
Copy this node to a given Receiver.
|
boolean |
equals(java.lang.Object other)
The equals() method compares nodes for identity.
|
NamespaceMap |
getAllNamespaces()
Get all the namespace bindings that are in-scope for this element.
|
java.lang.String |
getAttributeValue(java.lang.String uri,
java.lang.String local)
Get the string value of a given attribute of this node.
|
java.lang.String |
getBaseURI()
Get the Base URI for the node, that is, the URI used for resolving a relative URI contained
in the node.
|
int |
getColumnNumber()
Get column number
|
NamespaceBinding[] |
getDeclaredNamespaces(NamespaceBinding[] buffer)
Get all namespace declarations and undeclarations defined on this element.
|
java.lang.String |
getDisplayName()
Get the display name of this node.
|
int |
getFingerprint()
Get the fingerprint of the node
|
int |
getLineNumber()
Get line number
|
NamePool |
getNamePool()
Get the name pool for this node
|
java.lang.Object |
getRealNode()
Get the node underlying this virtual node.
|
NodeInfo |
getRoot()
Get the root node - always a document node with this tree implementation
|
java.lang.String |
getSystemId()
Get the System ID for the node.
|
TreeInfo |
getTreeInfo()
Get information about the tree to which this NodeInfo belongs
|
boolean |
hasChildNodes()
Determine whether the node has any children.
|
boolean |
hasFingerprint()
Test whether a fingerprint is available for the node name
|
int |
hashCode()
The hashCode() method obeys the contract for hashCode(): that is, if two objects are equal
(represent the same node) then they must have the same hashCode()
|
protected abstract AxisIterator |
iterateAttributes(NodeTest nodeTest)
Return an iterator over the attributes of this element node.
|
AxisIterator |
iterateAxis(int axisNumber)
Return an iteration over the nodes reached by the given axis from this node
|
AxisIterator |
iterateAxis(int axisNumber,
NodePredicate predicate)
Return an iteration over the nodes reached by the given axis from this node.
|
protected abstract AxisIterator |
iterateChildren(NodeTest nodeTest)
Return an iterator over the children of this node.
|
protected AxisIterator |
iterateDescendants(NodeTest nodeTest,
boolean includeSelf)
Return an iterator over the descendants of this node.
|
protected abstract AxisIterator |
iterateSiblings(NodeTest nodeTest,
boolean forwards)
Return an iterator over the siblings of this node.
|
Location |
saveLocation()
Get an immutable copy of this Location object.
|
void |
setSystemId(java.lang.String uri)
Set the system ID.
|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitgetUnderlyingNodeasActiveSource, attributes, children, children, compareOrder, deliver, generateId, getConfiguration, getGenre, getLocalPart, getNodeKind, getParent, getPrefix, getPublicId, getSchemaType, getURI, isId, isIdref, isNilled, isSameNodeInfo, isStreamed, toShortStringgetLength, getStringValue, getUnicodeStringValue, head, itemAt, iterate, reduce, subsequenceasIterable, concatenate, containsNode, effectiveBooleanValue, materializemakeRepeatableprotected TreeInfo treeInfo
public TreeInfo getTreeInfo()
NodeInfogetTreeInfo in interface NodeInfopublic final java.lang.Object getRealNode()
getRealNode in interface VirtualNodepublic NamePool getNamePool()
public AtomicSequence atomize() throws XPathException
atomize in interface Itematomize in interface NodeInfoXPathException - if the node has no typed value, for example if
it is an element node with element-only contentpublic boolean equals(java.lang.Object other)
equals in interface NodeInfoequals in class java.lang.Objectother - the node to be compared with this nodepublic int hashCode()
hashCode in interface NodeInfohashCode in class java.lang.Objectpublic java.lang.String getSystemId()
getSystemId in interface javax.xml.transform.SourcegetSystemId in interface javax.xml.transform.SourceLocatorgetSystemId in interface NodeInfogetSystemId in interface LocationgetSystemId in interface org.xml.sax.Locatorpublic void setSystemId(java.lang.String uri)
setSystemId in interface javax.xml.transform.SourcesetSystemId in interface NodeInfouri - the system ID.public java.lang.String getBaseURI()
getBaseURI in interface NodeInfopublic int getLineNumber()
getLineNumber in interface javax.xml.transform.SourceLocatorgetLineNumber in interface NodeInfogetLineNumber in interface LocationgetLineNumber in interface org.xml.sax.Locatorpublic int getColumnNumber()
getColumnNumber in interface javax.xml.transform.SourceLocatorgetColumnNumber in interface NodeInfogetColumnNumber in interface LocationgetColumnNumber in interface org.xml.sax.Locatorpublic Location saveLocation()
saveLocation in interface Locationpublic java.lang.String getDisplayName()
getDisplayName in interface NodeInfopublic java.lang.String getAttributeValue(java.lang.String uri,
java.lang.String local)
The default implementation is suitable for nodes other than elements.
getAttributeValue in interface NodeInfouri - the namespace URI of the attribute name. Supply the empty string for an attribute
that is in no namespacelocal - the local part of the attribute name.public AxisIterator iterateAxis(int axisNumber)
iterateAxis in interface NodeInfoaxisNumber - the axis to be usedAxisInfopublic AxisIterator iterateAxis(int axisNumber, NodePredicate predicate)
This superclass provides implementations of the ancestor, ancestor-or-self, following, namespace, parent, preceding, self, and preceding-or-ancestor axes. The other axes are implemented by calling methods iterateAttributes(), iterateChildren(), iterateDescendants(), and iterateSiblings(), which must be provided in a subclass.
iterateAxis in interface NodeInfoaxisNumber - the axis to be usedpredicate - A pattern to be matched by the returned nodesAxisInfoprotected abstract AxisIterator iterateAttributes(NodeTest nodeTest)
nodeTest - a test that the returned attributes must satisfyprotected abstract AxisIterator iterateChildren(NodeTest nodeTest)
nodeTest - a test that the returned attributes must satisfyprotected abstract AxisIterator iterateSiblings(NodeTest nodeTest, boolean forwards)
nodeTest - a test that the returned siblings must satisfyforwards - true for following siblings, false for preceding siblingsprotected AxisIterator iterateDescendants(NodeTest nodeTest, boolean includeSelf)
nodeTest - a test that the returned descendants must satisfyincludeSelf - true if this node is to be included in the resultpublic NamespaceBinding[] getDeclaredNamespaces(NamespaceBinding[] buffer)
This method is intended primarily for internal use. User applications needing
information about the namespace context of a node should use iterateAxis(Axis.NAMESPACE).
(However, not all implementations support the namespace axis, whereas all implementations are
required to support this method.)
This implementation of the method is suitable for all nodes other than elements; it returns an empty array.
getDeclaredNamespaces in interface NodeInfobuffer - If this is non-null, and the result array fits in this buffer, then the result
may overwrite the contents of this array, to avoid the cost of allocating a new array on the heap.For a node other than an element, the method returns null.
public NamespaceMap getAllNamespaces()
For an element return all the prefix-to-uri bindings that are in scope. This may include a binding to the default namespace (represented by a prefix of ""). It will never include "undeclarations" - that is, the namespace URI will never be empty; the effect of an undeclaration is to remove a binding from the in-scope namespaces, not to add anything.
For a node other than an element, returns null.
getAllNamespaces in interface NodeInfopublic NodeInfo getRoot()
public void copy(Receiver out, int copyOptions, Location locationId) throws XPathException
NodeInfoThis method is primarily for internal use. It should not be considered a stable part of the Saxon API.
The default implementation invokes Navigator.copy(this, out, copyOptions, locationId); which
is always adequate.
copy in interface NodeInfoout - the Receiver to which the node should be copied. It is the caller's
responsibility to ensure that this Receiver is open before the method is called
(or that it is self-opening), and that it is closed after use.copyOptions - a selection of the options defined in CopyOptionslocationId - If non-null, identifies the location of the instruction
that requested this copy. If null, indicates that the location information
is not availableXPathException - if any downstream error occurspublic boolean hasChildNodes()
hasChildNodes in interface NodeInfopublic int getFingerprint()
getFingerprint in interface NodeInfojava.lang.UnsupportedOperationException - if this method is called for a node where
hasFingerprint() returns false;public boolean hasFingerprint()
hasFingerprint in interface NodeInfoCopyright (c) 2004-2022 Saxonica Limited. All rights reserved.