Class AbstractPathComponent

    • Constructor Detail

      • AbstractPathComponent

        public AbstractPathComponent()
        Creates a new AbstractPathComponent
    • Method Detail

      • addPredicate

        public void addPredicate​(XPathExpression expr)
                          throws XPathException
        Adds the given Expression to this PathComponent's predicate List.
        Parameters:
        expr - the Expr to add to the predicate list
        Throws:
        XPathException
      • addPredicate

        public void addPredicate​(org.exolab.adaptx.xpath.engine.PredicateExprImpl predicate)
                          throws XPathException
        Adds the given Expression to this PathComponent's predicate List.
        Parameters:
        expr - the Expr to add to the predicate list
        Throws:
        XPathException
      • getDefaultPriority

        public abstract double getDefaultPriority()
        Determines the priority of a PatternExpr as follows:
          From the 19991116 XSLT 1.0 Recommendation:
          + If the pattern has the form of a QName preceded by a
            ChildOrAttributeAxisSpecifier or has the form 
            processing-instruction(Literal) then the priority is 0.
          + If the pattern has the form NCName:* preceded by a 
            ChildOrAttributeAxisSpecifier, then the priority is -0.25
          + Otherwise if the pattern consists of just a NodeTest 
            preceded by a ChildOrAttributeAxisSpecifier then the
            priority is -0.5
          + Otherwise the priority is 0.5
         
        Specified by:
        getDefaultPriority in interface PathComponent
        Returns:
        the priority for this PatternExpr
      • getSubExpression

        public abstract XPathExpression getSubExpression()
        Returns the sub-expression encapsulated by this PathComponent. the sub-expression will either be a PrimaryExpr if this PathComponent is a FilterExpr, or a NodeExpression if this Pathcomponent is a LocationStep. This method may return null if no such sub-expression exists for the PathComponent.
        Specified by:
        getSubExpression in interface PathComponent
        Returns:
        the sub-expression encapsulated by this PathComponent.
      • getExprType

        public abstract short getExprType()
        Description copied from interface: XPathExpression
        Returns the type of this expression.
        Specified by:
        getExprType in interface XPathExpression
        Returns:
        The type of this expression
      • evaluate

        public abstract XPathResult evaluate​(XPathContext context)
                                      throws XPathException
        Evaluates the expression and returns the XPath result.
        Specified by:
        evaluate in interface XPathExpression
        Parameters:
        context - The XPathContext to use during evaluation.
        Returns:
        The XPathResult (not null).
        Throws:
        XPathException - if an error occured while evaluating this expression.
      • getPredicate

        public PredicateExpr getPredicate()
        Returns the PredicateExpr of this PathComponent
        Specified by:
        getPredicate in interface PathComponent
        Returns:
        the PredicateExpr of this PathComponent
      • hasPredicates

        public boolean hasPredicates()
        Returns true if this FilterBase has predicates expressions.
        Specified by:
        hasPredicates in interface PathComponent
        Returns:
        true if this FilterBase has predicates expressions.
      • evaluatePredicates

        public void evaluatePredicates​(NodeSet nodes,
                                       XPathContext context)
                                throws XPathException
        Evaluates the PredicateExpr of this PathComponent against the given Node.
        Specified by:
        evaluatePredicates in interface PathComponent
        Parameters:
        nodes - the current NodeSet
        contextInfo - provides a way to retrieve additional context information needed to evaluate some expressions
        Throws:
        XPathException
      • isFilterExpr

        public abstract boolean isFilterExpr()
        Returns true if this PathComponent is a FilterExpr. Note that if this method returns true, then a call to #isLocationStep must return false.
        Specified by:
        isFilterExpr in interface PathComponent
        Returns:
        true if this PathComponent is a FilterExpr
        See Also:
        isLocationStep()
      • isLocationStep

        public abstract boolean isLocationStep()
        Returns true if this PathComponent is a LocationStep. Note that if this method returns true, then a call to #isFilterExpr must return false.
        Specified by:
        isLocationStep in interface PathComponent
        Returns:
        true if this PathComponent is a LocationStep
        See Also:
        isFilterExpr()
      • matches

        public abstract boolean matches​(XPathNode node,
                                        XPathContext context)
                                 throws XPathException
        Determines if the given node is matched by this MatchExpr with respect to the given context.
        Specified by:
        matches in interface MatchExpression
        Parameters:
        node - the node to determine a match for
        context - the XPathContext
        Returns:
        true if the given node is matched by this MatchExpr
        Throws:
        XPathException - when an error occurs during evaluation
      • toString

        public java.lang.String toString()
        Returns the String representation of this PathComponent
        Specified by:
        toString in interface XPathExpression
        Overrides:
        toString in class java.lang.Object
        Returns:
        the String representation of this PathComponent