Class RebasedNode

All Implemented Interfaces:
Source, SourceLocator, ActiveSource, GroundedValue, Item, NodeInfo, Sequence, Location, VirtualNode, WrappingFunction, Locator

public class RebasedNode extends AbstractVirtualNode implements WrappingFunction
A RebasedNode is a view of a node, in a virtual tree that maps the base URI and/or system ID to new values
  • Constructor Details

    • RebasedNode

      protected RebasedNode()
    • RebasedNode

      protected RebasedNode(NodeInfo node, RebasedNode parent)
      This constructor is protected: nodes should be created using the makeWrapper factory method
      Parameters:
      node - The node to be wrapped
      parent - The RebasedNode that wraps the parent of this node
  • Method Details

    • makeWrapper

      public static RebasedNode makeWrapper(NodeInfo node, RebasedDocument docWrapper, RebasedNode parent)
      Factory method to wrap a node with a wrapper that implements the Saxon NodeInfo interface.
      Parameters:
      node - The underlying node
      docWrapper - The wrapper for the document node (must be supplied)
      parent - The wrapper for the parent of the node (null if unknown)
      Returns:
      The new wrapper for the supplied node
    • makeWrapper

      public RebasedNode makeWrapper(NodeInfo node, VirtualNode parent)
      Factory method to wrap a node with a VirtualNode
      Specified by:
      makeWrapper in interface WrappingFunction
      Parameters:
      node - The underlying node
      parent - The wrapper for the parent of the node (null if unknown)
      Returns:
      The new wrapper for the supplied node
    • 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.
      Specified by:
      getBaseURI in interface NodeInfo
      Overrides:
      getBaseURI in class AbstractVirtualNode
      Returns:
      the base URI of the node. This may be null if the base URI is unknown, including the case where the node has no parent.
    • getSystemId

      public String getSystemId()
      Get the System ID for the node.
      Specified by:
      getSystemId in interface Location
      Specified by:
      getSystemId in interface Locator
      Specified by:
      getSystemId in interface NodeInfo
      Specified by:
      getSystemId in interface Source
      Specified by:
      getSystemId in interface SourceLocator
      Overrides:
      getSystemId in class AbstractVirtualNode
      Returns:
      the System Identifier of the entity in the source document containing the node, or null if not known. Note this is not the same as the base URI: the base URI can be modified by xml:base, but the system ID cannot.
    • equals

      public boolean equals(Object other)
      Determine whether this is the same node as another node.

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

      Specified by:
      equals in interface NodeInfo
      Overrides:
      equals in class AbstractVirtualNode
      Parameters:
      other - the node to be compared with this node
      Returns:
      true if this Node object and the supplied Node object represent the same node in the tree.
    • hashCode

      public 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()
      Specified by:
      hashCode in interface NodeInfo
      Overrides:
      hashCode in class AbstractVirtualNode
    • compareOrder

      public int compareOrder(NodeInfo other)
      Determine the relative position of this node and another node, in document order. The other node will always be in the same document.
      Specified by:
      compareOrder in interface NodeInfo
      Overrides:
      compareOrder in class AbstractVirtualNode
      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())
    • getParent

      public NodeInfo getParent()
      Get the NodeInfo object representing the parent of this node
      Specified by:
      getParent in interface NodeInfo
      Returns:
      the parent of this node; null if this node has no parent
    • iterateAxis

      public AxisIterator iterateAxis(int axisNumber)
      Return an iteration over the nodes reached by the given axis from this node
      Specified by:
      iterateAxis in interface NodeInfo
      Parameters:
      axisNumber - the axis to be used
      Returns:
      a SequenceIterator that scans the nodes reached by the axis in turn.
      See Also: