sboag 01/06/15 14:18:38
Modified: java/src/org/apache/xalan/extensions MethodResolver.java
java/src/org/apache/xalan/templates ElemValueOf.java
java/src/org/apache/xalan/transformer TransformerImpl.java
java/src/org/apache/xpath/objects XNodeSet.java XObject.java
Log:
Fixes for tooling.
Revision Changes Path
1.25 +2 -2
xml-xalan/java/src/org/apache/xalan/extensions/MethodResolver.java
Index: MethodResolver.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/extensions/MethodResolver.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- MethodResolver.java 2001/06/15 17:53:59 1.24
+++ MethodResolver.java 2001/06/15 21:18:34 1.25
@@ -805,13 +805,13 @@
if ( (javaClass == NodeIterator.class) ||
(javaClass == java.lang.Object.class) )
{
- return xobj.iter();
+ return xobj.nodeset();
}
// Same comment as above
// else if(NodeList.class.isAssignableFrom(javaClass))
else if(javaClass == NodeList.class)
{
- return xobj.mutableNodeset();
+ return xobj.nodelist();
}
// Same comment as above
// else if(Node.class.isAssignableFrom(javaClass))
1.16 +1 -2
xml-xalan/java/src/org/apache/xalan/templates/ElemValueOf.java
Index: ElemValueOf.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemValueOf.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- ElemValueOf.java 2001/06/12 19:15:12 1.15
+++ ElemValueOf.java 2001/06/15 21:18:35 1.16
@@ -266,7 +266,7 @@
transformer.getTraceManager().fireTraceEvent(this);
// Optimize for "."
- if (m_isDot &&!TransformerImpl.S_DEBUG)
+ if (false && m_isDot &&!TransformerImpl.S_DEBUG)
{
int child = xctxt.getCurrentNode();
DTM dtm = xctxt.getDTM(child);
@@ -312,7 +312,6 @@
transformer.getTraceManager().fireSelectedEvent(current, this,
"select", m_selectExpression, obj);
-
obj.dispatchCharactersEvents(rth);
}
else
1.99 +2 -2
xml-xalan/java/src/org/apache/xalan/transformer/TransformerImpl.java
Index: TransformerImpl.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/TransformerImpl.java,v
retrieving revision 1.98
retrieving revision 1.99
diff -u -r1.98 -r1.99
--- TransformerImpl.java 2001/06/15 05:14:10 1.98
+++ TransformerImpl.java 2001/06/15 21:18:35 1.99
@@ -1816,7 +1816,7 @@
ElemTemplateElement firstChild = elem.getFirstChildElem();
if(null == firstChild)
return "";
- if(elem.hasTextLitOnly())
+ if(elem.hasTextLitOnly() &&
org.apache.xalan.processor.TransformerFactoryImpl.m_optimize)
{
return ((ElemTextLiteral)firstChild).getNodeValue();
}
@@ -2164,7 +2164,7 @@
if (null == t)
return;
- if(elem.hasTextLitOnly())
+ if(elem.hasTextLitOnly() &&
org.apache.xalan.processor.TransformerFactoryImpl.m_optimize)
{
char[] chars = ((ElemTextLiteral)t).getChars();
try
1.14 +37 -0 xml-xalan/java/src/org/apache/xpath/objects/XNodeSet.java
Index: XNodeSet.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xpath/objects/XNodeSet.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- XNodeSet.java 2001/06/15 17:54:25 1.13
+++ XNodeSet.java 2001/06/15 21:18:37 1.14
@@ -60,6 +60,7 @@
//import org.w3c.dom.Text;
//import org.w3c.dom.DocumentFragment;
import org.w3c.dom.traversal.NodeIterator;
+import org.w3c.dom.NodeList;
import org.apache.xml.dtm.DTM;
import org.apache.xml.dtm.DTMIterator;
@@ -205,6 +206,29 @@
}
/**
+ * Directly call the
+ * characters method on the passed ContentHandler for the
+ * string-value. Multiple calls to the
+ * ContentHandler's characters methods may well occur for a single call to
+ * this method.
+ *
+ * @param ch A non-null reference to a ContentHandler.
+ *
+ * @throws org.xml.sax.SAXException
+ */
+ public void dispatchCharactersEvents(org.xml.sax.ContentHandler ch)
+ throws org.xml.sax.SAXException
+ {
+ DTMIterator nl = iter();
+ int node = nl.nextNode();
+
+ if(node != DTM.NULL)
+ {
+ m_dtmMgr.getDTM(node).dispatchCharactersEvents(node, ch, false);
+ }
+ }
+
+ /**
* Cast result object to an XMLString.
*
* @return The document fragment node data or the empty string.
@@ -312,6 +336,19 @@
{
return new org.apache.xml.dtm.ref.DTMNodeIterator(iter());
}
+
+ /**
+ * Cast result object to a nodelist. Always issues an error.
+ *
+ * @return null
+ *
+ * @throws javax.xml.transform.TransformerException
+ */
+ public NodeList nodelist() throws javax.xml.transform.TransformerException
+ {
+ return new org.apache.xml.dtm.ref.DTMNodeList(iter());
+ }
+
// /**
// * Return a java object that's closest to the representation
1.13 +18 -0 xml-xalan/java/src/org/apache/xpath/objects/XObject.java
Index: XObject.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/objects/XObject.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- XObject.java 2001/06/15 17:54:26 1.12
+++ XObject.java 2001/06/15 21:18:37 1.13
@@ -59,6 +59,7 @@
import org.w3c.dom.DocumentFragment;
//import org.w3c.dom.Text;
//import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
import org.w3c.dom.traversal.NodeIterator;
import org.apache.xml.dtm.DTM;
import org.apache.xml.dtm.DTMIterator;
@@ -456,6 +457,23 @@
return null;
}
+
+ /**
+ * Cast result object to a nodelist. Always issues an error.
+ *
+ * @return null
+ *
+ * @throws javax.xml.transform.TransformerException
+ */
+ public NodeList nodelist() throws javax.xml.transform.TransformerException
+ {
+
+ error(XPATHErrorResources.ER_CANT_CONVERT_TO_NODELIST,
+ new Object[]{ getTypeString() }); //"Can not convert
"+getTypeString()+" to a NodeList!");
+
+ return null;
+ }
+
/**
* Cast result object to a nodelist. Always issues an error.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]