in src/main/java/org/apache/xml/security/transforms/implementations/TransformXPath2Filter.java [183:224]
public int isNodeIncludeDO(Node n, int level) {
int result = 1;
if (hasSubtractFilter) {
if (inSubtract == -1 || level <= inSubtract) {
if (inList(n, subtractNodes)) {
inSubtract = level;
} else {
inSubtract = -1;
}
}
if (inSubtract != -1){
result = -1;
}
}
if (result != -1 && hasIntersectFilter
&& (inIntersect == -1 || level <= inIntersect)) {
if (!inList(n, intersectNodes)) {
inIntersect = -1;
result = 0;
} else {
inIntersect = level;
}
}
if (level <= inUnion) {
inUnion = -1;
}
if (result == 1) {
return 1;
}
if (hasUnionFilter) {
if (inUnion == -1 && inList(n, unionNodes)) {
inUnion = level;
}
if (inUnion != -1) {
return 1;
}
result = 0;
}
return result;
}