org.apache.xpath.patterns

Class NodeTest

Implemented Interfaces:
java.io.Serializable, ExpressionNode, SourceLocator, XPathVisitable
Known Direct Subclasses:
PredicatedNodeTest, StepPattern

public class NodeTest
extends Expression

This is the basic node test class for both match patterns and location path steps.
See Also:
Serialized Form

Field Summary

static XNumber
SCORE_NODETEST
The match score if the pattern consists of just a NodeTest.
static XNumber
SCORE_NONE
The match score if no match is made.
static XNumber
SCORE_NSWILD
The match score if the pattern pattern has the form NCName:*.
static XNumber
SCORE_OTHER
The match score if the pattern consists of something other than just a NodeTest or just a qname.
static XNumber
SCORE_QNAME
The match score if the pattern has the form of a QName optionally preceded by an @ character.
static int
SHOW_BYFUNCTION
Special bitmap for match patterns starting with a function.
static String
SUPPORTS_PRE_STRIPPING
The URL to pass to the Node#supports method, to see if the DOM has already been stripped of whitespace nodes.
static String
WILD
The namespace or local name for node tests with a wildcard.

Constructor Summary

NodeTest()
Null argument constructor.
NodeTest(int whatToShow)
Construct an NodeTest that doesn't test for node names.
NodeTest(int whatToShow, String namespace, String name)
Construct an NodeTest that tests for namespaces and node names.

Method Summary

void
callVisitors(ExpressionOwner owner, XPathVisitor visitor)
static void
debugWhatToShow(int whatToShow)
Do a diagnostics dump of a whatToShow bit set.
boolean
deepEquals(Expression expr)
XObject
execute(XPathContext xctxt)
Test the current node to see if it matches the given node test.
XObject
execute(XPathContext xctxt, int context)
Tell what the test score is for the given node.
XObject
execute(XPathContext xctxt, int context, DTM dtm, int expType)
Tell what the test score is for the given node.
void
fixupVariables(java.util.Vector vars, int globalsSize)
Node tests by themselves do not need to fix up variables.
double
getDefaultScore()
Get the score that this test will return if a test succeeds.
String
getLocalName()
Return the local name to be tested.
String
getNamespace()
Return the namespace to be tested.
static int
getNodeTypeTest(int whatToShow)
Tell what node type to test, if not DTMFilter.SHOW_ALL.
XNumber
getStaticScore()
Get the static score for this node test.
int
getWhatToShow()
This attribute determines which node types are accepted.
void
initNodeTest(int whatToShow)
Initialize this node test by setting the whatToShow property, and calculating the score that this test will return if a test succeeds.
void
initNodeTest(int whatToShow, String namespace, String name)
Initialize this node test by setting the whatToShow property and the namespace and local name, and calculating the score that this test will return if a test succeeds.
void
setLocalName(String name)
Set the local name to be tested.
void
setNamespace(String ns)
Set the namespace to be tested.
void
setStaticScore(XNumber score)
Set the static score for this node test.
void
setWhatToShow(int what)
This attribute determines which node types are accepted.

Methods inherited from class org.apache.xpath.Expression

asIterator, asIteratorRaw, asNode, assertion, bool, canTraverseOutsideSubtree, deepEquals, error, execute, execute, execute, execute, executeCharsToContentHandler, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, fixupVariables, getColumnNumber, getExpressionOwner, getLineNumber, getPublicId, getSystemId, isNodesetExpr, isStableNumber, num, warn, xstr

Field Details

SCORE_NODETEST

public static final XNumber SCORE_NODETEST
The match score if the pattern consists of just a NodeTest.

SCORE_NONE

public static final XNumber SCORE_NONE
The match score if no match is made.

SCORE_NSWILD

public static final XNumber SCORE_NSWILD
The match score if the pattern pattern has the form NCName:*.

SCORE_OTHER

public static final XNumber SCORE_OTHER
The match score if the pattern consists of something other than just a NodeTest or just a qname.

SCORE_QNAME

public static final XNumber SCORE_QNAME
The match score if the pattern has the form of a QName optionally preceded by an @ character.

