Class SingletonNodeSet

All Implemented Interfaces:
NodeList
Direct Known Subclasses:
FragmentValue, TextFragmentValue

public class SingletonNodeSet extends NodeSetValue implements NodeList
A node-set value containing zero or one nodes
  • Field Details

    • node

      protected NodeInfo node
    • generalUseAllowed

      protected boolean generalUseAllowed
  • Constructor Details

    • SingletonNodeSet

      public SingletonNodeSet()
      Create an empty node-set
    • SingletonNodeSet

      public SingletonNodeSet(NodeInfo node)
      Create a node-set containing one node
  • Method Details

    • allowGeneralUse

      public void allowGeneralUse()
      Allow general use as a node-set. This is required to lift the 1.0 restrictions on use of result tree fragments
    • isGeneralUseAllowed

      public boolean isGeneralUseAllowed()
      Determine if general use as a node-set is allowed
    • simplify

      public Expression simplify()
      Simplify the expression
      Overrides:
      simplify in class Value
      Returns:
      the simplified expression
    • evaluate

      public Value evaluate(Context context)
      Evaluate the Node Set. This guarantees to return the result in sorted order.
      Overrides:
      evaluate in class NodeSetValue
      Parameters:
      context - The context for evaluation (not used)
      Returns:
      the value, unchanged
    • evaluateAsNodeSet

      public NodeSetValue evaluateAsNodeSet(Context context)
      Evaluate an expression as a NodeSet.
      Overrides:
      evaluateAsNodeSet in class NodeSetValue
      Parameters:
      context - The context in which the expression is to be evaluated
      Returns:
      the value of the expression, evaluated in the current context
    • setSorted

      public void setSorted(boolean isSorted)
      Set a flag to indicate whether the nodes are sorted. Used when the creator of the node-set knows that they are already in document order.
      Specified by:
      setSorted in class NodeSetValue
      Parameters:
      isSorted - true if the caller wishes to assert that the nodes are in document order and do not need to be further sorted
    • isSorted

      public boolean isSorted()
      Test whether the value is known to be sorted
      Specified by:
      isSorted in class NodeSetValue
      Returns:
      true if the value is known to be sorted in document order, false if it is not known whether it is sorted.
    • asString

      public String asString()
      Convert to string value
      Specified by:
      asString in class NodeSetValue
      Returns:
      the value of the first node in the node-set if there is one, otherwise an empty string
    • asBoolean

      public boolean asBoolean()
      Evaluate as a boolean.
      Specified by:
      asBoolean in class NodeSetValue
      Returns:
      true if the node set is not empty
    • getCount

      public int getCount()
      Count the nodes in the node-set. Note this will sort the node set if necessary, to make sure there are no duplicates.
      Specified by:
      getCount in class NodeSetValue
    • sort

      public NodeSetValue sort()
      Sort the nodes into document order. This does nothing if the nodes are already known to be sorted; to force a sort, call setSorted(false)
      Specified by:
      sort in class NodeSetValue
      Returns:
      the same NodeSetValue, after sorting. (Historic)
    • getFirst

      public NodeInfo getFirst()
      Get the first node in the nodeset (in document order)
      Specified by:
      getFirst in class NodeSetValue
      Returns:
      the first node
    • equals

      public boolean equals(Value other) throws XPathException
      Test whether a nodeset "equals" another Value
      Overrides:
      equals in class NodeSetValue
      Returns:
      a boolean giving the value of the expression, evaluated in the current context
      Throws:
      XPathException
    • notEquals

      public boolean notEquals(Value other) throws XPathException
      Test whether a nodeset "not-equals" another Value
      Overrides:
      notEquals in class NodeSetValue
      Returns:
      a boolean giving the value of the expression, evaluated in the current context
      Throws:
      XPathException
    • enumerate

      public NodeEnumeration enumerate() throws XPathException
      Return an enumeration of this nodeset value.
      Specified by:
      enumerate in class NodeSetValue
      Throws:
      XPathException
    • getLength

      public int getLength()
      return the number of nodes in the list (DOM method)
      Specified by:
      getLength in interface NodeList
    • item

      public Node item(int index)
      Return the n'th item in the list (DOM method)
      Specified by:
      item in interface NodeList