sboag 01/07/06 11:29:17 Modified: java/src/org/apache/xpath/axes ChildTestIterator.java OneStepIterator.java java/src/org/apache/xpath/functions FuncExtFunction.java Log: Fix for John G. for the SQL extension: handle return types of DTM and DTMAxisIterator. Revision Changes Path 1.10 +19 -0 xml-xalan/java/src/org/apache/xpath/axes/ChildTestIterator.java Index: ChildTestIterator.java =================================================================== RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/axes/ChildTestIterator.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- ChildTestIterator.java 2001/06/12 19:16:15 1.9 +++ ChildTestIterator.java 2001/07/06 18:29:17 1.10 @@ -117,6 +117,25 @@ } /** + * Create a ChildTestIterator object. + * + * @param compiler A reference to the Compiler that contains the op map. + * @param opPos The position within the op map, which contains the + * location path expression for this itterator. + * + * @throws javax.xml.transform.TransformerException + */ + ChildTestIterator(DTMAxisTraverser traverser) + throws javax.xml.transform.TransformerException + { + + super(null); + + m_traverser = traverser; + } + + + /** * Get a cloned Iterator that is reset to the beginning * of the query. * 1.3 +19 -1 xml-xalan/java/src/org/apache/xpath/axes/OneStepIterator.java Index: OneStepIterator.java =================================================================== RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/axes/OneStepIterator.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- OneStepIterator.java 2001/06/12 19:16:19 1.2 +++ OneStepIterator.java 2001/07/06 18:29:17 1.3 @@ -47,6 +47,23 @@ } /** + * Create a OneStepIterator object. + * + * @param compiler A reference to the Compiler that contains the op map. + * @param opPos The position within the op map, which contains the + * location path expression for this itterator. + * + * @throws javax.xml.transform.TransformerException + */ + public OneStepIterator(DTMAxisIterator iterator) + throws javax.xml.transform.TransformerException + { + super(null); + + m_iterator = iterator; + } + + /** * Initialize the context values for this expression * after it is cloned. * @@ -56,7 +73,8 @@ public void setRoot(int context, Object environment) { super.setRoot(context, environment); - m_iterator = m_cdtm.getAxisIterator(m_axis); + if(m_axis > -1) + m_iterator = m_cdtm.getAxisIterator(m_axis); m_iterator.setStartNode(m_context); } 1.12 +16 -0 xml-xalan/java/src/org/apache/xpath/functions/FuncExtFunction.java Index: FuncExtFunction.java =================================================================== RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/functions/FuncExtFunction.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- FuncExtFunction.java 2001/06/15 05:15:41 1.11 +++ FuncExtFunction.java 2001/07/06 18:29:17 1.12 @@ -68,6 +68,9 @@ import org.w3c.dom.DocumentFragment; import org.w3c.dom.traversal.NodeIterator; +import org.apache.xml.dtm.*; +import org.apache.xpath.axes.*; + /** * <meta name="usage" content="advanced"/> * An object of this class represents an extension call expression. When @@ -203,6 +206,19 @@ int handle = xctxt.getDTMHandleFromNode((DocumentFragment)val); result = new XRTreeFrag(handle, xctxt); + } + else if (val instanceof DTM) + { + DTM dtm = (DTM)val; + DTMIterator iterator = new DescendantIterator(); + iterator.setRoot(dtm.getDocument(), xctxt); + result = new XNodeSet(iterator); + } + else if (val instanceof DTMAxisIterator) + { + DTMAxisIterator iter = (DTMAxisIterator)val; + DTMIterator iterator = new OneStepIterator(iter); + result = new XNodeSet(iterator); } else if (val instanceof DTMIterator) { --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]