com.saxonica.stream.om

## Class FleetingElementNode

- java.lang.Object
- - com.saxonica.stream.om.FleetingNode
  - - com.saxonica.stream.om.FleetingParentNode
    - - com.saxonica.stream.om.FleetingElementNode

- All Implemented Interfaces:
    Source, PullEvent, FingerprintedNode, Item, NodeInfo, Sequence

      public class FleetingElementNode
      extends FleetingParentNode
      implements FingerprintedNode

  Represents an element node available transiently within a streamed document

- - ### Field Summary

    - ### Fields inherited from class com.saxonica.stream.om.FleetingNode

      `root`

    - ### Fields inherited from interface net.sf.saxon.om.NodeInfo

      `ALL_NAMESPACES, IS_DTD_TYPE, IS_NILLED, LOCAL_NAMESPACES, NO_NAMESPACES`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FleetingElementNode()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `copy(Receiver out, int copyOptions, int locationId)` Copy this node to a given Receiver.
    `String` | `getAttributeValue(int fp)` Get the value of the attribute with a given fingerprint.
    `String` | `getAttributeValue(String uri, String local)` Get the string value of a given attribute of this node
    `NamespaceBinding[]` | `getDeclaredNamespaces(NamespaceBinding[] buffer)` Get all namespace declarations and undeclarations defined on this element.
    `AxisIterator` | `iterateAxis(byte axisNumber, NodeTest nodeTest)` Return an iteration over all the nodes reached by the given axis from this node that match a given NodeTest
    `void` | `setAttributes(AttributeCollection attributes)`
    `void` | `setLocalNamespaces(NamespaceBinding[] namespaces)`

    - ### Methods inherited from class com.saxonica.stream.om.FleetingParentNode

      `getPosition, incrementChildCount`

    - ### Methods inherited from class com.saxonica.stream.om.FleetingNode

      `atomize, compareOrder, comparePosition, generateId, getBaseURI, getColumnNumber, getConfiguration, getDisplayName, getDocumentNumber, getDocumentRoot, getFingerprint, getLineNumber, getLocalPart, getNameCode, getNamePool, getNodeKind, getParent, getPrefix, getRoot, getSchemaType, getStringValue, getStringValueCS, getSystemId, getTypeAnnotation, getURI, hasChildNodes, head, isId, isIdref, isNilled, isSameNodeInfo, iterate, iterateAxis, setNodeKind, setNodeName, setParent, setStringValue, setSystemId, setTypeAnnotation`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface net.sf.saxon.om.NodeInfo

      `equals, hashCode`

- - ### Constructor Detail

    - #### FleetingElementNode

          public FleetingElementNode()

  - ### Method Detail

    - #### setLocalNamespaces

          public void setLocalNamespaces(NamespaceBinding[] namespaces)

    - #### setAttributes

          public void setAttributes(AttributeCollection attributes)

    - #### copy

          public void copy(Receiver out,
                  int copyOptions,
                  int locationId)
                    throws XPathException

      Copy this node to a given Receiver.

      This method is primarily for internal use. It should not be considered a stable part of the Saxon API.
      Specified by:
        `copy` in interface `NodeInfo`
      Overrides:
        `copy` in class `FleetingNode`
      Parameters:
        `out` - 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 `CopyOptions`
        `locationId` - If non-zero, identifies the location of the instruction that requested this copy. If zero, indicates that the location information for the original node is to be copied; in this case the Receiver must be
      Throws:
        `UnsupportedOperationException` - (always)
        `XPathException` - if any downstream error occurs

    - #### iterateAxis

          public AxisIterator iterateAxis(byte axisNumber,
                                 NodeTest nodeTest)

      Return an iteration over all the nodes reached by the given axis from this node that match a given NodeTest
      Specified by:
        `iterateAxis` in interface `NodeInfo`
      Overrides:
        `iterateAxis` in class `FleetingNode`
      Parameters:
        `axisNumber` - an integer identifying the axis; one of the constants defined in class `AxisInfo`
        `nodeTest` - A condition to be satisfied by the returned nodes; nodes that do not satisfy this condition are not included in the result
      Returns:
        an AxisIterator that delivers the nodes reached by the axis in turn. The nodes are returned in axis order (document order for a forwards axis, reverse document order for a reverse axis).
      Throws:
        `UnsupportedOperationException` - if the namespace axis is requested and this axis is not supported for this implementation.
      Since:
        8.4
      See Also:
        `AxisInfo`

    - #### getDeclaredNamespaces

          public NamespaceBinding[] getDeclaredNamespaces(NamespaceBinding[] 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)`. (However, not all implementations support the namespace axis, whereas all implementations are required to support this method.)
      Specified by:
        `getDeclaredNamespaces` in interface `NodeInfo`
      Overrides:
        `getDeclaredNamespaces` in class `FleetingNode`
      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.

    - #### getAttributeValue

          public String getAttributeValue(String uri,
                                 String local)

      Get the string value of a given attribute of this node
      Specified by:
        `getAttributeValue` in interface `NodeInfo`
      Overrides:
        `getAttributeValue` in class `FleetingNode`
      Parameters:
        `uri` - the namespace URI of the attribute name. Supply the empty string for an attribute that is in no namespace
        `local` - the local part 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:
        9.4

    - #### getAttributeValue

          public String getAttributeValue(int fp)

      Get the value of the attribute with a given fingerprint.
      Specified by:
        `getAttributeValue` in interface `FingerprintedNode`
      Parameters:
        `fp` - the fingerprint of the required attribute
      Returns:
        the string value of the attribute if present, or null if absent

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.