org.jaxen.pattern

Class Pattern

Known Direct Subclasses:
LocationPathPattern, NodeTest, UnionPattern

public abstract class Pattern
extends java.lang.Object

Pattern defines the behaviour for pattern in the XSLT processing model.
Version:
$Revision: 1.13 $
Author:
James Strachan

Field Summary

static short
ANY_NODE
Matches any node
static short
ATTRIBUTE_NODE
Matches attribute nodes
static short
CDATA_SECTION_NODE
Matches CDATA section nodes
static short
COMMENT_NODE
Matches comment nodes
static short
DOCUMENT_NODE
Matches document nodes
static short
DOCUMENT_TYPE_NODE
Matches DocumentType nodes
static short
ELEMENT_NODE
Matches Element nodes
static short
ENTITY_REFERENCE_NODE
Matches entity reference nodes
static short
MAX_NODE_TYPE
The maximum number of node types for sizing purposes
static short
NAMESPACE_NODE
Matches a Namespace Node
static short
NO_NODE
Matches no nodes
static short
PROCESSING_INSTRUCTION_NODE
Matches ProcessingInstruction
static short
TEXT_NODE
Matches text nodes
static short
UNKNOWN_NODE
Does not match any valid node

Method Summary

short
getMatchType()
Returns the type of node the pattern matches.
String
getMatchesNodeName()
For patterns which only match an ATTRIBUTE_NODE or an ELEMENT_NODE then this pattern may return the name of the element or attribute it matches.
double
getPriority()
Returns the default resolution policy of the pattern according to the XSLT conflict resolution rules.
abstract String
getText()
Returns a textual representation of this pattern
Pattern[]
getUnionPatterns()
If this pattern is a union pattern then this method should return an array of patterns which describe the union pattern, which should contain more than one pattern.
abstract boolean
matches(Object node, Context context)
Pattern
simplify()

Field Details

ANY_NODE

public static final short ANY_NODE
Matches any node
Field Value:
0

ATTRIBUTE_NODE

public static final short ATTRIBUTE_NODE
Matches attribute nodes
Field Value:
2

CDATA_SECTION_NODE

public static final short CDATA_SECTION_NODE
Matches CDATA section nodes
Field Value:
4

COMMENT_NODE

public static final short COMMENT_NODE
Matches comment nodes
Field Value:
8

DOCUMENT_NODE

public static final short DOCUMENT_NODE
Matches document nodes
Field Value:
9

DOCUMENT_TYPE_NODE

public static final short DOCUMENT_TYPE_NODE
Matches DocumentType nodes
Field Value:
10

ELEMENT_NODE

public static final short ELEMENT_NODE
Matches Element nodes
Field Value:
1

ENTITY_REFERENCE_NODE

public static final short ENTITY_REFERENCE_NODE
Matches entity reference nodes
Field Value:
5

MAX_NODE_TYPE

public static final short MAX_NODE_TYPE
The maximum number of node types for sizing purposes
Field Value:
14

NAMESPACE_NODE

public static final short NAMESPACE_NODE
Matches a Namespace Node
Field Value:
13

NO_NODE

public static final short NO_NODE
Matches no nodes
Field Value:
14

PROCESSING_INSTRUCTION_NODE

public static final short PROCESSING_INSTRUCTION_NODE
Matches ProcessingInstruction
Field Value:
7

TEXT_NODE

public static final short TEXT_NODE
Matches text nodes
Field Value:
3

UNKNOWN_NODE

public static final short UNKNOWN_NODE
Does not match any valid node
Field Value:
14

Method Details

getMatchType

public short getMatchType()
Returns the type of node the pattern matches.
Returns:
ANY_NODE unless overridden

getMatchesNodeName

public String getMatchesNodeName()
For patterns which only match an ATTRIBUTE_NODE or an ELEMENT_NODE then this pattern may return the name of the element or attribute it matches. This allows a more efficient rule matching algorithm to be performed, rather than a brute force approach of evaluating every pattern for a given Node.
Returns:
the name of the element or attribute this pattern matches or null if this pattern matches any or more than one name

getPriority

public double getPriority()
Returns:
0.5; the default priority defined in XSLT

getText

public abstract String getText()
Returns a textual representation of this pattern
Returns:
the usual string form of this XSLT pattern

getUnionPatterns

public Pattern[] getUnionPatterns()
If this pattern is a union pattern then this method should return an array of patterns which describe the union pattern, which should contain more than one pattern. Otherwise this method should return null.
Returns:
an array of the patterns which make up this union pattern or null if this pattern is not a union pattern

matches

public abstract boolean matches(Object node,
                                Context context)
            throws JaxenException
Parameters:
node - ????
context - ????
Returns:
true if the pattern matches the given node
Throws:
JaxenException - if ????

simplify

public Pattern simplify()