Package org.exolab.adaptx.xpath.engine
Class AbstractPathComponent
- java.lang.Object
-
- org.exolab.adaptx.xpath.engine.AbstractPathComponent
-
- All Implemented Interfaces:
MatchExpression
,PathComponent
,XPathExpression
public abstract class AbstractPathComponent extends java.lang.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
-
-
Field Summary
-
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
-
-
Constructor Summary
Constructors Constructor Description AbstractPathComponent()
Creates a new AbstractPathComponent
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addPredicate(org.exolab.adaptx.xpath.engine.PredicateExprImpl predicate)
Adds the given Expression to this PathComponent's predicate List.void
addPredicate(XPathExpression expr)
Adds the given Expression to this PathComponent's predicate List.abstract XPathResult
evaluate(XPathContext context)
Evaluates the expression and returns the XPath result.void
evaluatePredicates(NodeSet nodes, XPathContext context)
Evaluates the PredicateExpr of this PathComponent against the given Node.abstract double
getDefaultPriority()
Determines the priority of a PatternExpr as follows:abstract short
getExprType()
Returns the type of this expression.PredicateExpr
getPredicate()
Returns the PredicateExpr of this PathComponentabstract XPathExpression
getSubExpression()
Returns the sub-expression encapsulated by this PathComponent.boolean
hasPredicates()
Returns true if this FilterBase has predicates expressions.abstract boolean
isFilterExpr()
Returns true if this PathComponent is a FilterExpr.abstract boolean
isLocationStep()
Returns true if this PathComponent is a LocationStep.abstract boolean
matches(XPathNode node, XPathContext context)
Determines if the given node is matched by this MatchExpr with respect to the given context.java.lang.String
toString()
Returns the String representation of this PathComponent
-
-
-
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 interfacePathComponent
- 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 interfacePathComponent
- 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 interfaceXPathExpression
- 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 interfaceXPathExpression
- 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 interfacePathComponent
- Returns:
- the PredicateExpr of this PathComponent
-
hasPredicates
public boolean hasPredicates()
Returns true if this FilterBase has predicates expressions.- Specified by:
hasPredicates
in interfacePathComponent
- 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 interfacePathComponent
- Parameters:
nodes
- the current NodeSetcontextInfo
- 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 interfacePathComponent
- 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 interfacePathComponent
- 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 interfaceMatchExpression
- Parameters:
node
- the node to determine a match forcontext
- 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 interfaceXPathExpression
- Overrides:
toString
in classjava.lang.Object
- Returns:
- the String representation of this PathComponent
-
-