donaldp     2002/07/07 00:11:45

  Modified:    xmlbundle/src/java/org/apache/excalibur/xmlizer/impl
                        HTMLXMLizer.java TextXMLizer.java
  Log:
  Rework parser aquisition as lookup() will never return null.
  
  Revision  Changes    Path
  1.5       +23 -18    
jakarta-avalon-excalibur/xmlbundle/src/java/org/apache/excalibur/xmlizer/impl/HTMLXMLizer.java
  
  Index: HTMLXMLizer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/xmlbundle/src/java/org/apache/excalibur/xmlizer/impl/HTMLXMLizer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- HTMLXMLizer.java  7 Jul 2002 05:27:27 -0000       1.4
  +++ HTMLXMLizer.java  7 Jul 2002 07:11:45 -0000       1.5
  @@ -41,23 +41,15 @@
       extends AbstractLogEnabled
       implements XMLizer, ThreadSafe, Composable
   {
  -    /** The component manager */
  -    protected ComponentManager manager;
  -
       /** Used for converting DOM -> SAX */
  -    protected static Properties format;
  +    private static final Properties c_format = createFormatProperties();
   
  -    static
  -    {
  -        format = new Properties();
  -        format.put( OutputKeys.METHOD, "xml" );
  -        format.put( OutputKeys.OMIT_XML_DECLARATION, "no" );
  -        format.put( OutputKeys.INDENT, "yes" );
  -    }
  +    /** The component manager */
  +    private ComponentManager m_manager;
   
       public void compose( final ComponentManager manager )
       {
  -        this.manager = manager;
  +        this.m_manager = manager;
       }
   
       /**
  @@ -115,9 +107,10 @@
           try
           {
               final Transformer transformer = 
TransformerFactory.newInstance().newTransformer();
  -            transformer.setOutputProperties( format );
  -            transformer.transform( new DOMSource( xhtmlconvert.parseDOM( stream, 
null ) ),
  -                                   new StreamResult( writer ) );
  +            transformer.setOutputProperties( c_format );
  +            final DOMSource domSource = new DOMSource( xhtmlconvert.parseDOM( 
stream, null ) );
  +            final StreamResult streamResult = new StreamResult( writer );
  +            transformer.transform( domSource, streamResult );
           }
           catch( final TransformerException te )
           {
  @@ -128,15 +121,27 @@
               new InputSource( new java.io.StringReader( writer.toString() ) );
           if( null != systemID ) inputSource.setSystemId( systemID );
   
  -        final Parser parser = (Parser)manager.lookup( Parser.ROLE );
  +        final Parser parser = (Parser)m_manager.lookup( Parser.ROLE );
           try
           {
               parser.parse( inputSource, handler );
           }
           finally
           {
  -            manager.release( parser );
  +            m_manager.release( parser );
           }
  +    }
  +
  +    /**
  +     * Utility method to create format properties for XMLizer.
  +     */
  +    private static Properties createFormatProperties()
  +    {
  +        final Properties format = new Properties();
  +        format.put( OutputKeys.METHOD, "xml" );
  +        format.put( OutputKeys.OMIT_XML_DECLARATION, "no" );
  +        format.put( OutputKeys.INDENT, "yes" );
  +        return format;
       }
   }
   
  
  
  
  1.2       +45 -34    
