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);
     }
   
     /**
  
  
  

Reply via email to