biz.c24.io.api.data.saxon
Class ComplexElementNode

java.lang.Object
  extended by biz.c24.io.api.data.saxon.ElementNode
      extended by biz.c24.io.api.data.saxon.ComplexElementNode
All Implemented Interfaces:
ComponentNode, DataNode, Node, Source, net.sf.saxon.evpull.PullEvent, net.sf.saxon.om.Item, net.sf.saxon.om.NodeInfo, net.sf.saxon.om.ValueRepresentation

public class ComplexElementNode
extends ElementNode

An element in the C24 Integreation Objects data model whose type is a complex type. This object is a wrapper around the ComplexDataObject.


Nested Class Summary
 class ComplexElementNode.HomogenousChildElementIterator
          Iterator over all the child elements with a given name
 
Field Summary
 
Fields inherited from interface net.sf.saxon.om.NodeInfo
ALL_NAMESPACES, EMPTY_NAMESPACE_LIST, IS_DTD_TYPE, IS_NILLED, LOCAL_NAMESPACES, NO_NAMESPACES
 
Fields inherited from interface net.sf.saxon.om.ValueRepresentation
EMPTY_VALUE_ARRAY
 
Method Summary
 net.sf.saxon.value.Value atomize()
          Get the typed value.
 int compareOrder(net.sf.saxon.om.NodeInfo other)
          Determine the relative position of this node and another node, in document order.
 boolean equals(Object obj)
          Indicates whether some other object is "equal to" this one.
 String getAttributeValue(int fingerprint)
          Get the string value of a given attribute of this element
 String getBaseURI()
          Get the Base URI for the node, that is, the URI used for resolving a relative URI contained in the node.
 int[] getDeclaredNamespaces(int[] buffer)
          Get all namespace declarations and undeclarations defined on this element.
 String getLocalPart()
          Get the local part of the name of this node.
 net.sf.saxon.om.NodeInfo getParent()
          Get the NodeInfo object representing the parent of this node
 String getPrefix()
          Get the prefix of the name of the node.
 int getRelativePosition()
          Get the position of this element relative to its siblings with the same element name
 CharSequence getStringValueCS()
          Get the string value of the item as a CharSequence.
 int getTypeAnnotation()
          Get the type annotation of this node, if any.
 DataComponent getUnderlyingComponent()
           
 Object getUnderlyingObject()
          Returns the underlying object, such as the String, Integer, Date, or ComplexDataObject.
 String getURI()
          Get the URI part of the name of this node.
 boolean hasChildNodes()
          Determine whether the node has any children.
 int hashCode()
          Returns a hash code value for the object.
 boolean isSameNodeInfo(net.sf.saxon.om.NodeInfo other)
          Determine whether this is the same node as another node.
 net.sf.saxon.om.AxisIterator iterateAxis(byte axisNumber, net.sf.saxon.pattern.NodeTest nodeTest)
          Return an iteration over all the nodes reached by the given axis from this node that match a given NodeTest
 
Methods inherited from class biz.c24.io.api.data.saxon.ElementNode
copy, generateId, getConfiguration, getDisplayName, getDocumentNumber, getDocumentRoot, getFingerprint, getLineNumber, getNameCode, getNamePool, getNodeKind, getRoot, getStringValue, getSystemId, getTypedValue, iterateAxis, setSystemId
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getUnderlyingComponent

public DataComponent getUnderlyingComponent()

getUnderlyingObject

public Object getUnderlyingObject()
Description copied from interface: DataNode
Returns the underlying object, such as the String, Integer, Date, or ComplexDataObject.

Returns:
The underlying object.

getRelativePosition

public int getRelativePosition()
Get the position of this element relative to its siblings with the same element name

Specified by:
getRelativePosition in interface Node
Overrides:
getRelativePosition in class ElementNode
Returns:
the relative position. This will be calculated (by retrieving the parent element and the siblings) in the rare event that it is not already known.

atomize

public net.sf.saxon.value.Value atomize()
                                 throws net.sf.saxon.trans.XPathException
Get the typed value. The result of this method will always be consistent with the method Item.getTypedValue(). However, this method is often more convenient and may be more efficient, especially in the common case where the value is expected to be a singleton.

Returns:
the typed value. This will either be a single AtomicValue or a Value whose items are atomic values.
Throws:
net.sf.saxon.trans.XPathException
Since:
8.5

compareOrder

public int compareOrder(net.sf.saxon.om.NodeInfo other)
Determine the relative position of this node and another node, in document order.

The other node must always be in the same tree; the effect of calling this method when the two nodes are in different trees is undefined. To obtain a global ordering of nodes, the application should first compare the result of getDocumentNumber(), and only if the document number is the same should compareOrder() be called.

Specified by:
compareOrder in interface net.sf.saxon.om.NodeInfo
Overrides:
compareOrder in class ElementNode
Parameters:
other - The other node, whose position is to be compared with this node
Returns:
-1 if this node precedes the other node, +1 if it follows the other node, or 0 if they are the same node. (In this case, isSameNode() will always return true, and the two nodes will produce the same result for generateId())
Since:
8.4

getAttributeValue

public String getAttributeValue(int fingerprint)
Get the string value of a given attribute of this element

Parameters:
fingerprint - The fingerprint of the attribute name
Returns:
the attribute value if it exists, or null if it does not exist. Always returns null if this node is not an element.
Since:
8.4

getLocalPart

public String getLocalPart()
Get the local part of the name of this node. This is the name after the ":" if any.

Returns:
the local part of the name. For an unnamed node, returns "". Unlike the DOM interface, this returns the full name in the case of a non-namespaced name.
Since:
8.4

