com.novell.xsl.pattern
Class StepPattern

java.lang.Object
  extended bycom.novell.xsl.pattern.StepPattern
All Implemented Interfaces:
Pattern

public class StepPattern
extends Object
implements Pattern

Implements a single step in an XSLT RelativePathPattern.

[5] StepPattern ::= AbbreviatedBasis Predicate*


Field Summary
 
Fields inherited from interface com.novell.xsl.pattern.Pattern
ANY_TARGET, ATTRIBUTE_NAMED_TARGET, ATTRIBUTE_WILDCARD_TARGET, COMMENT_TARGET, ELEMENT_NAMED_TARGET, ELEMENT_WILDCARD_TARGET, NAMESPACE_TARGET, PI_TARGET, ROOT_TARGET, TEXT_TARGET
 
Constructor Summary
StepPattern(NodeTestPattern pattern)
          Create a step pattern that consists of just a NodeTest-type pattern.
StepPattern(StepPattern step, Predicate predicate)
          Construct a StepPattern that consists of an existing StepPattern and an additional predicate.
 
Method Summary
 void dump(PrintWriter writer, int indent)
          Print the pattern in a readable form for debugging.
 double getDefaultPriority()
          Return the default priority for this pattern.
 int getTarget()
          Return the target type of this Pattern.
 ExpandedQName getTargetName()
          Return the name of the patterns target, if there is a target name.
 boolean match(Node node, ExpressionContext context)
          Return true or false depending on whether the passed node matches the XSLT Pattern or not.
 String toString()
          Provide a readable description for debugging.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

StepPattern

public StepPattern(NodeTestPattern pattern)
Create a step pattern that consists of just a NodeTest-type pattern.

Parameters:
pattern - The pattern.

StepPattern

public StepPattern(StepPattern step,
                   Predicate predicate)
Construct a StepPattern that consists of an existing StepPattern and an additional predicate.

Parameters:
step - The existing StepPattern (with 0 or more predicates).
predicate - An additional predicate for the StepPattern.
Method Detail

toString

public String toString()
Provide a readable description for debugging.

Returns:
String representation

match

public boolean match(Node node,
                     ExpressionContext context)
              throws XPathEvaluationException
Return true or false depending on whether the passed node matches the XSLT Pattern or not. The passed ExpressionContext is necessary for evaluation of XPath Predicate expressions, which may be part of a Pattern, as well as for namespace resolution.

Specified by:
match in interface Pattern
Parameters:
node - The node to match.
context - The context for matching.
Returns:
True if the node matches the pattern, false otherwise.
Throws:
XPathEvaluationException

getDefaultPriority

public double getDefaultPriority()
Return the default priority for this pattern. See XSLT spec for information on default priority calculation.

Specified by:
getDefaultPriority in interface Pattern
Returns:
-0.5, 0.0, or 0.5

getTarget

public int getTarget()
Return the target type of this Pattern. This is one of the values defined in the Pattern interface (ELEMENT_NAMED_TARGET, ELEMENT_WILDCARD_TARGET, etc.)

Specified by:
getTarget in interface Pattern
Returns:
The target type value for this Pattern.

getTargetName

public ExpandedQName getTargetName()
Return the name of the patterns target, if there is a target name. This may return null if there is no target name for this pattern (text(), node(), etc.). However, if getTarget() returns ELEMENT_NAMED_TARGET or ATTRIBUTE_NAMED_TARGET this will never return null.

Specified by:
getTargetName in interface Pattern
Returns:
The target name or null.

dump

public void dump(PrintWriter writer,
                 int indent)
Print the pattern in a readable form for debugging.

Specified by:
dump in interface Pattern
Parameters:
writer - The output device.
indent - Number of tabs to indent the result.