garyp 00/11/08 18:25:08
Modified: java/src/org/apache/xpath/compiler Compiler.java
Log:
Change getWhatToShow to return a more accurate NodeFilter for node(),
Cleaned up handing of text nodes.
Revision Changes Path
1.12 +23 -2
xml-xalan/java/src/org/apache/xpath/compiler/Compiler.java
Index: Compiler.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xpath/compiler/Compiler.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- Compiler.java 2000/11/08 17:15:36 1.11
+++ Compiler.java 2000/11/09 02:25:07 1.12
@@ -775,11 +775,31 @@
case OpCodes.NODETYPE_COMMENT :
return NodeFilter.SHOW_COMMENT;
case OpCodes.NODETYPE_TEXT :
- return NodeFilter.SHOW_TEXT | NodeFilter.SHOW_COMMENT;
+// return NodeFilter.SHOW_TEXT | NodeFilter.SHOW_COMMENT;
+ return NodeFilter.SHOW_TEXT;
case OpCodes.NODETYPE_PI :
return NodeFilter.SHOW_PROCESSING_INSTRUCTION;
case OpCodes.NODETYPE_NODE :
- return NodeFilter.SHOW_ALL;
+// return NodeFilter.SHOW_ALL;
+ switch (axesType)
+ {
+ case OpCodes.FROM_NAMESPACE:
+ return NodeFilter.SHOW_ATTRIBUTE | NodeTest.SHOW_NAMESPACE;
+ case OpCodes.FROM_ATTRIBUTES :
+ case OpCodes.MATCH_ATTRIBUTE :
+ return NodeFilter.SHOW_ATTRIBUTE;
+ case OpCodes.FROM_SELF:
+ case OpCodes.FROM_ANCESTORS_OR_SELF:
+ case OpCodes.FROM_DESCENDANTS_OR_SELF:
+ return NodeFilter.SHOW_ALL;
+ default:
+ if (getOp(0) == OpCodes.OP_MATCHPATTERN)
+ return ~NodeFilter.SHOW_ATTRIBUTE
+ & ~NodeFilter.SHOW_DOCUMENT
+ & ~NodeFilter.SHOW_DOCUMENT_FRAGMENT;
+ else
+ return ~NodeFilter.SHOW_ATTRIBUTE;
+ }
case OpCodes.NODETYPE_ROOT :
return NodeFilter.SHOW_DOCUMENT | NodeFilter.SHOW_DOCUMENT_FRAGMENT;
case OpCodes.NODETYPE_FUNCTEST :
@@ -803,6 +823,7 @@
return NodeFilter.SHOW_ELEMENT;
}
default :
+ // System.err.println("We should never reach here.");
return NodeFilter.SHOW_ALL;
}
}