|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sf.saxon.pattern.NodeTest
public abstract class NodeTest
A NodeTest is a simple kind of pattern that enables a context-free test of whether a node has a particular name. There are several kinds of node test: a full name test, a prefix test, and an "any node of a given type" test, an "any node of any type" test, a "no nodes" test (used, e.g. for "@comment()").
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.
For use in user-written application calling NodeInfo.iterateAxis(byte, NodeTest)
,
it is possible to write a user-defined subclass of NodeTest
that implements
a single method, matches(int, int, int)
Constructor Summary | |
---|---|
NodeTest()
|
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. |
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. |
IntSet |
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) |
boolean |
isAtomizable()
Ask whether values of this type are atomizable |
boolean |
isNillable()
Determine whether the content type (if present) is nillable |
abstract boolean |
matches(int nodeKind,
int fingerprint,
int annotation)
Test whether this node test is satisfied by a given node. |
boolean |
matches(NodeInfo node)
Test whether this node test is satisfied by a given node. |
boolean |
matches(TinyTree tree,
int nodeNr)
Test whether this node test is satisfied by a given node on a TinyTree. |
boolean |
matchesItem(Item item,
boolean allowURIPromotion,
Configuration config)
Test whether a given item conforms to this type. |
String |
toString(NamePool pool)
Display the type descriptor for diagnostics |
void |
visitNamedSchemaComponents(SchemaComponentVisitor visitor)
Visit all the schema components used in this ItemType definition |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public NodeTest()
Method Detail |
---|
public boolean matchesItem(Item item, boolean allowURIPromotion, Configuration config)
matchesItem
in interface ItemType
item
- The item to be testedallowURIPromotion
- config
-
public ItemType getSuperType(TypeHierarchy th)
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.
getSuperType
in interface ItemType
th
- the type hierarchy cache
public abstract double getDefaultPriority()
public ItemType getPrimitiveItemType()
getPrimitiveItemType
in interface ItemType
public int getPrimitiveType()
getPrimitiveType
in interface ItemType
public int getFingerprint()
public boolean isAtomicType()
isAtomicType
in interface ItemType
public AtomicType getAtomizedItemType()
getAtomizedItemType
in interface ItemType
public boolean isAtomizable()
isAtomizable
in interface ItemType
public boolean matches(TinyTree tree, int nodeNr)
matches(NodeInfo)
tree
- the TinyTree containing the nodenodeNr
- the number of the node within the TinyTree
public abstract boolean matches(int nodeKind, int fingerprint, int annotation)
nodeKind
- The kind of node to be matchedfingerprint
- 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 nodepublic boolean matches(NodeInfo node)
matches(int, int, int)
node
- the node to be matchedpublic int getNodeKindMask()
public SchemaType getContentType()
public IntSet getRequiredNodeNames()
public boolean isNillable()
public void visitNamedSchemaComponents(SchemaComponentVisitor visitor) throws XPathException
visitNamedSchemaComponents
in interface ItemType
visitor
- the visitor class to be called when each component is visited
XPathException
public String toString(NamePool pool)
toString
in interface ItemType
pool
- the name pool
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |