org.exolab.adaptx.xpath.expressions

Interface PathComponent

All Superinterfaces:
MatchExpression, XPathExpression
Known Subinterfaces:
FilterExpr, LocationStep
Known Implementing Classes:
AbstractPathComponent

public interface PathComponent
extends XPathExpression, MatchExpression

A basic interface for LocationStep or FilterExpr
Version:
$Revision: 4050 $ $Date: 2004-01-13 07:04:15 +0100 (Tue, 13 Jan 2004) $
Author:
Keith Visco

Fields inherited from interface org.exolab.adaptx.xpath.XPathExpression

BOOLEAN, ERROR, FILTER_EXPR, LOCATION_PATH, NODE_TEST, NUMBER, PATH_EXPR, PRIMARY, STEP, STRING, UNION_EXPR

Method Summary

void
evaluatePredicates(NodeSet nodes, XPathContext context)
Evaluates the PredicateExpr of this PathComponent against the given NodeSet and XPathContext.
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.
PredicateExpr
getPredicate()
Returns the PredicateExpr of this PathComponent
XPathExpression
getSubExpression()
Returns the sub-expression encapsulated by this PathComponent.
boolean
hasPredicates()
Returns true if this PathComponent has predicates expressions.
boolean
isFilterExpr()
Returns true if this PathComponent is a FilterExpr.
boolean
isLocationStep()
Returns true if this PathComponent is a LocationStep.

Methods inherited from interface org.exolab.adaptx.xpath.expressions.MatchExpression

matches

Methods inherited from interface org.exolab.adaptx.xpath.XPathExpression

evaluate, getExprType, toString

Method Details

evaluatePredicates

public void evaluatePredicates(NodeSet nodes,
                               XPathContext context)
            throws XPathException
Evaluates the PredicateExpr of this PathComponent against the given NodeSet and XPathContext.
Parameters:
nodes - the current NodeSet
context - the XPathContext for use during evaluation.

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
 
Returns:
the priority for this PatternExpr

getPredicate

public PredicateExpr getPredicate()
Returns the PredicateExpr of this PathComponent
Returns:
the PredicateExpr of this PathComponent

getSubExpression

public 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.
Returns:
the sub-expression encapsulated by this PathComponent.

hasPredicates

public boolean hasPredicates()
Returns true if this PathComponent has predicates expressions.
Returns:
true if this PathComponent has predicates expressions.

isFilterExpr

public 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.
Returns:
true if this PathComponent is a FilterExpr
See Also:
isLocationStep

isLocationStep

public 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.
Returns:
true if this PathComponent is a LocationStep
See Also:
isFilterExpr