diff options
Diffstat (limited to 'src/codegen')
-rw-r--r-- | src/codegen/constants.xsl | 64 | ||||
-rw-r--r-- | src/codegen/prop-val-enum-interfaces.xsl | 115 | ||||
-rw-r--r-- | src/codegen/properties.xsl | 4 |
3 files changed, 62 insertions, 121 deletions
diff --git a/src/codegen/constants.xsl b/src/codegen/constants.xsl index 1a2097d10..871c79202 100644 --- a/src/codegen/constants.xsl +++ b/src/codegen/constants.xsl @@ -46,7 +46,7 @@ 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/>. ---> +--> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> @@ -86,7 +86,6 @@ Software Foundation, please see <http://www.apache.org/>. </xsl:for-each> </xsl:variable> - <xsl:variable name="elementlist"> <xsl:for-each select="document(elementfile)//element"> <xsl:sort select="name"/> @@ -100,7 +99,15 @@ Software Foundation, please see <http://www.apache.org/>. <xsl:text> -package org.apache.fop.fo.properties; +package org.apache.fop.fo; + +import org.apache.fop.fo.properties.GenericBoolean; +import org.apache.fop.fo.properties.GenericBorderStyle; +import org.apache.fop.fo.properties.GenericBreak; +import org.apache.fop.fo.properties.GenericCondBorderWidth; +import org.apache.fop.fo.properties.GenericCondPadding; +import org.apache.fop.fo.properties.GenericKeep; +import org.apache.fop.fo.properties.GenericSpace; public interface Constants {</xsl:text> @@ -114,7 +121,8 @@ public interface Constants {</xsl:text> int COMPOUND_SHIFT = 9; int PROPERTY_MASK = (1 << COMPOUND_SHIFT)-1; int COMPOUND_MASK = ~PROPERTY_MASK; - + int COMPOUND_COUNT = 11; + // property constants <xsl:call-template name="sortconsts"> <xsl:with-param name="consts" select="$propertylist"/> @@ -132,11 +140,59 @@ public interface Constants {</xsl:text> <xsl:with-param name="consts" select="$constlist"/> </xsl:call-template> + // Enumeration Interfaces +<xsl:apply-templates select="document(propfile)//property[not(@type='generic')]"/> + <xsl:text> } </xsl:text> </xsl:template> +<xsl:template match="property"> + <xsl:variable name="classname"> + <xsl:choose> + <xsl:when test="class-name"> + <xsl:value-of select="class-name"/> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="makeClassName"> + <xsl:with-param name="propstr" select="name"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="bEnum"> + <xsl:call-template name="hasEnum"/> + </xsl:variable> + <xsl:variable name="bSubpropEnum"> + <xsl:call-template name="hasSubpropEnum"/> + </xsl:variable> + + <xsl:if test="$bEnum='true' or contains($bSubpropEnum, 'true')"> + <!--redirect:write select="concat($classname, '.java')"--> + <!-- Handle enumeration values --> + <xsl:text> + public interface </xsl:text> + <xsl:value-of select="$classname"/> + <xsl:if test="use-generic"> + <xsl:text> extends </xsl:text> + <xsl:value-of select="use-generic"/> + <xsl:text>.Enums</xsl:text> + </xsl:if> + <xsl:text> {</xsl:text> + <xsl:for-each select="enumeration/value"> + <xsl:text> + int </xsl:text> + <xsl:value-of select="@const"/> + <xsl:text> = Constants.</xsl:text> + <xsl:value-of select="@const"/> + <xsl:text>;</xsl:text> + </xsl:for-each> + <xsl:text> } +</xsl:text> + </xsl:if> +</xsl:template> + <xsl:template name="sortconsts"> <xsl:param name="consts"/> <xsl:param name="prevconst"/> diff --git a/src/codegen/prop-val-enum-interfaces.xsl b/src/codegen/prop-val-enum-interfaces.xsl deleted file mode 100644 index 4832334bc..000000000 --- a/src/codegen/prop-val-enum-interfaces.xsl +++ /dev/null @@ -1,115 +0,0 @@ -<!-- -$Id$ -============================================================================ - 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 -APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU- -DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(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/>. ---> -<xsl:stylesheet version="1.0" - xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:lxslt="http://xml.apache.org/xslt" - xmlns:redirect="org.apache.xalan.xslt.extensions.Redirect" - extension-element-prefixes="redirect"> - -<xsl:include href="./propinc.xsl"/> - -<xsl:output method="text" /> - -<!-- zap text content --> -<xsl:template match="text()"/> - -<xsl:template match="property[not(@type='generic')]"> - <xsl:variable name="classname"> - <xsl:choose> - <xsl:when test="class-name"> - <xsl:value-of select="class-name"/> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="makeClassName"> - <xsl:with-param name="propstr" select="name"/> - </xsl:call-template> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:variable name="bEnum"> - <xsl:call-template name="hasEnum"/> - </xsl:variable> - <xsl:variable name="bSubpropEnum"> - <xsl:call-template name="hasSubpropEnum"/> - </xsl:variable> - - <xsl:if test="$bEnum='true' or contains($bSubpropEnum, 'true')"> - <redirect:write select="concat($classname, '.java')"> - <xsl:text>package org.apache.fop.fo.properties; - -import org.apache.fop.fo.Constants; - -</xsl:text> - <!-- Handle enumeration values --> - <xsl:text> - public interface </xsl:text> - <xsl:value-of select="$classname"/> - <xsl:if test="use-generic"> - <xsl:text> extends </xsl:text> - <xsl:value-of select="use-generic"/> - <xsl:text>.Enums</xsl:text> - </xsl:if> - <xsl:text> {</xsl:text> - <xsl:for-each select="enumeration/value"> - <xsl:text> - int </xsl:text> - <xsl:value-of select="@const"/> - <xsl:text> = Constants.</xsl:text> - <xsl:value-of select="@const"/> - <xsl:text>;</xsl:text> - </xsl:for-each> - <xsl:text> } -</xsl:text> - </redirect:write> - </xsl:if> -</xsl:template> - -</xsl:stylesheet> diff --git a/src/codegen/properties.xsl b/src/codegen/properties.xsl index c2e00f1a5..bf37f9ea6 100644 --- a/src/codegen/properties.xsl +++ b/src/codegen/properties.xsl @@ -306,7 +306,7 @@ Software Foundation, please see <http://www.apache.org/>. <!-- Is this property an Enum or derived from a generic Enum --> <xsl:variable name="enumconst"> <xsl:if test="enumeration/value and not(@type='generic')"> - <xsl:text> implements </xsl:text><xsl:value-of select="$eclassname"/></xsl:if> + <xsl:text> implements Constants</xsl:text></xsl:if> </xsl:variable> <redirect:write select="concat($classname, '.java')"> @@ -758,7 +758,7 @@ public class </xsl:text> int correspondingValue = correspondingProperty.getEnum();</xsl:text> <xsl:for-each select="derive/if"> <xsl:text> - if (correspondingValue == </xsl:text> + if (correspondingValue == Constants.</xsl:text> <xsl:value-of select="@match"/> <xsl:text>) computedProperty = new EnumProperty(</xsl:text> |