public class TinyElementImpl extends TinyParentNodeImpl
This class is an implementation of NodeInfo. The object is a wrapper around one entry in the arrays maintained by the TinyTree. Note that the same node might be represented by different TinyElementImpl objects at different times.
NODE_LETTER, nodeNr, parent, tree
IS_DTD_TYPE, IS_NILLED
Constructor and Description |
---|
TinyElementImpl(TinyTree tree,
int nodeNr)
Constructor - create a tiny element node
|
Modifier and Type | Method and Description |
---|---|
AtomicSequence |
atomize()
Get the typed value.
|
protected void |
checkNotNamespaceSensitiveElement(SchemaType type,
int nodeNr)
Check whether the content of an element is namespace-sensitive
|
void |
copy(Receiver receiver,
int copyOptions,
Location location)
Copy this node to a given receiver
|
java.lang.String |
getAttributeValue(int fp)
Get the value of the attribute with a given fingerprint.
|
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 of this element node.
|
NamespaceBinding[] |
getDeclaredNamespaces(NamespaceBinding[] buffer)
Get all namespace undeclarations and undeclarations defined on this element.
|
static NamespaceBinding[] |
getDeclaredNamespaces(TinyTree tree,
int nodeNr,
NamespaceBinding[] buffer)
Static method to get all namespace undeclarations and undeclarations defined on a given element,
without instantiating the node object.
|
int |
getNodeKind()
Return the type of node.
|
SchemaType |
getSchemaType()
Get the type annotation of this node, if any.
|
java.lang.String |
getURIForPrefix(java.lang.String prefix,
boolean useDefault)
Get the namespace URI corresponding to a given prefix.
|
boolean |
hasUniformNamespaces()
Ask whether the element is the root of a subtree in which no descendant element
has any local namespace declarations or undeclarations; that is, all elements
in the subtree have the same in-scope namespace bindings.
|
boolean |
isId()
Determine whether this node has the is-id property
|
boolean |
isIdref()
Determine whether this node has the is-idref property
|
getStringValue, getStringValueCS, getStringValueCS, hasChildNodes
compareOrder, equals, generateId, getColumnNumber, getConfiguration, getDisplayName, getFingerprint, getGenre, getLineNumber, getLocalPart, getNamePool, getNodeNumber, getParent, getPrefix, getRoot, getSequenceNumber, getSystemId, getTree, getTreeInfo, getURI, hasFingerprint, hashCode, head, isAncestorOrSelf, isNilled, isSameNodeInfo, isStreamed, iterate, iterateAxis, iterateAxis, saveLocation, setParentNode, setSystemId
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
getPublicId, toShortString
getLength, itemAt, iterator, reduce, subsequence, toGroundedValue
asIterable, effectiveBooleanValue, materialize
makeRepeatable
public TinyElementImpl(TinyTree tree, int nodeNr)
tree
- the Tinytree containing the nodenodeNr
- the node numberpublic final int getNodeKind()
Type
public java.lang.String getBaseURI()
getBaseURI
in interface NodeInfo
getBaseURI
in class TinyNodeImpl
public SchemaType getSchemaType()
Types derived from a DTD are not reflected in the result of this method.
getSchemaType
in interface NodeInfo
getSchemaType
in class TinyNodeImpl
public AtomicSequence atomize() throws XPathException
XPathException
- if the node has no typed value, for example if
it is an element node with element-only contentpublic NamespaceBinding[] getDeclaredNamespaces(NamespaceBinding[] buffer)
getDeclaredNamespaces
in interface NodeInfo
getDeclaredNamespaces
in class TinyNodeImpl
buffer
- 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.public static NamespaceBinding[] getDeclaredNamespaces(TinyTree tree, int nodeNr, NamespaceBinding[] buffer)
tree
- The tree containing the given element nodenodeNr
- The node number of the given element node within the tinyTreebuffer
- 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.public boolean hasUniformNamespaces()
public java.lang.String getAttributeValue(java.lang.String uri, java.lang.String local)
getAttributeValue
in interface NodeInfo
getAttributeValue
in class TinyNodeImpl
uri
- 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 java.lang.String getAttributeValue(int fp)
fp
- the fingerprint of the required attributepublic void copy(Receiver receiver, int copyOptions, Location location) throws XPathException
copyOptions
- determines handling of namespaces, etclocation
- location information associated with the eventreceiver
- 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.XPathException
- if any downstream error occursprotected void checkNotNamespaceSensitiveElement(SchemaType type, int nodeNr) throws XPathException
type
- the type annotation of the nodenodeNr
- the the node number of the elementeXPathException
- if an error occurspublic java.lang.String getURIForPrefix(java.lang.String prefix, boolean useDefault)
prefix
- the namespace prefix. May be the zero-length string, indicating
that there is no prefix. This indicates either the default namespace or the
null namespace, depending on the value of useDefault.useDefault
- true if the default namespace is to be used when the
prefix is "". If false, the method returns "" when the prefix is "".public boolean isId()
isId
in interface NodeInfo
isId
in class TinyNodeImpl
public boolean isIdref()
isIdref
in interface NodeInfo
isIdref
in class TinyNodeImpl
Copyright (c) 2004-2020 Saxonica Limited. All rights reserved.