public class NameTest extends NodeTest implements QNameTest
ItemType.WithSequenceTypeCache
Constructor and Description |
---|
NameTest(int nodeKind,
int nameCode,
NamePool namePool)
Create a NameTest to match nodes by their nameCode allocated from the NamePool
|
NameTest(int nodeKind,
NodeName name,
NamePool pool)
Create a NameTest to match nodes by name
|
NameTest(int nodeKind,
java.lang.String uri,
java.lang.String localName,
NamePool namePool)
Create a NameTest to match nodes by name
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object other)
Determines whether two NameTests are equal
|
java.util.Optional<java.lang.String> |
explainMismatch(Item item,
TypeHierarchy th)
Get extra diagnostic information about why a supplied item does not conform to this
item type, if available.
|
java.lang.String |
generateJavaScriptItemTypeTest(ItemType knownToBe,
int targetVersion)
Generate Javascript code to test whether an item conforms to this item type
|
java.lang.String |
generateJavaScriptNameTest(int targetVersion)
Generate Javascript code to test if a name matches the test.
|
double |
getDefaultPriority()
Determine the default priority of this node test when used on its own as a Pattern
|
int |
getFingerprint()
Get the fingerprint required
|
java.lang.String |
getLocalPart()
Get the local name matched by this nametest
|
java.util.function.IntPredicate |
getMatcher(NodeVectorTree tree)
Get a matching function that can be used to test whether numbered nodes in a TinyTree
or DominoTree satisfy the node test.
|
StructuredQName |
getMatchingNodeName()
Get the name of the nodes matched by this nodetest, if it matches a specific name.
|
NamePool |
getNamePool()
Get the NamePool associated with this NameTest
|
java.lang.String |
getNamespaceURI()
Get the namespace URI matched by this nametest
|
int |
getNodeKind()
Get the node kind that this name test matches
|
int |
getPrimitiveType()
Determine the types of nodes to which this pattern applies.
|
java.util.Optional<IntSet> |
getRequiredNodeNames()
Get the set of node names allowed by this NodeTest.
|
UType |
getUType()
Get the corresponding
UType . |
int |
hashCode()
Returns a hash code value for the object.
|
boolean |
matches(int nodeKind,
NodeName name,
SchemaType annotation)
Test whether this node test is satisfied by a given node.
|
boolean |
matches(StructuredQName qname)
Test whether the NameTest matches a given QName
|
boolean |
matchesNode(NodeInfo node)
Test whether this node test is satisfied by a given node.
|
java.lang.String |
toShortString() |
java.lang.String |
toString() |
copy, generateJavaScriptItemTypeAcceptor, getAlphaCode, getAtomizedItemType, getContentType, getGenre, getPrimitiveItemType, isAtomicType, isAtomizable, isNillable, isPlainType, matches, one, oneOrMore, zeroOrMore, zeroOrOne
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
isTrueItemType, toExportString
public NameTest(int nodeKind, java.lang.String uri, java.lang.String localName, NamePool namePool)
nodeKind
- the kind of node, for example Type.ELEMENT
uri
- the namespace URI of the required nodes. Supply "" to match nodes that are in
no namespacelocalName
- the local name of the required nodes. Supply "" to match unnamed nodesnamePool
- the namePool holding the name codespublic NameTest(int nodeKind, int nameCode, NamePool namePool)
nodeKind
- the kind of node, for example Type.ELEMENT
nameCode
- the nameCode representing the name of the nodenamePool
- the namePool holding the name codespublic NameTest(int nodeKind, NodeName name, NamePool pool)
nodeKind
- the kind of node, for example Type.ELEMENT
name
- the name of the nodes that this NameTest will matchpool
- the namePool holding the name codespublic NamePool getNamePool()
public int getNodeKind()
public UType getUType()
UType
. A UType is a union of primitive item
types.public boolean matches(int nodeKind, NodeName name, SchemaType annotation)
matches
in class NodeTest
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 nodepublic java.util.function.IntPredicate getMatcher(NodeVectorTree tree)
NodeTest
matchesNode(tree.getNode(nodeNr))
, but it may well be faster).getMatcher
in class NodeTest
tree
- the tree against which the returned function will operatepublic boolean matchesNode(NodeInfo node)
matchesNode
in class NodeTest
node
- the node to be matchedpublic boolean matches(StructuredQName qname)
public final double getDefaultPriority()
getDefaultPriority
in class NodeTest
public int getFingerprint()
getFingerprint
in class NodeTest
public StructuredQName getMatchingNodeName()
getMatchingNodeName
in class NodeTest
public int getPrimitiveType()
getPrimitiveType
in interface ItemType
getPrimitiveType
in class NodeTest
public java.util.Optional<IntSet> getRequiredNodeNames()
getRequiredNodeNames
in class NodeTest
public java.lang.String getNamespaceURI()
public java.lang.String getLocalPart()
public java.lang.String toString()
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object other)
equals
in class java.lang.Object
public java.lang.String generateJavaScriptNameTest(int targetVersion)
generateJavaScriptNameTest
in interface QNameTest
targetVersion
- the version of Saxon-JS being targetedpublic java.lang.String generateJavaScriptItemTypeTest(ItemType knownToBe, int targetVersion)
generateJavaScriptItemTypeTest
in interface ItemType
knownToBe
- NodeTest that the item is known to conform to (no run-time test needed)targetVersion
- the version of Saxon-JS being targetedpublic java.util.Optional<java.lang.String> explainMismatch(Item item, TypeHierarchy th)
explainMismatch
in interface ItemType
explainMismatch
in class NodeTest
item
- the item that doesn't match this typeth
- the type hierarchy cachepublic java.lang.String toShortString()
toShortString
in class NodeTest
Copyright (c) 2004-2020 Saxonica Limited. All rights reserved.