org.apache.xpath.compiler

Class Compiler


public class Compiler
extends OpMap

An instance of this class compiles an XPath string expression into a Expression object. This class compiles the string into a sequence of operation codes (op map) and then builds from that into an Expression tree.

Field Summary

Fields inherited from class org.apache.xpath.compiler.OpMap

MAPINDEX_LENGTH

Constructor Summary

Compiler()
Construct a Compiler instance that has a null error listener and a null source locator.
Compiler(ErrorListener errorHandler, SourceLocator locator)
Construct a Compiler object with a specific ErrorListener and SourceLocator where the expression is located.

Method Summary

void
assertion(boolean b, java.lang.String msg)
Tell the user of an assertion error, and probably throw an exception.
Expression
compile(int opPos)
Execute the XPath object from a given opcode position.
int
countPredicates(int opPos)
Count the number of predicates in the step.
void
error(String msg, Object[] args)
Tell the user of an error, and probably throw an exception.
Expression[]
getCompiledPredicates(int opPos)
Compile a zero or more predicates for a given match pattern.
int
getLocationPathDepth()
Get the level of the location path or union being constructed.
PrefixResolver
getNamespaceContext()
Get the current namespace context for the xpath.
int
getWhatToShow(int opPos)
Get a NodeFilter bit set that tells what to show for a given node test.
Expression
locationPath(int opPos)
Compile a location path.
Expression
locationPathPattern(int opPos)
Compile a location match pattern unit expression.
Expression
predicate(int opPos)
Compile a location step predicate expression.
void
setNamespaceContext(PrefixResolver pr)
Set the current namespace context for the xpath.
void
warn(String msg, Object[] args)
Warn the user of an problem.

Methods inherited from class org.apache.xpath.compiler.OpMap

error, getArgLength, getArgLengthOfStep, getFirstChildPos, getFirstChildPosOfStep, getFirstPredicateOpPos, getNextOpPos, getNextOpPos, getNextStepPos, getOp, getOpMap, getPatternString, getStepLocalName, getStepNS, getStepTestType, getToken, getTokenQueue, getTokenQueueSize, setOp, toString

Constructor Details

Compiler

public Compiler()
Construct a Compiler instance that has a null error listener and a null source locator.


Compiler

public Compiler(ErrorListener errorHandler,
                SourceLocator locator)
Construct a Compiler object with a specific ErrorListener and SourceLocator where the expression is located.

Parameters:
errorHandler - Error listener where messages will be sent, or null if messages should be sent to System err.
locator - The location object where the expression lives, which may be null, but which, if not null, must be valid over the long haul, in other words, it will not be cloned.

Method Details

assertion

public void assertion(boolean b,
                      java.lang.String msg)
Tell the user of an assertion error, and probably throw an exception.

Parameters:
b - If false, a runtime exception will be thrown.
msg - The assertion message, which should be informative.


compile

public Expression compile(int opPos)
            throws TransformerException
Execute the XPath object from a given opcode position.

Parameters:
opPos - The current position in the xpath.m_opMap array.

Returns:
The result of the XPath.

Throws:
TransformerException - if there is a syntax or other error.


countPredicates

public int countPredicates(int opPos)
            throws TransformerException
Count the number of predicates in the step.

Parameters:
opPos - The position of the first predicate the m_opMap array.

Returns:
The number of predicates for this step.

Throws:
TransformerException - if a error occurs creating the Expression.


error

public void error(String msg,
                  Object[] args)
            throws TransformerException
Tell the user of an error, and probably throw an exception.
Overrides:
error in interface OpMap

Parameters:
msg - An error msgkey that corresponds to one of the constants found in XPATHErrorResources, which is a key for a format string.
args - An array of arguments represented in the format string, which may be null.

Throws:
TransformerException - if the current ErrorListoner determines to throw an exception.


getCompiledPredicates

public Expression[] getCompiledPredicates(int opPos)
            throws TransformerException
Compile a zero or more predicates for a given match pattern.

Parameters:
opPos - The position of the first predicate the m_opMap array.

Returns:
reference to array of Expression instances.

Throws:
TransformerException - if a error occurs creating the Expression.


getLocationPathDepth

public int getLocationPathDepth()
Get the level of the location path or union being constructed.

Returns:
0 if it is a top-level path.


getNamespaceContext

public PrefixResolver getNamespaceContext()
Get the current namespace context for the xpath.

Returns:
The current prefix resolver, *may* be null, though hopefully not.


getWhatToShow

public int getWhatToShow(int opPos)
Get a NodeFilter bit set that tells what to show for a given node test.

Parameters:
opPos - the op map position for the location step.

Returns:
NodeFilter bit set that tells what to show for a given node test.


locationPath

public Expression locationPath(int opPos)
            throws TransformerException
Compile a location path. The LocPathIterator itself may create AxesWalker children.

Parameters:
opPos - The current position in the m_opMap array.

Returns:
reference to LocPathIterator instance.

Throws:
TransformerException - if a error occurs creating the Expression.


locationPathPattern

public Expression locationPathPattern(int opPos)
            throws TransformerException
Compile a location match pattern unit expression.

Parameters:
opPos - The current position in the m_opMap array.

Returns:
reference to StepPattern instance.

Throws:
TransformerException - if a error occurs creating the Expression.


predicate

public Expression predicate(int opPos)
            throws TransformerException
Compile a location step predicate expression.

Parameters:
opPos - The current position in the m_opMap array.

Returns:
the contained predicate expression.

Throws:
TransformerException - if a error occurs creating the Expression.


setNamespaceContext

public void setNamespaceContext(PrefixResolver pr)
Set the current namespace context for the xpath.

Parameters:
pr - The resolver for prefixes in the XPath expression.


warn

public void warn(String msg,
                 Object[] args)
            throws TransformerException
Warn the user of an problem.

Parameters:
msg - An error msgkey that corresponds to one of the constants found in XPATHErrorResources, which is a key for a format string.
args - An array of arguments represented in the format string, which may be null.

Throws:
TransformerException - if the current ErrorListoner determines to throw an exception.


Copyright B) 2004 Apache XML Project. All Rights Reserved.