Class SingletonNodeSet

  • All Implemented Interfaces:
    org.w3c.dom.NodeList
    Direct Known Subclasses:
    FragmentValue, TextFragmentValue

    public class SingletonNodeSet
    extends NodeSetValue
    implements org.w3c.dom.NodeList
    A node-set value containing zero or one nodes
    • Field Detail

      • generalUseAllowed

        protected boolean generalUseAllowed
    • Constructor Detail

      • SingletonNodeSet

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

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

      • 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 java.lang.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
      • getLength

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

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