Author: vsiveton
Date: Sat Dec 6 06:48:32 2008
New Revision: 723991
URL: http://svn.apache.org/viewvc?rev=723991&view=rev
Log:
o move the MessagesErrorHandler class as an inner class of AbstractXmlParser
Removed:
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/MessagesErrorHandler.java
Modified:
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java
Modified:
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java?rev=723991&r1=723990&r2=723991&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java
(original)
+++
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java
Sat Dec 6 06:48:32 2008
@@ -34,6 +34,7 @@
import javax.xml.XMLConstants;
+import org.apache.maven.doxia.logging.Log;
import org.apache.maven.doxia.macro.MacroExecutionException;
import org.apache.maven.doxia.markup.XmlMarkup;
import org.apache.maven.doxia.sink.Sink;
@@ -51,7 +52,9 @@
import org.xml.sax.SAXException;
import org.xml.sax.SAXNotRecognizedException;
import org.xml.sax.SAXNotSupportedException;
+import org.xml.sax.SAXParseException;
import org.xml.sax.XMLReader;
+import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.helpers.XMLReaderFactory;
/**
@@ -584,6 +587,98 @@
}
/**
+ * Convenience class to beautify <code>SAXParseException</code> messages.
+ */
+ static class MessagesErrorHandler
+ extends DefaultHandler
+ {
+ private static final int TYPE_UNKNOWN = 0;
+
+ private static final int TYPE_WARNING = 1;
+
+ private static final int TYPE_ERROR = 2;
+
+ private static final int TYPE_FATAL = 3;
+
+ private final Log log;
+
+ public MessagesErrorHandler( Log log )
+ {
+ this.log = log;
+ }
+
+ /** [EMAIL PROTECTED] */
+ public void warning( SAXParseException e )
+ throws SAXException
+ {
+ processException( TYPE_WARNING, e );
+ }
+
+ /** [EMAIL PROTECTED] */
+ public void error( SAXParseException e )
+ throws SAXException
+ {
+ processException( TYPE_ERROR, e );
+ }
+
+ /** [EMAIL PROTECTED] */
+ public void fatalError( SAXParseException e )
+ throws SAXException
+ {
+ processException( TYPE_FATAL, e );
+ }
+
+ private void processException( int type, SAXParseException e )
+ throws SAXException
+ {
+ StringBuffer message = new StringBuffer();
+
+ switch ( type )
+ {
+ case TYPE_WARNING:
+ message.append( "Warning:" );
+ break;
+
+ case TYPE_ERROR:
+ message.append( "Error:" );
+ break;
+
+ case TYPE_FATAL:
+ message.append( "Fatal error:" );
+ break;
+
+ case TYPE_UNKNOWN:
+ default:
+ message.append( "Unknown:" );
+ break;
+ }
+
+ message.append( EOL );
+ message.append( " Public ID: " + e.getPublicId() ).append( EOL );
+ message.append( " System ID: " + e.getSystemId() ).append( EOL );
+ message.append( " Line number: " + e.getLineNumber() ).append(
EOL );
+ message.append( " Column number: " + e.getColumnNumber()
).append( EOL );
+ message.append( " Message: " + e.getMessage() ).append( EOL );
+
+ switch ( type )
+ {
+ case TYPE_WARNING:
+ if ( log.isWarnEnabled() )
+ {
+ log.warn( message.toString() );
+ }
+ break;
+
+ case TYPE_UNKNOWN:
+ case TYPE_ERROR:
+ case TYPE_FATAL:
+ default:
+ throw new SAXException( message.toString() );
+ }
+ }
+ }
+
+ /**
* Implementation of the callback mechanism <code>EntityResolver</code>.
* Using a mechanism of cached files in temp dir to improve performance
when using the <code>XMLReader</code>.
*/