/** * Get a mask indicating which kinds of nodes this NodeTest can match. This is a combination * of bits: 1<<Type.ELEMENT for element nodes, 1<<Type.TEXT for text nodes, and so on. */ public int getNodeKindMask() { switch (operator) { case Token.UNION: return nodetest1.getNodeKindMask() | nodetest2.getNodeKindMask(); case Token.INTERSECT: return nodetest1.getNodeKindMask() & nodetest2.getNodeKindMask(); case Token.EXCEPT: return nodetest1.getNodeKindMask(); default: return 0; } }
/** * Get a mask indicating which kinds of nodes this NodeTest can match. This is a combination * of bits: 1<<Type.ELEMENT for element nodes, 1<<Type.TEXT for text nodes, and so on. */ public int getNodeKindMask() { switch (operator) { case Token.UNION: return nodetest1.getNodeKindMask() | nodetest2.getNodeKindMask(); case Token.INTERSECT: return nodetest1.getNodeKindMask() & nodetest2.getNodeKindMask(); case Token.EXCEPT: return nodetest1.getNodeKindMask(); default: return 0; } }
return in; int kinds = ((NodeTest)in).getNodeKindMask(); if (alwaysUntyped) {
return in; int kinds = ((NodeTest)in).getNodeKindMask(); if (alwaysUntyped) {
return in; int kinds = ((NodeTest)in).getNodeKindMask(); if (alwaysUntyped) {
int kinds = ((NodeTest)in).getNodeKindMask(); if (!isSchemaAware) {
int kinds = ((NodeTest)in).getNodeKindMask(); if (!isSchemaAware) {
if (it instanceof NodeTest) { boolean maybeEmpty = Cardinality.allowsZero(components[i].getCardinality()); int possibleNodeKinds = ((NodeTest)it).getNodeKindMask(); if ((possibleNodeKinds & 1<<Type.TEXT) != 0) {
if (it instanceof NodeTest) { boolean maybeEmpty = Cardinality.allowsZero(components[i].getCardinality()); int possibleNodeKinds = ((NodeTest)it).getNodeKindMask(); if ((possibleNodeKinds & 1<<Type.TEXT) != 0) {
int m1 = ((NodeTest)t1).getNodeKindMask(); int m2 = ((NodeTest)t2).getNodeKindMask(); if ((m1 & m2) == 0) { return DISJOINT;
int m1 = ((NodeTest)t1).getNodeKindMask(); int m2 = ((NodeTest)t2).getNodeKindMask(); if ((m1 & m2) == 0) { return DISJOINT;
ItemType it = components[i].getItemType(th); if (it instanceof NodeTest) { int possibleNodeKinds = ((NodeTest)it).getNodeKindMask(); if (possibleNodeKinds == 1<<Type.ATTRIBUTE) { XPathException de = new XPathException("Cannot create an attribute node whose parent is a document node");
ItemType it = components[i].getItemType(th); if (it instanceof NodeTest) { int possibleNodeKinds = ((NodeTest)it).getNodeKindMask(); if (possibleNodeKinds == 1<<Type.ATTRIBUTE) { XPathException de = new XPathException("Cannot create an attribute node whose parent is a document node");