public class CombinedNodeTest extends NodeTest
ItemType.WithSequenceTypeCache| Constructor and Description |
|---|
CombinedNodeTest(NodeTest nt1,
int operator,
NodeTest nt2)
Create a NodeTest that combines two other node tests
|
| Modifier and Type | Method and Description |
|---|---|
void |
addTypeDetails(DictionaryMap map)
Add the "parameters" of the type to a Dictionary containing the type information
in structured form
|
boolean |
equals(java.lang.Object other)
Indicates whether some other object is "equal to" this one.
|
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
|
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)
|
NodeTest[] |
getComponentNodeTests()
Get the two parts of the combined node test
|
SchemaType |
getContentType()
Get the content type allowed by this NodeTest (that is, the type annotation of the matched nodes).
|
double |
getDefaultPriority()
Get the default priority of this nodeTest when used as a pattern.
|
int |
getFingerprint()
Get the name of the nodes matched by this nodetest, if it matches a specific name.
|
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.
|
int |
getOperator()
Get the operator used to combine the two node tests: one of
Token.UNION,
Token.INTERSECT, Token.EXCEPT, |
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.
|
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 |
isAtomizable(TypeHierarchy th)
Ask whether values of this type are atomizable
|
boolean |
isNillable()
Determine whether the content type (if present) is nillable
|
boolean |
matches(int nodeKind,
NodeName name,
SchemaType annotation)
Test whether this node test is satisfied by a given node.
|
boolean |
matchesNode(NodeInfo node)
Test whether this node test is satisfied by a given node.
|
java.lang.String |
toExportString()
Return a string representation of this ItemType suitable for use in stylesheet
export files.
|
java.lang.String |
toString() |
copy, generateJavaScriptItemTypeAcceptor, getAlphaCode, getGenre, getPrimitiveItemType, isAtomicType, isPlainType, matches, one, oneOrMore, toShortString, zeroOrMore, zeroOrOneclone, finalize, getClass, notify, notifyAll, wait, wait, waitisTrueItemTypepublic CombinedNodeTest(NodeTest nt1, int operator, NodeTest nt2)
nt1 - the first operand. Note that if the defaultPriority of the pattern
is required, it will be taken from that of the first operand.operator - one of Token.UNION, Token.INTERSECT, Token.EXCEPTnt2 - the second operandpublic UType getUType()
UType. A UType is a union of primitive item
types.public boolean matches(int nodeKind,
NodeName name,
SchemaType annotation)
matches in class NodeTestnodeKind - 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)
NodeTestmatchesNode(tree.getNode(nodeNr)), but it may well be faster).getMatcher in class NodeTesttree - the tree against which the returned function will operatepublic boolean matchesNode(NodeInfo node)
matchesNode in class NodeTestnode - the node to be matchedpublic java.lang.String toString()
public java.lang.String toExportString()
toString().public void addTypeDetails(DictionaryMap map)
public int getPrimitiveType()
getPrimitiveType in interface ItemTypegetPrimitiveType in class NodeTestpublic java.util.Optional<IntSet> getRequiredNodeNames()
getRequiredNodeNames in class NodeTestpublic SchemaType getContentType()
getContentType in class NodeTestpublic AtomicType getAtomizedItemType()
getAtomizedItemType in interface ItemTypegetAtomizedItemType in class NodeTestpublic boolean isAtomizable(TypeHierarchy th)
isAtomizable in interface ItemTypeisAtomizable in class NodeTestth - the type hierarchy cachepublic int getFingerprint()
getFingerprint in class NodeTestpublic StructuredQName getMatchingNodeName()
NodeTestgetMatchingNodeName in class NodeTestpublic boolean isNillable()
isNillable in class NodeTestpublic int hashCode()
hashCode in class java.lang.Objectpublic boolean equals(java.lang.Object other)
equals in class java.lang.Objectpublic double getDefaultPriority()
getDefaultPriority in class NodeTestpublic NodeTest[] getComponentNodeTests()
public int getOperator()
Token.UNION,
Token.INTERSECT, Token.EXCEPT,public java.lang.String generateJavaScriptItemTypeTest(ItemType knownToBe, int targetVersion) throws XPathException
knownToBe - An item type that the supplied item is known to conform to; the generated code
can assume that the item is an instance of this type.targetVersion - The version of Saxon-JS for which code is being generated. Currently either 1 or 2.XPathException - if JS code cannot be generated for this item type, for example because
the test is schema-aware.public java.util.Optional<java.lang.String> explainMismatch(Item item, TypeHierarchy th)
explainMismatch in interface ItemTypeexplainMismatch in class NodeTestitem - the item that doesn't match this typeth - the type hierarchy cacheCopyright (c) 2004-2020 Saxonica Limited. All rights reserved.