You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by sb...@locus.apache.org on 2000/08/07 04:49:53 UTC
cvs commit: xml-xalan/java/src/org/apache/xpath/axes AttributeWalker.java AxesWalker.java ChildWalker.java FilterExprWalker.java
sboag 00/08/06 19:49:53
Modified: java/src/org/apache/xpath/axes AttributeWalker.java
AxesWalker.java ChildWalker.java
FilterExprWalker.java
Log:
Minor changes for SQL extension library support... namely the addition of support of the NodeSetFilter interface.
Revision Changes Path
1.2 +1 -1 xml-xalan/java/src/org/apache/xpath/axes/AttributeWalker.java
Index: AttributeWalker.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/axes/AttributeWalker.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AttributeWalker.java 2000/07/05 14:45:11 1.1
+++ AttributeWalker.java 2000/08/07 02:49:52 1.2
@@ -89,7 +89,7 @@
}
/**
- * Moves the <code>TreeWalker</code> to the first visible child of the
+ * Moves the <code>TreeWalker</code> to the first visible child of the
* current node, and returns the new node. If the current node has no
* visible children, returns <code>null</code> , and retains the current
* node.
1.3 +69 -21 xml-xalan/java/src/org/apache/xpath/axes/AxesWalker.java
Index: AxesWalker.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/axes/AxesWalker.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- AxesWalker.java 2000/07/30 22:41:48 1.2
+++ AxesWalker.java 2000/08/07 02:49:53 1.3
@@ -69,6 +69,7 @@
import org.apache.xpath.DOMHelper;
import org.apache.xpath.Expression;
import org.apache.xpath.patterns.NodeTest;
+import org.apache.xpath.patterns.NodeTestFilter;
import org.apache.xalan.utils.PrefixResolver;
@@ -111,7 +112,7 @@
public void init(Compiler compiler, int opPos, int stepType)
throws org.xml.sax.SAXException
{
- int nodeTestOpPos = compiler.getFirstChildPosOfStep(opPos);
+ // int nodeTestOpPos = compiler.getFirstChildPosOfStep(opPos);
m_stepType = stepType;
switch(stepType)
{
@@ -265,6 +266,7 @@
public void reset()
{
setCurrentNode(m_root);
+ m_isFresh = true;
}
/**
@@ -704,14 +706,28 @@
= new java.util.StringTokenizer(clName, ".");
while(tokenizer.hasMoreTokens())
clName = tokenizer.nextToken();
- String rootName = (null == m_root)
- ? "null"
- : m_root.getNodeName()
- + "{"+((org.apache.xalan.stree.Child)m_root).getUid()+"}";
- String currentNodeName = (null == m_root)
- ? "null"
- : m_currentNode.getNodeName()
- + "{"+((org.apache.xalan.stree.Child)m_currentNode).getUid()+"}";
+ String rootName;
+ String currentNodeName;
+ try
+ {
+ rootName = (null == m_root)
+ ? "null"
+ : m_root.getNodeName()
+ + "{"+((org.apache.xalan.stree.Child)m_root).getUid()+"}";
+ currentNodeName = (null == m_root)
+ ? "null"
+ : m_currentNode.getNodeName()
+ + "{"+((org.apache.xalan.stree.Child)m_currentNode).getUid()+"}";
+ }
+ catch(ClassCastException cce)
+ {
+ rootName = (null == m_root)
+ ? "null"
+ : m_root.getNodeName();
+ currentNodeName = (null == m_root)
+ ? "null"
+ : m_currentNode.getNodeName();
+ }
return clName+"["+rootName+"]["+currentNodeName+"]";
}
@@ -721,9 +737,18 @@
*/
protected String nodeToString(Node n)
{
- return (null != n)
- ? n.getNodeName()+"{"+ ((org.apache.xalan.stree.Child)n).getUid() + "}"
- : "null";
+ try
+ {
+ return (null != n)
+ ? n.getNodeName()+"{"+ ((org.apache.xalan.stree.Child)n).getUid() + "}"
+ : "null";
+ }
+ catch(ClassCastException cce)
+ {
+ return (null != n)
+ ? n.getNodeName()
+ : "null";
+ }
}
/**
@@ -752,10 +777,16 @@
System.out.print("\n");
if(null != m_currentNode)
{
- org.apache.xalan.stree.Child n = ((org.apache.xalan.stree.Child)m_currentNode);
- int depth = n.getLevel();
- for(int i = 0; i < depth; i++)
- System.out.print(" ");
+ try
+ {
+ org.apache.xalan.stree.Child n = ((org.apache.xalan.stree.Child)m_currentNode);
+ int depth = n.getLevel();
+ for(int i = 0; i < depth; i++)
+ System.out.print(" ");
+ }
+ catch(ClassCastException cce)
+ {
+ }
}
System.out.print(s);
}
@@ -826,10 +857,16 @@
System.out.print("\n============================\n");
if(null != m_currentNode)
{
- org.apache.xalan.stree.Child n = ((org.apache.xalan.stree.Child)m_currentNode);
- int depth = n.getLevel();
- for(int i = 0; i < depth; i++)
- System.out.print("+");
+ try
+ {
+ org.apache.xalan.stree.Child n = ((org.apache.xalan.stree.Child)m_currentNode);
+ int depth = n.getLevel();
+ for(int i = 0; i < depth; i++)
+ System.out.print("+");
+ }
+ catch(ClassCastException cce)
+ {
+ }
}
System.out.print(" "+this.toString()+", "+nodeToString(this.m_currentNode));
printWaiters();
@@ -1084,6 +1121,15 @@
{
if(m_isFresh)
m_isFresh = false;
+
+ try
+ {
+ // I wish there was a better way to do this...
+ // System.out.println("\nCalling setNodeTest on: "+(this.getCurrentNode()));
+ ((NodeTestFilter)this.getCurrentNode()).setNodeTest(this);
+ }
+ catch(ClassCastException cce){}
+
Node next = this.firstChild();
while(null == next)
@@ -1120,7 +1166,7 @@
if(DEBUG_TRAVERSAL && !m_didDumpAll)
{
m_didDumpAll = true;
- Node doc = (Node.DOCUMENT_NODE == m_root.getNodeType()) ? m_root : m_root.getOwnerDocument();
+ // Node doc = (Node.DOCUMENT_NODE == m_root.getNodeType()) ? m_root : m_root.getOwnerDocument();
// dumpAll(doc, 0);
}
@@ -1221,6 +1267,7 @@
{
walker = (AxesWalker)walker.clone();
// walker.pushState();
+ // System.out.println("AxesWalker - Calling setRoot(1)");
walker.setRoot(nextNode);
if(DEBUG_WAITING)
printDebug("clone: "+walker.toString());
@@ -1231,6 +1278,7 @@
}
else
{
+ // System.out.println("AxesWalker - Calling setRoot(2)");
walker.setRoot(nextNode);
}
walker.m_prevWalker = prev;
1.2 +5 -0 xml-xalan/java/src/org/apache/xpath/axes/ChildWalker.java
Index: ChildWalker.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/axes/ChildWalker.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ChildWalker.java 2000/07/05 14:45:11 1.1
+++ ChildWalker.java 2000/08/07 02:49:53 1.2
@@ -80,8 +80,11 @@
*/
public void setRoot(Node root)
{
+ // System.out.println("ChildWalker.setRoot");
m_nextLevelAmount = root.hasChildNodes() ? 1 : 0;
+ // System.out.println("Back from calling hasChildNodes");
super.setRoot(root);
+ // System.out.println("Exiting ChildWalker.setRoot");
}
/**
@@ -94,9 +97,11 @@
*/
public Node firstChild()
{
+ // System.out.println("ChildWalker.firstChild");
m_nextLevelAmount = 0;
if(m_root == m_currentNode)
{
+ // System.out.println("ChildWalker - Calling getFirstChild");
return setCurrentIfNotNull(this.m_root.getFirstChild());
}
else
1.3 +15 -2 xml-xalan/java/src/org/apache/xpath/axes/FilterExprWalker.java
Index: FilterExprWalker.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/axes/FilterExprWalker.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- FilterExprWalker.java 2000/07/30 22:41:48 1.2
+++ FilterExprWalker.java 2000/08/07 02:49:53 1.3
@@ -65,6 +65,7 @@
import org.apache.xalan.utils.PrefixResolver;
import org.apache.xpath.compiler.Compiler;
import org.apache.xpath.compiler.OpCodes;
+import org.apache.xpath.patterns.NodeTestFilter;
import java.util.Vector;
@@ -122,7 +123,9 @@
xctxt.pushCurrentNode(root);
xctxt.getVarStack().setCurrentStackFrameIndex(m_lpi.getStackFrameIndex());
xctxt.setNamespaceContext(m_lpi.getPrefixResolver());
+ // System.out.println("calling m_expr.execute(m_lpi.getXPathContext())");
XObject obj = m_expr.execute(m_lpi.getXPathContext());
+ // System.out.println("Back from m_expr.execute(m_lpi.getXPathContext()): "+obj);
m_nodeSet = (null != obj) ? obj.nodeset() : null;
m_peek = null;
}
@@ -206,7 +209,16 @@
else
{
if(null != m_nodeSet)
+ {
+ try
+ {
+ // I wish there was a better way to do this...
+ ((NodeTestFilter)m_nodeSet).setNodeTest(this);
+ }
+ catch(ClassCastException cce){}
+
next = m_nodeSet.nextNode();
+ }
else
next = null;
}
@@ -219,7 +231,8 @@
}
else
{
- m_nextLevelAmount = (next.hasChildNodes() ? 1 : 0);
+ // System.out.println("FilterExprWalker.getNextNode");
+ m_nextLevelAmount = (next.hasChildNodes() ? 1 : 0);
/* ...WAIT TO SEE IF WE REALLY NEED THIS...
m_peek = m_nodeSet.nextNode();
if(null == m_peek)
@@ -231,7 +244,7 @@
}
*/
}
-
+ // System.out.println("FilterExprWalker.getNextNode - Returning: "+next);
return setCurrentIfNotNull(next);
}