aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Victor Mote <vmote@apache.org>2003-04-27 17:15:39 +0000
committerWilliam Victor Mote <vmote@apache.org>2003-04-27 17:15:39 +0000
commit994e1cb87a928cc26bff25f6a3342b5b12a0ce71 (patch)
tree5de505b204c9dbb906fcb60b605856d725de600c
parentb15bd3fa6e4f18383749f5385b6b9250e8e61169 (diff)
downloadxmlgraphics-fop-994e1cb87a928cc26bff25f6a3342b5b12a0ce71.tar.gz
xmlgraphics-fop-994e1cb87a928cc26bff25f6a3342b5b12a0ce71.zip
Refactor:
1. extract method findFOMaker from startElement. 2. change name of startElement param uri to namespaceURI. git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196353 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/java/org/apache/fop/fo/FOTreeBuilder.java78
1 files changed, 45 insertions, 33 deletions
diff --git a/src/java/org/apache/fop/fo/FOTreeBuilder.java b/src/java/org/apache/fop/fo/FOTreeBuilder.java
index 4a10e4889..ddc2d1417 100644
--- a/src/java/org/apache/fop/fo/FOTreeBuilder.java
+++ b/src/java/org/apache/fop/fo/FOTreeBuilder.java
@@ -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 <jtauber@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 @@ import org.xml.sax.Attributes;
// 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 @@ public class FOTreeBuilder extends DefaultHandler {
* 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);
@@ -257,6 +238,37 @@ public class FOTreeBuilder extends DefaultHandler {
}
/**
+ * 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;
+ }
+
+ /**
* Resets this object for another run.
*/
public void reset() {