You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by vm...@apache.org on 2003/04/27 19:15:39 UTC

cvs commit: xml-fop/src/java/org/apache/fop/fo FOTreeBuilder.java

vmote       2003/04/27 10:15:39

  Modified:    src/java/org/apache/fop/fo FOTreeBuilder.java
  Log:
  Refactor:
  1. extract method findFOMaker from startElement.
  2. change name of startElement param uri to namespaceURI.
  
  Revision  Changes    Path
  1.2       +45 -33    xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java
  
  Index: FOTreeBuilder.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FOTreeBuilder.java	11 Mar 2003 13:05:19 -0000	1.1
  +++ FOTreeBuilder.java	27 Apr 2003 17:15:39 -0000	1.2
  @@ -3,34 +3,34 @@
    * ============================================================================
    *                    The Apache Software License, Version 1.1
    * ============================================================================
  - * 
  + *
    * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  - * 
  + *
    * Redistribution and use in source and binary forms, with or without modifica-
    * tion, are permitted provided that the following conditions are met:
  - * 
  + *
    * 1. Redistributions of source code must retain the above copyright notice,
    *    this list of conditions and the following disclaimer.
  - * 
  + *
    * 2. Redistributions in binary form must reproduce the above copyright notice,
    *    this list of conditions and the following disclaimer in the documentation
    *    and/or other materials provided with the distribution.
  - * 
  + *
    * 3. The end-user documentation included with the redistribution, if any, must
    *    include the following acknowledgment: "This product includes software
    *    developed by the Apache Software Foundation (http://www.apache.org/)."
    *    Alternately, this acknowledgment may appear in the software itself, if
    *    and wherever such third-party acknowledgments normally appear.
  - * 
  + *
    * 4. The names "FOP" and "Apache Software Foundation" must not be used to
    *    endorse or promote products derived from this software without prior
    *    written permission. For written permission, please contact
    *    apache@apache.org.
  - * 
  + *
    * 5. Products derived from this software may not be called "Apache", nor may
    *    "Apache" appear in their name, without prior written permission of the
    *    Apache Software Foundation.
  - * 
  + *
    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
    * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  @@ -42,12 +42,12 @@
    * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
    * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    * ============================================================================
  - * 
  + *
    * This software consists of voluntary contributions made by many individuals
    * on behalf of the Apache Software Foundation and was originally created by
    * James Tauber <jt...@jtauber.com>. For more information on the Apache
    * Software Foundation, please see <http://www.apache.org/>.
  - */ 
  + */
   package org.apache.fop.fo;
   
   // FOP
  @@ -66,6 +66,8 @@
   
   // Avalon
   import org.apache.avalon.framework.logger.Logger;
  +import org.apache.fop.fo.ElementMapping.*;
  +import org.apache.fop.fo.ElementMapping.*;
   
   /**
    * SAX Handler that builds the formatting object tree.
  @@ -199,34 +201,13 @@
        * SAX Handler for the start of an element
        * @see org.xml.sax.ContentHandler#startElement(String, String, String, Attributes)
        */
  -    public void startElement(String uri, String localName, String rawName,
  +    public void startElement(String namespaceURI, String localName, String rawName,
                                Attributes attlist) throws SAXException {
           /* the formatting object started */
           FONode fobj;
   
           /* the maker for the formatting object started */
  -        ElementMapping.Maker fobjMaker = null;
  -
  -        Map table = (Map)fobjTable.get(uri);
  -        if (table != null) {
  -            fobjMaker = (ElementMapping.Maker)table.get(localName);
  -            // try default
  -            if (fobjMaker == null) {
  -                fobjMaker = (ElementMapping.Maker)table.get(ElementMapping.DEFAULT);
  -            }
  -        }
  -
  -        if (fobjMaker == null) {
  -            if (getLogger().isWarnEnabled()) {
  -                getLogger().warn("Unknown formatting object " + uri + "^" + localName);
  -            }
  -            if (namespaces.contains(uri.intern())) {
  -                // fall back
  -                fobjMaker = new Unknown.Maker();
  -            } else {
  -                fobjMaker = new UnknownXMLObj.Maker(uri);
  -            }
  -        }
  +        ElementMapping.Maker fobjMaker = findFOMaker(namespaceURI, localName);
   
           try {
               fobj = fobjMaker.make(currentFObj);
  @@ -254,6 +235,37 @@
           }
   
           currentFObj = fobj;
  +    }
  +
  +    /**
  +     * Finds the Maker used to create FO objects of a particular type
  +     * @param namespaceURI URI for the namespace of the element
  +     * @param localName name of the Element
  +     * @return the ElementMapping.Maker that can create an FO object for this element
  +     */
  +    public Maker findFOMaker(String namespaceURI, String localName) {
  +      Map table = (Map)fobjTable.get(namespaceURI);
  +      Maker fobjMaker = null;
  +      if (table != null) {
  +          fobjMaker = (ElementMapping.Maker)table.get(localName);
  +          // try default
  +          if (fobjMaker == null) {
  +              fobjMaker = (ElementMapping.Maker)table.get(ElementMapping.DEFAULT);
  +          }
  +      }
  +
  +      if (fobjMaker == null) {
  +          if (getLogger().isWarnEnabled()) {
  +              getLogger().warn("Unknown formatting object " + namespaceURI + "^" + localName);
  +          }
  +          if (namespaces.contains(namespaceURI.intern())) {
  +              // fall back
  +              fobjMaker = new Unknown.Maker();
  +          } else {
  +              fobjMaker = new UnknownXMLObj.Maker(namespaceURI);
  +          }
  +      }
  +      return fobjMaker;
       }
   
       /**
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org