SHOW_BYFUNCTION

public static final int SHOW_BYFUNCTION
Field Value:
65536

SUPPORTS_PRE_STRIPPING

public static final String SUPPORTS_PRE_STRIPPING
The URL to pass to the Node#supports method, to see if the DOM has already been stripped of whitespace nodes.

WILD

public static final String WILD
The namespace or local name for node tests with a wildcard.

Constructor Details

NodeTest

public NodeTest()
Null argument constructor.

NodeTest

public NodeTest(int whatToShow)
Construct an NodeTest that doesn't test for node names.

NodeTest

public NodeTest(int whatToShow,
                String namespace,
                String name)
Construct an NodeTest that tests for namespaces and node names.
Parameters:
whatToShow - Bit set defined mainly by NodeFilter.
namespace - The namespace to be tested.
name - The local name to be tested.

Method Details

callVisitors

public void callVisitors(ExpressionOwner owner,
                         XPathVisitor visitor)
Specified by:
callVisitors in interface XPathVisitable
See Also:
XPathVisitable.callVisitors(ExpressionOwner, XPathVisitor)

debugWhatToShow

public static void debugWhatToShow(int whatToShow)
Do a diagnostics dump of a whatToShow bit set.

deepEquals

public boolean deepEquals(Expression expr)
Overrides:
deepEquals in interface Expression

execute

public XObject execute(XPathContext xctxt)
            throws TransformerException
Test the current node to see if it matches the given node test.
Overrides:
execute in interface Expression
Parameters:
xctxt - XPath runtime context.

execute

public XObject execute(XPathContext xctxt,
                       int context)
            throws TransformerException
Tell what the test score is for the given node.
Overrides:
execute in interface Expression
Parameters:
xctxt - XPath runtime context.
context - The node being tested.

execute

public XObject execute(XPathContext xctxt,
                       int context,
                       DTM dtm,
                       int expType)
            throws TransformerException
Tell what the test score is for the given node.
Overrides:
execute in interface Expression
Parameters:
xctxt - XPath runtime context.
context - The node being tested.

fixupVariables

public void fixupVariables(java.util.Vector vars,
                           int globalsSize)
Node tests by themselves do not need to fix up variables.
Overrides:
fixupVariables in interface Expression

getDefaultScore

public double getDefaultScore()
Get the score that this test will return if a test succeeds.
Returns:
the score that this test will return if a test succeeds.

getLocalName

public String getLocalName()
Return the local name to be tested.

getNamespace

public String getNamespace()
Return the namespace to be tested.

getNodeTypeTest

public static int getNodeTypeTest(int whatToShow)
Tell what node type to test, if not DTMFilter.SHOW_ALL.
Returns:
the node type for the whatToShow. Since whatToShow can specify multiple types, it will return the first bit tested that is on, so the caller of this function should take care that this is the function they really want to call. If none of the known bits are set, this function will return zero.

getStaticScore

public XNumber getStaticScore()
Get the static score for this node test.
Returns:
Should be one of the SCORE_XXX constants.

getWhatToShow

public int getWhatToShow()
Returns:
bitset mainly defined in NodeFilter.

initNodeTest

public void initNodeTest(int whatToShow)
Initialize this node test by setting the whatToShow property, and calculating the score that this test will return if a test succeeds.

initNodeTest

public void initNodeTest(int whatToShow,
                         String namespace,
                         String name)
Initialize this node test by setting the whatToShow property and the namespace and local name, and calculating the score that this test will return if a test succeeds.
Parameters:
whatToShow - Bit set defined mainly by NodeFilter.
namespace - The namespace to be tested.
name - The local name to be tested.

setLocalName

public void setLocalName(String name)
Set the local name to be tested.

setNamespace

public void setNamespace(String ns)
Set the namespace to be tested.

setStaticScore

public void setStaticScore(XNumber score)
Set the static score for this node test.
Parameters:
score - Should be one of the SCORE_XXX constants.

setWhatToShow

public void setWhatToShow(int what)
Parameters:
what - bitset mainly defined in NodeFilter.

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