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 voidaddPredicate(org.exolab.adaptx.xpath.engine.PredicateExprImpl predicate)Adds the given Expression to this PathComponent's predicate List.voidaddPredicate(XPathExpression expr)Adds the given Expression to this PathComponent's predicate List.abstract XPathResultevaluate(XPathContext context)Evaluates the expression and returns the XPath result.voidevaluatePredicates(NodeSet nodes, XPathContext context)Evaluates the PredicateExpr of this PathComponent against the given Node.abstract doublegetDefaultPriority()Determines the priority of a PatternExpr as follows:abstract shortgetExprType()Returns the type of this expression.PredicateExprgetPredicate()Returns the PredicateExpr of this PathComponentabstract XPathExpressiongetSubExpression()Returns the sub-expression encapsulated by this PathComponent.booleanhasPredicates()Returns true if this FilterBase has predicates expressions.abstract booleanisFilterExpr()Returns true if this PathComponent is a FilterExpr.abstract booleanisLocationStep()Returns true if this PathComponent is a LocationStep.abstract booleanmatches(XPathNode node, XPathContext context)Determines if the given node is matched by this MatchExpr with respect to the given context.java.lang.StringtoString()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 XPathExceptionAdds 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:
getDefaultPriorityin 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:
getSubExpressionin interfacePathComponent- Returns:
- the sub-expression encapsulated by this PathComponent.
-
getExprType
public abstract short getExprType()
Description copied from interface:XPathExpressionReturns the type of this expression.- Specified by:
getExprTypein 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:
evaluatein 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:
getPredicatein interfacePathComponent- Returns:
- the PredicateExpr of this PathComponent
-
hasPredicates
public boolean hasPredicates()
Returns true if this FilterBase has predicates expressions.- Specified by:
hasPredicatesin 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:
evaluatePredicatesin 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:
isFilterExprin 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:
isLocationStepin 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:
matchesin 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:
toStringin interfaceXPathExpression- Overrides:
toStringin classjava.lang.Object- Returns:
- the String representation of this PathComponent
-
-