jakarta-avalon-excalibur/xmlbundle/src/java/org/apache/excalibur/xmlizer/impl/TextXMLizer.java
  
  Index: TextXMLizer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/xmlbundle/src/java/org/apache/excalibur/xmlizer/impl/TextXMLizer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TextXMLizer.java  24 Apr 2002 07:46:30 -0000      1.1
  +++ TextXMLizer.java  7 Jul 2002 07:11:45 -0000       1.2
  @@ -7,16 +7,15 @@
    */
   package org.apache.excalibur.xmlizer.impl;
   
  -import java.io.InputStream;
   import java.io.IOException;
  +import java.io.InputStream;
   import org.apache.avalon.excalibur.xml.Parser;
  -import org.apache.excalibur.xmlizer.XMLizer;
  -import org.apache.avalon.framework.logger.AbstractLogEnabled;
  -import org.apache.avalon.framework.component.Component;
   import org.apache.avalon.framework.component.ComponentException;
   import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.component.Composable;
  +import org.apache.avalon.framework.logger.AbstractLogEnabled;
   import org.apache.avalon.framework.thread.ThreadSafe;
  +import org.apache.excalibur.xmlizer.XMLizer;
   import org.xml.sax.ContentHandler;
   import org.xml.sax.InputSource;
   import org.xml.sax.SAXException;
  @@ -28,72 +27,84 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Carsten Ziegeler</a>
    * @version CVS $Revision$ $Date$
    */
  -
   public class TextXMLizer
       extends AbstractLogEnabled
       implements XMLizer, ThreadSafe, Composable
   {
  -
       /** The component manager */
  -    protected ComponentManager manager;
  +    private ComponentManager m_manager;
   
       /**
        * Composable interface
        */
  -    public void compose(ComponentManager manager)
  +    public void compose( final ComponentManager manager )
       {
  -        this.manager = manager;
  +        m_manager = manager;
       }
   
       /**
        * Generates SAX events from the given input stream
        * <b>NOTE</b> : if the implementation can produce lexical events, care should 
be taken
  -     * that <code>handler</code> can actually be a {@link XMLConsumer} that accepts 
such
  +     * that <code>handler</code> can actually be a
  +     * {@link org.apache.avalon.excalibur.xml.XMLConsumer} that accepts such
        * events or directly implements the LexicalHandler interface!
        * @param stream    the data
        * @param mimeType  the mime-type for the data
        * @param systemID  the URI defining the data (this is optional and can be null)
        * @throws ComponentException if no suitable converter is found
        */
  -    public void toSAX( InputStream    stream,
  -                       String         mimeType,
  -                       String         systemID,
  -                       ContentHandler handler )
  +    public void toSAX( final InputStream stream,
  +                       final String mimeType,
  +                       final String systemID,
  +                       final ContentHandler handler )
           throws SAXException, IOException, ComponentException
       {
  -        if ( null == stream ) {
  -            throw new ComponentException("Stream must not be null.");
  +        if( null == stream )
  +        {
  +            final String message = "Stream must not be null.";
  +            throw new ComponentException( message );
           }
  -        if ( null == handler ) {
  -            throw new ComponentException("Handler must not be null.");
  +        if( null == handler )
  +        {
  +            final String message = "Handler must not be null.";
  +            throw new ComponentException( message );
           }
  -        if ( null == mimeType ) {
  -            if ( this.getLogger().isDebugEnabled() ) {
  -                this.getLogger().debug("No mime-type for xmlizing " + systemID +
  -                                       ", guessing text/xml");
  +
  +        if( null == mimeType )
  +        {
  +            if( getLogger().isDebugEnabled() )
  +            {
  +                final String message =
  +                    "No mime-type for xmlizing " + systemID +
  +                    ", guessing text/xml";
  +                getLogger().debug( message );
               }
  -        } else if ( !mimeType.equalsIgnoreCase("text/xml") ) {
  -            if ( this.getLogger().isDebugEnabled() ) {
  -                this.getLogger().debug("Mime-type " + mimeType +
  -                                       "not supported for xmlizing " + systemID +
  -                                       ", guessing text/xml");
  +        }
  +        else if( !mimeType.equalsIgnoreCase( "text/xml" ) )
  +        {
  +            if( getLogger().isDebugEnabled() )
  +            {
  +                final String message = "Mime-type " + mimeType +
  +                    "not supported for xmlizing " + systemID +
  +                    ", guessing text/xml";
  +                getLogger().debug( message );
               }
           }
   
  -
           final InputSource inputSource = new InputSource( stream );
  -        if ( null != systemID ) inputSource.setSystemId( systemID );
  +        if( null != systemID )
  +        {
  +            inputSource.setSystemId( systemID );
  +        }
   
  -        Parser parser = null;
  +        final Parser parser = (Parser)m_manager.lookup( Parser.ROLE );
           try
           {
  -            parser = (Parser)this.manager.lookup( Parser.ROLE );
  -
               parser.parse( inputSource, handler );
           }
           finally
           {
  -            if( parser != null ) this.manager.release( parser );
  +            m_manager.release( parser );
           }
       }
   
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to