From 657644f5904c56555d5ffca15ff297343cfbbd61 Mon Sep 17 00:00:00 2001 From: Glen Mazza Date: Mon, 22 Dec 2003 01:03:31 +0000 Subject: [PATCH] Removal of some of the temporary code elements (FO Element lists still pending.) git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197046 13f79535-47bb-0310-9956-ffa450edef68 --- src/codegen/fo-property-mapping.xsl | 12 +-- src/java/org/apache/fop/fo/FObj.java | 8 +- src/java/org/apache/fop/fo/PropertyList.java | 105 +++++++++++-------- 3 files changed, 64 insertions(+), 61 deletions(-) diff --git a/src/codegen/fo-property-mapping.xsl b/src/codegen/fo-property-mapping.xsl index a6a888898..ddcba5b1d 100644 --- a/src/codegen/fo-property-mapping.xsl +++ b/src/codegen/fo-property-mapping.xsl @@ -79,7 +79,6 @@ Software Foundation, please see . - String.put("", .maker("")); [PR_] =.maker(""); addPropertyName("", PR_); @@ -111,7 +110,6 @@ import org.apache.fop.fo.Property; public class PropertyMapping implements Constants { private static Property.Maker[] s_htGeneric = new Property.Maker[PROPERTY_COUNT+1]; - private static HashMap s_htGenericString = new HashMap(); // temporary private static HashMap s_htElementStringLists = new HashMap(); // temporary private static HashMap s_htElementLists = new HashMap(); private static HashMap s_htSubPropNames = new HashMap(); @@ -122,16 +120,12 @@ public class PropertyMapping implements Constant - public static HashMap getGenericStringMappings() { - return s_htGenericString; - } - - public static Set getElementStringMappings() { + public static Set getElementStringMappings() { // temporary return s_htElementStringLists.keySet(); } - public static HashMap getElementStringMapping(String elemName) { - return (HashMap)s_htElementStringLists.get(elemName); + public static HashMap getElementStringMapping(String elemName) { // temporary + return (HashMap) s_htElementStringLists.get(elemName); } public static Property.Maker[] getGenericMappings() { diff --git a/src/java/org/apache/fop/fo/FObj.java b/src/java/org/apache/fop/fo/FObj.java index 9e65217bc..9e72a1590 100644 --- a/src/java/org/apache/fop/fo/FObj.java +++ b/src/java/org/apache/fop/fo/FObj.java @@ -69,7 +69,6 @@ import org.xml.sax.Attributes; public class FObj extends FONode { private static final String FO_URI = "http://www.w3.org/1999/XSL/Format"; - public static HashMap propertyListStringTable = null; // temporary public static HashMap elementStringTable = null; // temporary public static Property.Maker[] propertyListTable = null; @@ -107,12 +106,7 @@ public class FObj extends FONode { */ public FObj(FONode parent) { super(parent); -/* temporary, during conversions to int constants only - if (propertyListStringTable == null) { - propertyListStringTable = new HashMap(); - propertyListStringTable.putAll(FOPropertyMapping.getGenericStringMappings()); - } -*/ + if (elementStringTable == null) { elementStringTable = new HashMap(); for (Iterator iter = diff --git a/src/java/org/apache/fop/fo/PropertyList.java b/src/java/org/apache/fop/fo/PropertyList.java index fc302897c..6c4485f66 100644 --- a/src/java/org/apache/fop/fo/PropertyList.java +++ b/src/java/org/apache/fop/fo/PropertyList.java @@ -57,6 +57,7 @@ import org.xml.sax.Attributes; // FOP import org.apache.fop.apps.FOPException; import org.apache.fop.fo.Property.Maker; +import org.apache.fop.fo.properties.Constants; import org.apache.fop.fo.properties.FOPropertyMapping; import org.apache.fop.fo.properties.WritingMode; @@ -207,7 +208,7 @@ public class PropertyList extends HashMap { return null; } } - return (Property)super.get(propertyName); + return (Property) super.get(propertyName); } /** @@ -483,6 +484,7 @@ public class PropertyList extends HashMap { String attributeName, String attributeValue) { + Property.Maker propertyMaker = null; FObj parentFO = fobj.findNearestAncestorFObj(); HashMap validProperties; @@ -492,8 +494,12 @@ public class PropertyList extends HashMap { String basePropertyName = findBasePropertyName(attributeName); String subPropertyName = findSubPropertyName(attributeName); - Property.Maker propertyMaker = findMaker(validProperties, - basePropertyName); + // convert the string (e.g., "font-size") to its const value (PR_FONT_SIZE). + int propertyId = FOPropertyMapping.getPropertyId(basePropertyName); + if (propertyId != -1) { // -1 w/namespaces (xmlns:fo, xmlns:svg, etc.) + propertyMaker = findMaker(validProperties, propertyId); + } + if (propertyMaker == null) { handleInvalidProperty(attributeName); return; @@ -532,10 +538,14 @@ public class PropertyList extends HashMap { } // If it is specified later in this list of Attributes, create it String basePropertyValue = attributes.getValue(basePropName); + if (basePropertyValue != null) { - baseProperty = propertyMaker.make(this, basePropertyValue, + int propertyId = FOPropertyMapping.getPropertyId(basePropertyValue); + if (propertyId != -1) { + baseProperty = propertyMaker.make(this, basePropertyValue, parentFO); - return baseProperty; + return baseProperty; + } } // Otherwise it is a compound property ?? // baseProperty = propertyMaker.makeCompound(propertyList, parentFO); @@ -659,46 +669,6 @@ public class PropertyList extends HashMap { return p; } - /** - * @param space namespace of element - * @param elementName name of element - * @param propertyName name of property - * @return the Property.Maker for this property - */ - protected Property.Maker findMaker(String space, String elementName, - String propertyName) { - return findMaker((HashMap) FObj.elementStringTable.get(elementName), - propertyName); - } - - /** - * Convenience function to return the Maker for a given property - * given the HashMap containing properties specific to this element. - * If table is non-null and - * @param elemTable Element-specific properties or null if none. - * @param propertyName Name of property. - * @return A Maker for this property. - */ - private Property.Maker findMaker(HashMap elemTable, - String propertyName) { - Property.Maker propertyMaker = null; - if (elemTable != null) { - propertyMaker = (Property.Maker) elemTable.get(propertyName); - } - if (propertyMaker == null) { - int propId = FOPropertyMapping.getPropertyId(propertyName); - if (propId != -1) { // -1 w/namespaces (xmlns:fo, xmlns:svg, etc.) - propertyMaker = FObj.propertyListTable[propId]; - } - // old string method (retained temporarily for troubleshooting) - // propertyMaker = - // (Property.Maker) FObj.propertyListStringTable.get(propertyName); - // System.out.println(propertyName + "= " + propId + " propMaker = " - // + ((propertyMaker != null) ? (propertyMaker.toString()) : "(is null)")); - } - return propertyMaker; - } - /** * * @param propertyList collection of properties @@ -750,5 +720,50 @@ public class PropertyList extends HashMap { } return b; } + + /** + * @param space namespace of element + * @param elementName name of element + * @param propertyName name of property + * @return the Property.Maker for this property + */ + protected Property.Maker findMaker(String space, String elementName, + String propertyName) { + + // convert the string (e.g., "font-size") to its const value (PR_FONT_SIZE). + int propertyId = FOPropertyMapping.getPropertyId(propertyName); + if (propertyId != -1) { // -1 w/namespaces (xmlns:fo, xmlns:svg, etc.) + return findMaker((HashMap) FObj.elementStringTable.get(elementName), + propertyId); + } else { + return null; + } + } + + /** + * Convenience function to return the Maker for a given property + * given the HashMap containing properties specific to this element. + * If table is non-null and + * @param elemTable Element-specific properties or null if none. + * @param propId int value of property (see property.Constants) + * @return A Maker for this property. + */ + private Property.Maker findMaker(HashMap elemTable, + int propertyId) { + + if (propertyId < 1 || propertyId > Constants.PROPERTY_COUNT) { + return null; + } + + Property.Maker propertyMaker = null; + if (elemTable != null) { + String propertyName = FOPropertyMapping.getPropertyName(propertyId); + propertyMaker = (Property.Maker) elemTable.get(propertyName); + } + if (propertyMaker == null) { + propertyMaker = FObj.propertyListTable[propertyId]; + } + return propertyMaker; + } } -- 2.39.5