getParent

public net.sf.saxon.om.NodeInfo getParent()
Get the NodeInfo object representing the parent of this node

Returns:
the parent of this node; null if this node has no parent. If the parent was not supplied when this node wrapper was created, then it is now found.
Since:
8.4

getPrefix

public String getPrefix()
Get the prefix of the name of the node. This is defined only for elements and attributes. If the node has no prefix, or for other kinds of node, returns a zero-length string. Note: this is not guaranteed to be the prefix that was used in the original XML document; it may be a different prefix that is bound to the same URI.

Returns:
The prefix of the name of the node.
Since:
8.4

getURI

public String getURI()
Get the URI part of the name of this node. This is the URI corresponding to the prefix, or the URI of the default namespace if appropriate.

Returns:
The URI of the namespace of this node. For an unnamed node, or for an element or attribute that is not in a namespace, or for a processing instruction, returns an empty string.
Since:
8.4

getDeclaredNamespaces

public int[] getDeclaredNamespaces(int[] buffer)
Get all namespace declarations and undeclarations defined on this element.

This method is intended primarily for internal use. User applications needing information about the namespace context of a node should use iterateAxis(Axis.NAMESPACE).

Parameters:
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.
Returns:
An array of integers representing the namespace declarations and undeclarations present on this element. For a node other than an element, return null. Otherwise, the returned array is a sequence of namespace codes, whose meaning may be interpreted by reference to the name pool. The top half word of each namespace code represents the prefix, the bottom half represents the URI. If the bottom half is zero, then this is a namespace undeclaration rather than a declaration. The XML namespace is never included in the list. If the supplied array is larger than required, then the first unused entry will be set to -1.

For a node other than an element, the method returns null.


getTypeAnnotation

public int getTypeAnnotation()
Get the type annotation of this node, if any. The type annotation is represented as an integer; this is the fingerprint of the name of the type, as defined in the name pool. Anonymous types are given a system-defined name. The value of the type annotation can be used to retrieve the actual schema type definition using the method Configuration.getSchemaType(int).

The bit IS_DTD_TYPE (1<<30) will be set in the case of an attribute node if the type annotation is one of ID, IDREF, or IDREFS and this is derived from DTD rather than schema validation.

Returns:
the type annotation of the node. For this implementation, the result is always xs:anyType.
Since:
8.4

isSameNodeInfo

public boolean isSameNodeInfo(net.sf.saxon.om.NodeInfo other)
Determine whether this is the same node as another node.

Note that two different NodeInfo instances can represent the same conceptual node. Therefore the "==" operator should not be used to test node identity.

Note: a.isSameNodeInfo(b) if and only if generateId(a)==generateId(b).

This method has the same semantics as isSameNode() in DOM Level 3, but works on Saxon NodeInfo objects rather than DOM Node objects.

Parameters:
other - the node to be compared with this node
Returns:
true if this NodeInfo object and the supplied NodeInfo object represent the same node in the tree.

equals

public boolean equals(Object obj)
Indicates whether some other object is "equal to" this one.

equals() returns the same result as isSameNodeInfo(): true if the two objects represent the same node

Specified by:
equals in interface net.sf.saxon.om.NodeInfo
Overrides:
equals in class Object
Parameters:
obj - the reference object with which to compare.
Returns:
true if this object is the same as the obj argument; false otherwise.
See Also:
hashCode()

hashCode

public int hashCode()
Returns a hash code value for the object.

Specified by:
hashCode in interface net.sf.saxon.om.NodeInfo
Overrides:
hashCode in class Object
Returns:
a hash code value for this object.
See Also:
Object.equals(Object)

hasChildNodes

public boolean hasChildNodes()
Determine whether the node has any children.

Note: the result is equivalent to
iterateAxis(Axis.CHILD).next() != null

Returns:
True if the node has one or more children
Since:
8.4

getBaseURI

public String getBaseURI()
Get the Base URI for the node, that is, the URI used for resolving a relative URI contained in the node. This will be the same as the System ID unless xml:base has been used. Where the node does not have a base URI of its own, the base URI of its parent node is returned.

Specified by:
getBaseURI in interface net.sf.saxon.om.NodeInfo
Overrides:
getBaseURI in class ElementNode
Returns:
the base URI of the node. This may be null if the base URI is unknown.
Since:
8.4

iterateAxis

public net.sf.saxon.om.AxisIterator iterateAxis(byte axisNumber,
                                                net.sf.saxon.pattern.NodeTest nodeTest)
Return an iteration over all the nodes reached by the given axis from this node that match a given NodeTest

Parameters:
axisNumber - an integer identifying the axis; one of the constants defined in class Axis
nodeTest - A pattern to be matched by the returned nodes; nodes that do not match this pattern are not included in the result
Returns:
a NodeEnumeration that scans the nodes reached by the axis in turn.
Throws:
UnsupportedOperationException - if the namespace axis is requested and this axis is not supported for this implementation.
Since:
8.4
See Also:
Axis

getStringValueCS

public CharSequence getStringValueCS()
Get the string value of the item as a CharSequence. This is in some cases more efficient than the version of the method that returns a String. The method satisfies the rule that X.getStringValueCS().toString() returns a string that is equal to X.getStringValue().

Note that two CharSequence values of different types should not be compared using equals(), and for the same reason they should not be used as a key in a hash table.

If the calling code can handle any CharSequence, this method should be used. If the caller requires a string, the ElementNode.getStringValue() method is preferred.

Returns:
the string value of the item
Since:
8.4
See Also:
ElementNode.getStringValue()


C24 Technologies © 2002-2012: All Rights Reserved.