Class PredicateSet

  • All Implemented Interfaces:
    java.io.Serializable

    public class PredicateSet
    extends java.lang.Object
    implements java.io.Serializable

    Represents the collection of predicates that follow the node-test in a location path.

    There is no rule that the same predicate may not appear twice in an XPath expression, nor does this class enforce any such rule. This is implemented more as a list than a set. However, adding the swme predicate twice should have no effect on the final result other than slowing it down.

    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      PredicateSet()
      Create a new empty predicate set.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addPredicate​(Predicate predicate)
      Add a predicate to the set.
      java.util.List applyPredicate​(Predicate predicate, java.util.List nodes2Filter, ContextSupport support)  
      protected boolean evaluateAsBoolean​(java.util.List contextNodeSet, ContextSupport support)
      Returns true if any of the supplied nodes satisfy all the predicates in the set.
      protected java.util.List evaluatePredicates​(java.util.List contextNodeSet, ContextSupport support)
      Returns all of the supplied nodes that satisfy all the predicates in the set.
      java.util.List getPredicates()
      Returns the list containing the predicates.
      java.lang.String getText()
      Returns the XPath string containing each of the predicates.
      void simplify()
      Simplify each of the predicates in the list.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • PredicateSet

        public PredicateSet()
        Create a new empty predicate set.
    • Method Detail

      • addPredicate

        public void addPredicate​(Predicate predicate)
        Add a predicate to the set.
        Parameters:
        predicate - the predicate to be inserted
      • getPredicates

        public java.util.List getPredicates()
        Returns the list containing the predicates. This list is live, not a copy.
        Returns:
        a live list of predicates
      • simplify

        public void simplify()
        Simplify each of the predicates in the list.
      • getText

        public java.lang.String getText()
        Returns the XPath string containing each of the predicates.
        Returns:
        the XPath string containing each of the predicates
      • evaluateAsBoolean

        protected boolean evaluateAsBoolean​(java.util.List contextNodeSet,
                                            ContextSupport support)
                                     throws JaxenException

        Returns true if any of the supplied nodes satisfy all the predicates in the set. Returns false if none of the supplied nodes matches all the predicates in the set. Returns false if the node-set is empty.

        Parameters:
        contextNodeSet - the nodes to test against these predicates
        support - ????
        Returns:
        true if any node in the contextNodeSet matches all the predicates
        Throws:
        JaxenException
      • evaluatePredicates

        protected java.util.List evaluatePredicates​(java.util.List contextNodeSet,
                                                    ContextSupport support)
                                             throws JaxenException

        Returns all of the supplied nodes that satisfy all the predicates in the set.

        Parameters:
        contextNodeSet - the nodes to test against these predicates
        support - ????
        Returns:
        all the nodes that match each of the predicates
        Throws:
        JaxenException