net.sf.saxon.pattern
public abstract class NodeTest extends Object implements ItemType, Serializable
As well as being used to support XSLT pattern matching, NodeTests act as predicates in axis steps, and also act as item types for type matching.
Method Summary | |
---|---|
AtomicType | getAtomizedItemType()
Get the item type of the atomic values that will be produced when an item
of this type is atomized (assuming that atomization succeeds) |
SchemaType | getContentType()
Get the content type allowed by this NodeTest (that is, the type annotation of the matched nodes).
|
abstract double | getDefaultPriority()
Determine the default priority of this node test when used on its own as a Pattern |
int | getFingerprint()
Get the name of the nodes matched by this nodetest, if it matches a specific name.
|
abstract int | getNodeKindMask()
Get a mask indicating which kinds of nodes this NodeTest can match. |
ItemType | getPrimitiveItemType()
Get the primitive item type corresponding to this item type. |
int | getPrimitiveType()
Get the basic kind of object that this ItemType matches: for a NodeTest, this is the kind of node,
or Type.Node if it matches different kinds of nodes. |
IntHashSet | getRequiredNodeNames()
Get the set of node names allowed by this NodeTest. |
ItemType | getSuperType(TypeHierarchy th)
Get the type from which this item type is derived by restriction. |
boolean | isAtomicType()
Determine whether this item type is atomic (that is, whether it can ONLY match
atomic values)
|
abstract boolean | matches(TinyTree tree, int nodeNr)
Test whether this node test is satisfied by a given node on a TinyTree. |
abstract boolean | matches(int nodeKind, int fingerprint, int annotation)
Test whether this node test is satisfied by a given node. |
abstract boolean | matches(NodeInfo node)
Test whether this node test is satisfied by a given node. |
boolean | matchesItem(Item item, XPathContext context, boolean allowURIPromotion)
Test whether a given item conforms to this type. |
String | toString(NamePool pool)
Display the type descriptor for diagnostics |
Returns: the node kind matched by this node test
In fact the concept of "supertype" is not really well-defined, because the types form a lattice rather than a hierarchy. The only real requirement on this function is that it returns a type that strictly subsumes this type, ideally as narrowly as possible.
Parameters: th
Returns: the supertype, or null if this type is item()
Returns: false: this is not ANY_ATOMIC_TYPE or a subtype thereof
Parameters: tree the TinyTree containing the node nodeNr the number of the node within the TinyTree
Returns: true if the node matches the NodeTest, otherwise false
Parameters: nodeKind The kind of node to be matched fingerprint identifies the expanded name of the node to be matched. The value should be -1 for a node with no name. annotation The actual content type of the node
Parameters: node the node to be matched
Parameters: item The item to be tested context allowURIPromotion
Returns: true if the item is an instance of this type; false otherwise