aboutsummaryrefslogtreecommitdiffstats
path: root/src/codegen
diff options
context:
space:
mode:
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/constants.xsl64
-rw-r--r--src/codegen/prop-val-enum-interfaces.xsl115
-rw-r--r--src/codegen/properties.xsl4
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 &lt;&lt; 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>