Class AbstractPathComponent

java.lang.Object
org.exolab.adaptx.xpath.engine.AbstractPathComponent
All Implemented Interfaces:
MatchExpression, PathComponent, XPathExpression

public abstract class AbstractPathComponent extends Object implements PathComponent
The base class for paths (now basically called paths)
Version:
$Revision: 4055 $ $Date: 2004-01-13 07:08:41 +0100 (Tue, 13 Jan 2004) $
Author:
Keith Visco
  • Constructor Details

    • AbstractPathComponent

      public AbstractPathComponent()
      Creates a new AbstractPathComponent
  • Method Details

    • 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

      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:
    • 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 String toString()
      Returns the String representation of this PathComponent
      Specified by:
      toString in interface XPathExpression
      Overrides:
      toString in class Object
      Returns:
      the String representation of this PathComponent