public abstract class NodeTest extends Object implements ItemType
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, NodeName, SchemaType)
Constructor and Description |
---|
NodeTest() |
Modifier and Type | Method and Description |
---|---|
NodeTest |
copy()
Copy a NodeTest.
|
void |
export(ExpressionPresenter presenter) |
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 to use if this node-test appears as a match pattern
for a template with no explicit priority attribute.
|
int |
getFingerprint()
Get the name of the nodes matched by this nodetest, if it matches a specific name.
|
StructuredQName |
getMatchingNodeName()
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.
|
boolean |
isAtomicType()
Determine whether this item type is an atomic type
|
boolean |
isAtomizable()
Ask whether values of this type are atomizable
|
boolean |
isNillable()
Determine whether the content type (if present) is nillable
|
boolean |
isPlainType()
Determine whether this item type is atomic (that is, whether it can ONLY match
atomic values)
|
abstract boolean |
matches(int nodeKind,
NodeName name,
SchemaType annotation)
Test whether this node test is satisfied by a given node.
|
boolean |
matches(Item item,
TypeHierarchy th)
Test whether a given item conforms to this type
|
boolean |
matches(TinyTree tree,
int nodeNr)
Test whether this node test is satisfied by a given node on a TinyTree.
|
boolean |
matchesNode(NodeInfo node)
Test whether this node test is satisfied by a given node.
|
void |
visitNamedSchemaComponents(SchemaComponentVisitor visitor)
Visit all the schema components used in this ItemType definition
|
public abstract double getDefaultPriority()
public boolean matches(Item item, TypeHierarchy th)
ItemType
public ItemType getPrimitiveItemType()
getPrimitiveItemType
in interface ItemType
public int getPrimitiveType()
getPrimitiveType
in interface ItemType
public int getFingerprint()
public StructuredQName getMatchingNodeName()
public boolean isAtomicType()
isAtomicType
in interface ItemType
public boolean isPlainType()
isPlainType
in interface ItemType
public AtomicType getAtomizedItemType()
getAtomizedItemType
in interface ItemType
public boolean isAtomizable()
isAtomizable
in interface ItemType
public boolean matches(TinyTree tree, int nodeNr)
matchesNode(NodeInfo)
tree
- the TinyTree containing the nodenodeNr
- the number of the node within the TinyTreepublic abstract boolean matches(int nodeKind, NodeName name, SchemaType annotation)
nodeKind
- The kind of node to be matchedname
- identifies the expanded name of the node to be matched.
The value should be null for a node with no name.annotation
- The actual content type of the node. Null means no constraint.public boolean matchesNode(NodeInfo node)
matches(int, NodeName, SchemaType)
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 visitedXPathException
- if an error occurspublic NodeTest copy()
public void export(ExpressionPresenter presenter)
Copyright (c) 2004-2014 Saxonica Limited. All rights reserved.