mmidy 01/01/24 13:17:58
Modified: java/compat_src/org/apache/xalan/xpath/xml
ProblemListenerDefault.java
java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java
Log:
fixes for problem listener for compatibility
Revision Changes Path
1.3 +178 -11
xml-xalan/java/compat_src/org/apache/xalan/xpath/xml/ProblemListenerDefault.java
Index: ProblemListenerDefault.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/compat_src/org/apache/xalan/xpath/xml/ProblemListenerDefault.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ProblemListenerDefault.java 2001/01/22 22:32:55 1.2
+++ ProblemListenerDefault.java 2001/01/24 21:17:55 1.3
@@ -59,6 +59,8 @@
import org.w3c.dom.*;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXParseException;
+import org.xml.sax.SAXException;
+import javax.xml.transform.TransformerException;
/**
* <meta name="usage" content="general"/>
@@ -68,27 +70,27 @@
* if they wish an object instance to be called when a problem
* event occurs.
*/
-public class ProblemListenerDefault implements ProblemListener
+public class ProblemListenerDefault extends
org.apache.xml.utils.DefaultErrorHandler implements ProblemListener
{
- ErrorHandler m_errorHandler = null;
+ //ErrorHandler m_errorHandler = null;
ProblemListener m_problemListener = null;
public ProblemListenerDefault()
{
- m_errorHandler = new org.apache.xml.utils.DefaultErrorHandler();
+ //m_errorHandler = new org.apache.xml.utils.DefaultErrorHandler();
}
- public ProblemListenerDefault(ErrorHandler handler, ProblemListener l)
+ public ProblemListenerDefault(ProblemListener l)
{
- m_errorHandler = handler;
+ //m_errorHandler = handler;
m_problemListener = l;
}
-
+ /*
public void setErrorHandler (ErrorHandler handler)
{
m_errorHandler = handler;
}
-
+ */
public void setProblemListener (ProblemListener l)
{
m_problemListener = l;
@@ -96,7 +98,7 @@
public ErrorHandler getErrorHandler ()
{
- return m_errorHandler;
+ return this; // m_errorHandler;
}
public ProblemListener getProblemListener ()
@@ -110,7 +112,8 @@
*/
public boolean message(String msg)
{
-
+ if (m_problemListener != null)
+ m_problemListener.message(msg);
synchronized (this)
{
new java.io.PrintWriter( System.err, true ).println( msg );
@@ -127,9 +130,173 @@
if (m_problemListener != null)
m_problemListener.problem(where, classification, styleNode,
sourceNode, msg, id, lineNo, charOffset);
else
- m_errorHandler.error(new SAXParseException(msg, null, id, lineNo,
charOffset));
+ this.error(new SAXParseException(msg, null, id, lineNo, charOffset));
return false;
- }
+ }
+ public void warning(SAXParseException exception) throws SAXException
+ {
+ if (m_problemListener == null)
+ {
+ super.warning(exception);
+ }
+ else
+ {
+ m_problemListener.problem(XSLPROCESSOR, WARNING,
+ null, null,
+ exception.getMessage(),
+ exception.getSystemId(),
+ exception.getLineNumber(),
+ exception.getColumnNumber());
+ }
+ }
+
+ public void error(SAXParseException exception) throws SAXException
+ {
+ if (m_problemListener == null)
+ {
+ super.error(exception);
+ }
+ else
+ {
+ m_problemListener.problem(XSLPROCESSOR, ERROR,
+ null, null,
+ exception.getMessage(),
+ exception.getSystemId(),
+ exception.getLineNumber(),
+ exception.getColumnNumber());
+ }
+ }
+
+ public void fatalError(SAXParseException exception) throws SAXException
+ {
+ if (m_problemListener == null)
+ {
+ super.fatalError(exception);
+ }
+ else
+ {
+ m_problemListener.problem(XSLPROCESSOR, ERROR,
+ null, null,
+ exception.getMessage(),
+ exception.getSystemId(),
+ exception.getLineNumber(),
+ exception.getColumnNumber());
+ }
+ }
+
+ public void warning(TransformerException exception) throws
TransformerException
+ {
+ if (m_problemListener == null)
+ {
+ super.warning(exception);
+ }
+ else
+ {
+ try{
+ javax.xml.transform.SourceLocator locator = exception.getLocator();
+ if (locator != null)
+ {
+ m_problemListener.problem(XSLPROCESSOR, WARNING,
+ null, null,
+ exception.getMessage(),
+ locator.getSystemId(),
+ locator.getLineNumber(),
+ locator.getColumnNumber());
+ }
+ else
+ {
+ m_problemListener.problem(XSLPROCESSOR, MESSAGE,
+ null, null,
+ exception.getMessage(),
+ null,
+ 0,
+ 0);
+ }
+ }
+ catch (SAXException se)
+ {
+ throw new TransformerException(se);
+ }
+ }
+ }
+
+ public void error(TransformerException exception) throws
TransformerException
+ {
+ if (m_problemListener == null)
+ {
+ super.error(exception);
+ }
+ else
+ {
+ try{
+ javax.xml.transform.SourceLocator locator = exception.getLocator();
+ if (locator != null)
+ {
+ m_problemListener.problem(XSLPROCESSOR, ERROR,
+ null, null,
+ exception.getMessage(),
+ locator.getSystemId(),
+ locator.getLineNumber(),
+ locator.getColumnNumber());
+ }
+ else
+ {
+ m_problemListener.problem(XSLPROCESSOR, ERROR,
+ null, null,
+ exception.getMessage(),
+ null,
+ 0,
+ 0);
+ }
+ }
+ catch (SAXException se)
+ {
+ throw new TransformerException(se);
+ }
+ }
+ }
+
+ public void fatalError(TransformerException exception) throws
TransformerException
+ {
+ if (m_problemListener == null)
+ {
+ super.fatalError(exception);
+ }
+ else
+ {
+ try{
+ javax.xml.transform.SourceLocator locator = exception.getLocator();
+ if (locator != null)
+ {
+ m_problemListener.problem(XSLPROCESSOR, ERROR,
+ null, null,
+ exception.getMessage(),
+ locator.getSystemId(),
+ locator.getLineNumber(),
+ locator.getColumnNumber());
+ }
+ else
+ {
+ m_problemListener.problem(XSLPROCESSOR, ERROR,
+ null, null,
+ exception.getMessage(),
+ null,
+ 0,
+ 0);
+ }
+ }
+ catch (SAXException se)
+ {
+ throw new TransformerException(se);
+ }
+ }
+ }
+ /*
+ private class MessageMgr extends org.apache.xalan.transformer.MsgMgr
+ {
+ void MessageMgr()
+ {}
+ }*/
}
1.11 +11 -5
xml-xalan/java/compat_src/org/apache/xalan/xslt/XSLTEngineImpl.java
Index: XSLTEngineImpl.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/compat_src/org/apache/xalan/xslt/XSLTEngineImpl.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- XSLTEngineImpl.java 2001/01/24 15:13:42 1.10
+++ XSLTEngineImpl.java 2001/01/24 21:17:57 1.11
@@ -512,9 +512,10 @@
if(null != sourceTree)
{
- TransformerImpl t;
try{
- t = (TransformerImpl)templates.newTransformer();
+ m_transformerImpl = (TransformerImpl)templates.newTransformer();
+ if (m_problemListener != null)
+ m_transformerImpl.setErrorListener(m_problemListener);
}
catch (TransformerConfigurationException tce)
{
@@ -528,12 +529,12 @@
{
String name = (String)keys.nextElement();
Object value = m_stylesheetParams.get(name);
- t.setParameter(name, null, value);
+ m_transformerImpl.setParameter(name, null, value);
}
}
try{
- t.transform(inputSource.getSourceObject(),
+ m_transformerImpl.transform(inputSource.getSourceObject(),
outputTarget.getResultObject());
}
catch (TransformerException te)
@@ -701,6 +702,8 @@
if (m_transformerImpl == null)
m_transformerImpl = (TransformerImpl)sr.newTransformer();
m_transformerImpl.setStylesheet(sr);
+ if (m_problemListener != null)
+ m_transformerImpl.setErrorListener(m_problemListener);
}
/**
@@ -2423,7 +2426,10 @@
if (l instanceof ProblemListenerDefault)
m_problemListener = (ProblemListenerDefault)l;
else
- m_problemListener = new
ProblemListenerDefault((DefaultErrorHandler)m_tfactory.getErrorListener(), l);
+ m_problemListener = new ProblemListenerDefault(l);
+ if (m_transformerImpl != null)
+ m_transformerImpl.setErrorListener(m_problemListener);
+ m_tfactory.setErrorListener(m_problemListener);
}
/**