diff options
author | Glen Mazza <gmazza@apache.org> | 2003-12-22 23:23:05 +0000 |
---|---|---|
committer | Glen Mazza <gmazza@apache.org> | 2003-12-22 23:23:05 +0000 |
commit | 7e2dc7024920266049af76f136d84087d752faba (patch) | |
tree | febf48e816e51e231f4fd8bb11310b29d90b5a81 | |
parent | 69f8d9589aa5aaa56d1814c26e52f358cbf2d41f (diff) | |
download | xmlgraphics-fop-7e2dc7024920266049af76f136d84087d752faba.tar.gz xmlgraphics-fop-7e2dc7024920266049af76f136d84087d752faba.zip |
Initial Check-in of PropertySets.java and .xsl. (Similar to Alt-Design's
PropertySets, however uses integer arrays to identify those properties
relevant for an FO.)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197050 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | build.xml | 2 | ||||
-rw-r--r-- | src/codegen/property-sets.xsl | 235 | ||||
-rw-r--r-- | src/java/org/apache/fop/fo/FObj.java | 1 | ||||
-rw-r--r-- | src/java/org/apache/fop/fo/Property.java | 1 | ||||
-rw-r--r-- | src/java/org/apache/fop/fo/PropertyList.java | 1 | ||||
-rw-r--r-- | src/java/org/apache/fop/fo/PropertyManager.java | 1 | ||||
-rw-r--r-- | src/java/org/apache/fop/fo/PropertySets.java | 1295 |
7 files changed, 1532 insertions, 4 deletions
@@ -920,6 +920,8 @@ list of possible build targets. <target name="xsltToJava" > <style in="src\codegen\constants.xml" style="src\codegen\constants.xsl" out="Constants.java"/> + <style in="src/codegen/foelements.xml" style="src/codegen/property-sets.xsl" + out="PropertySets.java"/> </target> <!-- =================================================================== --> diff --git a/src/codegen/property-sets.xsl b/src/codegen/property-sets.xsl new file mode 100644 index 000000000..09848b7d7 --- /dev/null +++ b/src/codegen/property-sets.xsl @@ -0,0 +1,235 @@ +<!-- $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"> +<xsl:output method="text" /> + +<xsl:include href="propinc.xsl"/> + +<xsl:template match="root"> + <xsl:text> +package org.apache.fop.fo; +import java.util.BitSet; + +public class PropertySets { + public static short[][] mapping = null; + + public static void initialize() { + mapping = new short[Constants.ELEMENT_COUNT][]; +</xsl:text> + <xsl:apply-templates/> + <xsl:text> + boolean loop = true; + while (loop) { + loop = false; +</xsl:text> +<xsl:apply-templates mode="content"/> + } +<xsl:apply-templates mode="mapping"/> + <xsl:text> + } + + private static short[] makeSparseIndices(BitSet set) { + short[] indices = new short[Constants.PROPERTY_COUNT]; + indices[0] = (short) (set.cardinality() + 1); + int j = 1; + for (int i = set.nextSetBit(0); i >= 0; i = set.nextSetBit(i+1)) { + indices[i] = (short) j++; + } + return indices; + } + + private static boolean mergeContent(BitSet node, BitSet content, + boolean loop) + { + int c = node.cardinality(); + node.or(content); + if (c == node.cardinality()) + return loop; + return true; + } + + public static short[] getPropertySet(int elementId) { + if (mapping == null) + initialize(); + return mapping[elementId]; + } +} + </xsl:text> +</xsl:template> + +<xsl:template match="common"> + <xsl:variable name="name" select="name"/> + <xsl:text> + BitSet </xsl:text><xsl:value-of select="$name"/> + <xsl:text> = new BitSet(); +</xsl:text> + <xsl:apply-templates select="property"> + <xsl:with-param name="setname" select="$name"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="common/property"> + <xsl:param name="setname"/> + + <xsl:text> </xsl:text> + <xsl:value-of select="../name"/><xsl:text>.set(Constants.PR_</xsl:text> + <xsl:call-template name="makeEnumConstant"> + <xsl:with-param name="propstr" select="." /> + </xsl:call-template>); +</xsl:template> + + +<xsl:template match="element"> +<!-- + <xsl:text> + public static final int FO_</xsl:text> + <xsl:call-template name="makeEnumName"> + <xsl:with-param name="propstr" select="name" /> + </xsl:call-template> + <xsl:text> = </xsl:text> + <xsl:value-of select="count(preceding-sibling::element)"/>; +--> + + <xsl:variable name="name"> + <xsl:text>fo_</xsl:text> + <xsl:value-of select="translate(name, '-', '_')"/> + </xsl:variable> + <xsl:text> + BitSet </xsl:text><xsl:value-of select="$name"/> + <xsl:text> = new BitSet(); +</xsl:text> + <xsl:apply-templates select="common-ref | property"> + <xsl:with-param name="setname" select="$name"/> + </xsl:apply-templates> +</xsl:template> + + +<xsl:template match="element" mode="content"> + <xsl:variable name="name"> + <xsl:text>fo_</xsl:text> + <xsl:value-of select="translate(name, '-', '_')"/> + </xsl:variable> + + <xsl:apply-templates select="content"> + <xsl:with-param name="setname" select="$name"/> + </xsl:apply-templates> +</xsl:template> + + +<xsl:template match="element/content"> + <xsl:param name="setname"/> + + <xsl:variable name="name"> + <xsl:text>fo_</xsl:text> + <xsl:value-of select="translate(., '-', '_')"/> + </xsl:variable> + + <xsl:choose> + <xsl:when test=". = '%block;'"> + loop = mergeContent(<xsl:value-of select="$setname"/>, fo_block, loop); + loop = mergeContent(<xsl:value-of select="$setname"/>, fo_block_container, loop); + loop = mergeContent(<xsl:value-of select="$setname"/>, fo_table_and_caption, loop); + loop = mergeContent(<xsl:value-of select="$setname"/>, fo_table, loop); + loop = mergeContent(<xsl:value-of select="$setname"/>, fo_list_block, loop); + </xsl:when> + <xsl:when test=". = '%inline;'"> + loop = mergeContent(<xsl:value-of select="$setname"/>, fo_bidi_override, loop); + loop = mergeContent(<xsl:value-of select="$setname"/>, fo_character, loop); + loop = mergeContent(<xsl:value-of select="$setname"/>, fo_external_graphic, loop); + loop = mergeContent(<xsl:value-of select="$setname"/>, fo_instream_foreign_object, loop); + loop = mergeContent(<xsl:value-of select="$setname"/>, fo_inline, loop); + loop = mergeContent(<xsl:value-of select="$setname"/>, fo_inline_container, loop); + loop = mergeContent(<xsl:value-of select="$setname"/>, fo_leader, loop); + loop = mergeContent(<xsl:value-of select="$setname"/>, fo_page_number, loop); + loop = mergeContent(<xsl:value-of select="$setname"/>, fo_page_number_citation, loop); + loop = mergeContent(<xsl:value-of select="$setname"/>, fo_basic_link, loop); + loop = mergeContent(<xsl:value-of select="$setname"/>, fo_multi_toggle, loop); + </xsl:when> + <xsl:otherwise> + loop = mergeContent(<xsl:value-of select="$setname"/>, <xsl:value-of select="$name"/>, loop); + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="element" mode="mapping"> + <xsl:variable name="name"> + <xsl:text>fo_</xsl:text> + <xsl:value-of select="translate(name, '-', '_')"/> + </xsl:variable> + <xsl:text> mapping[Constants.</xsl:text> + <xsl:call-template name="makeEnumConstant"> + <xsl:with-param name="propstr" select="$name" /> + </xsl:call-template>] = makeSparseIndices(<xsl:value-of select="$name"/>); +</xsl:template> + +<xsl:template match="element/common-ref"> + <xsl:param name="setname"/> + + <xsl:text> </xsl:text> + <xsl:value-of select="$setname"/>.or(<xsl:value-of select="."/>); +</xsl:template> + +<xsl:template match="element/property"> + <xsl:param name="setname"/> + + <xsl:text> </xsl:text> + <xsl:value-of select="$setname"/><xsl:text>.set(Constants.PR_</xsl:text> + <xsl:call-template name="makeEnumConstant"> + <xsl:with-param name="propstr" select="." /> + </xsl:call-template>); +</xsl:template> + +<xsl:template match="text()"/> +<xsl:template match="text()" mode="content"/> +<xsl:template match="text()" mode="mapping"/> + +</xsl:stylesheet> + diff --git a/src/java/org/apache/fop/fo/FObj.java b/src/java/org/apache/fop/fo/FObj.java index 1f5fcaadd..ea0cf09d6 100644 --- a/src/java/org/apache/fop/fo/FObj.java +++ b/src/java/org/apache/fop/fo/FObj.java @@ -59,7 +59,6 @@ import java.util.Set; import org.apache.fop.apps.FOPException; import org.apache.fop.fo.flow.Marker; -import org.apache.fop.fo.Constants; import org.apache.fop.fo.properties.FOPropertyMapping; import org.xml.sax.Attributes; diff --git a/src/java/org/apache/fop/fo/Property.java b/src/java/org/apache/fop/fo/Property.java index 30c323d03..592d28863 100644 --- a/src/java/org/apache/fop/fo/Property.java +++ b/src/java/org/apache/fop/fo/Property.java @@ -61,7 +61,6 @@ import org.apache.fop.datatypes.Space; import org.apache.fop.fo.expr.Numeric; import org.apache.fop.fo.expr.PropertyParser; import org.apache.fop.fo.expr.PropertyInfo; -import org.apache.fop.fo.Constants; import org.apache.fop.fo.properties.FOPropertyMapping; import org.apache.fop.apps.FOPException; import java.util.Vector; diff --git a/src/java/org/apache/fop/fo/PropertyList.java b/src/java/org/apache/fop/fo/PropertyList.java index 0038a42e9..2ceac6681 100644 --- a/src/java/org/apache/fop/fo/PropertyList.java +++ b/src/java/org/apache/fop/fo/PropertyList.java @@ -57,7 +57,6 @@ import org.xml.sax.Attributes; // FOP import org.apache.fop.apps.FOPException; import org.apache.fop.fo.Property.Maker; -import org.apache.fop.fo.Constants; import org.apache.fop.fo.properties.FOPropertyMapping; import org.apache.fop.fo.properties.WritingMode; diff --git a/src/java/org/apache/fop/fo/PropertyManager.java b/src/java/org/apache/fop/fo/PropertyManager.java index eaa51451f..0d8775c06 100644 --- a/src/java/org/apache/fop/fo/PropertyManager.java +++ b/src/java/org/apache/fop/fo/PropertyManager.java @@ -67,7 +67,6 @@ import org.apache.fop.traits.BlockProps; import org.apache.fop.traits.InlineProps; import org.apache.fop.traits.SpaceVal; import org.apache.fop.traits.LayoutProps; // keep, break, span, space? -import org.apache.fop.fo.Constants; import org.apache.fop.fo.properties.Span; import org.apache.fop.fonts.FontMetrics; import org.apache.fop.fo.properties.CommonHyphenation; diff --git a/src/java/org/apache/fop/fo/PropertySets.java b/src/java/org/apache/fop/fo/PropertySets.java new file mode 100644 index 000000000..bdcb1f06d --- /dev/null +++ b/src/java/org/apache/fop/fo/PropertySets.java @@ -0,0 +1,1295 @@ +/* + * $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/>. + */ + +/* autogenerated from src/codegen/property-sets.xsl */ + +package org.apache.fop.fo; +import java.util.BitSet; + +public class PropertySets { + public static short[][] mapping = null; + + public static void initialize() { + mapping = new short[Constants.ELEMENT_COUNT][]; + + BitSet CommonAccessibilityProperties = new BitSet(); + CommonAccessibilityProperties.set(Constants.PR_SOURCE_DOCUMENT); + CommonAccessibilityProperties.set(Constants.PR_ROLE); + + BitSet CommonAbsolutePositionProperties = new BitSet(); + CommonAbsolutePositionProperties.set(Constants.PR_ABSOLUTE_POSITION); + CommonAbsolutePositionProperties.set(Constants.PR_POSITION); + CommonAbsolutePositionProperties.set(Constants.PR_TOP); + CommonAbsolutePositionProperties.set(Constants.PR_RIGHT); + CommonAbsolutePositionProperties.set(Constants.PR_BOTTOM); + CommonAbsolutePositionProperties.set(Constants.PR_LEFT); + + BitSet CommonAuralProperties = new BitSet(); + CommonAuralProperties.set(Constants.PR_AZIMUTH); + CommonAuralProperties.set(Constants.PR_CUE_AFTER); + CommonAuralProperties.set(Constants.PR_CUE_BEFORE); + CommonAuralProperties.set(Constants.PR_CUE); + CommonAuralProperties.set(Constants.PR_ELEVATION); + CommonAuralProperties.set(Constants.PR_PAUSE_AFTER); + CommonAuralProperties.set(Constants.PR_PAUSE_BEFORE); + CommonAuralProperties.set(Constants.PR_PAUSE); + CommonAuralProperties.set(Constants.PR_PITCH); + CommonAuralProperties.set(Constants.PR_PITCH_RANGE); + CommonAuralProperties.set(Constants.PR_PLAY_DURING); + CommonAuralProperties.set(Constants.PR_RICHNESS); + CommonAuralProperties.set(Constants.PR_SPEAK); + CommonAuralProperties.set(Constants.PR_SPEAK_HEADER); + CommonAuralProperties.set(Constants.PR_SPEAK_NUMERAL); + CommonAuralProperties.set(Constants.PR_SPEAK_PUNCTUATION); + CommonAuralProperties.set(Constants.PR_SPEECH_RATE); + CommonAuralProperties.set(Constants.PR_STRESS); + CommonAuralProperties.set(Constants.PR_VOICE_FAMILY); + CommonAuralProperties.set(Constants.PR_VOLUME); + + BitSet CommonBorderPaddingBackgroundProperties = new BitSet(); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BACKGROUND_ATTACHMENT); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BACKGROUND_COLOR); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BACKGROUND_IMAGE); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BACKGROUND_REPEAT); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BACKGROUND_POSITION_HORIZONTAL); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BACKGROUND_POSITION_VERTICAL); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_BEFORE_COLOR); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_BEFORE_STYLE); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_BEFORE_WIDTH); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_AFTER_COLOR); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_AFTER_STYLE); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_AFTER_WIDTH); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_START_COLOR); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_START_STYLE); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_START_WIDTH); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_END_COLOR); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_END_STYLE); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_END_WIDTH); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_TOP_COLOR); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_TOP_STYLE); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_TOP_WIDTH); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_BOTTOM_COLOR); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_BOTTOM_STYLE); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_BOTTOM_WIDTH); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_LEFT_COLOR); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_LEFT_STYLE); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_LEFT_WIDTH); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_RIGHT_COLOR); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_RIGHT_STYLE); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_RIGHT_WIDTH); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_PADDING_BEFORE); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_PADDING_AFTER); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_PADDING_START); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_PADDING_END); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_PADDING_TOP); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_PADDING_BOTTOM); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_PADDING_LEFT); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_PADDING_RIGHT); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_STYLE); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_WIDTH); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_COLOR); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_TOP); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_BOTTOM); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_LEFT); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_BORDER_RIGHT); + CommonBorderPaddingBackgroundProperties.set(Constants.PR_PADDING); + + BitSet CommonFontProperties = new BitSet(); + CommonFontProperties.set(Constants.PR_FONT); + CommonFontProperties.set(Constants.PR_FONT_FAMILY); + CommonFontProperties.set(Constants.PR_FONT_SELECTION_STRATEGY); + CommonFontProperties.set(Constants.PR_FONT_SIZE); + CommonFontProperties.set(Constants.PR_FONT_STRETCH); + CommonFontProperties.set(Constants.PR_FONT_SIZE_ADJUST); + CommonFontProperties.set(Constants.PR_FONT_STYLE); + CommonFontProperties.set(Constants.PR_FONT_VARIANT); + CommonFontProperties.set(Constants.PR_FONT_WEIGHT); + + BitSet CommonHyphenationProperties = new BitSet(); + CommonHyphenationProperties.set(Constants.PR_COUNTRY); + CommonHyphenationProperties.set(Constants.PR_LANGUAGE); + CommonHyphenationProperties.set(Constants.PR_SCRIPT); + CommonHyphenationProperties.set(Constants.PR_HYPHENATE); + CommonHyphenationProperties.set(Constants.PR_HYPHENATION_CHARACTER); + CommonHyphenationProperties.set(Constants.PR_HYPHENATION_PUSH_CHARACTER_COUNT); + CommonHyphenationProperties.set(Constants.PR_HYPHENATION_REMAIN_CHARACTER_COUNT); + + BitSet CommonMarginPropertiesBlock = new BitSet(); + CommonMarginPropertiesBlock.set(Constants.PR_MARGIN); + CommonMarginPropertiesBlock.set(Constants.PR_MARGIN_TOP); + CommonMarginPropertiesBlock.set(Constants.PR_MARGIN_BOTTOM); + CommonMarginPropertiesBlock.set(Constants.PR_MARGIN_LEFT); + CommonMarginPropertiesBlock.set(Constants.PR_MARGIN_RIGHT); + CommonMarginPropertiesBlock.set(Constants.PR_SPACE_BEFORE); + CommonMarginPropertiesBlock.set(Constants.PR_SPACE_AFTER); + CommonMarginPropertiesBlock.set(Constants.PR_START_INDENT); + CommonMarginPropertiesBlock.set(Constants.PR_END_INDENT); + + BitSet CommonMarginPropertiesInline = new BitSet(); + CommonMarginPropertiesInline.set(Constants.PR_SPACE_END); + CommonMarginPropertiesInline.set(Constants.PR_SPACE_START); + + BitSet CommonRelativePositionProperties = new BitSet(); + CommonRelativePositionProperties.set(Constants.PR_RELATIVE_POSITION); + + BitSet fo_root = new BitSet(); + fo_root.set(Constants.PR_MEDIA_USAGE); + + BitSet fo_declaration = new BitSet(); + + BitSet fo_color_profile = new BitSet(); + fo_color_profile.set(Constants.PR_SRC); + fo_color_profile.set(Constants.PR_COLOR_PROFILE_NAME); + fo_color_profile.set(Constants.PR_RENDERING_INTENT); + + BitSet fo_page_sequence = new BitSet(); + fo_page_sequence.set(Constants.PR_COUNTRY); + fo_page_sequence.set(Constants.PR_FORMAT); + fo_page_sequence.set(Constants.PR_LANGUAGE); + fo_page_sequence.set(Constants.PR_LETTER_VALUE); + fo_page_sequence.set(Constants.PR_GROUPING_SEPARATOR); + fo_page_sequence.set(Constants.PR_GROUPING_SIZE); + fo_page_sequence.set(Constants.PR_ID); + fo_page_sequence.set(Constants.PR_INITIAL_PAGE_NUMBER); + fo_page_sequence.set(Constants.PR_FORCE_PAGE_COUNT); + fo_page_sequence.set(Constants.PR_MASTER_REFERENCE); + + BitSet fo_layout_master_set = new BitSet(); + fo_layout_master_set.set(Constants.PR_MASTER_NAME); + + BitSet fo_page_sequence_master = new BitSet(); + fo_page_sequence_master.set(Constants.PR_MASTER_NAME); + + BitSet fo_single_page_master_reference = new BitSet(); + fo_single_page_master_reference.set(Constants.PR_MASTER_REFERENCE); + + BitSet fo_repeatable_page_master_reference = new BitSet(); + fo_repeatable_page_master_reference.set(Constants.PR_MASTER_REFERENCE); + fo_repeatable_page_master_reference.set(Constants.PR_MAXIMUM_REPEATS); + + BitSet fo_repeatable_page_master_alternatives = new BitSet(); + fo_repeatable_page_master_alternatives.set(Constants.PR_MAXIMUM_REPEATS); + + BitSet fo_conditional_page_master_reference = new BitSet(); + fo_conditional_page_master_reference.set(Constants.PR_MASTER_REFERENCE); + fo_conditional_page_master_reference.set(Constants.PR_PAGE_POSITION); + fo_conditional_page_master_reference.set(Constants.PR_ODD_OR_EVEN); + fo_conditional_page_master_reference.set(Constants.PR_BLANK_OR_NOT_BLANK); + + BitSet fo_simple_page_master = new BitSet(); + fo_simple_page_master.or(CommonMarginPropertiesBlock); + fo_simple_page_master.set(Constants.PR_MASTER_NAME); + fo_simple_page_master.set(Constants.PR_PAGE_HEIGHT); + fo_simple_page_master.set(Constants.PR_PAGE_WIDTH); + fo_simple_page_master.set(Constants.PR_REFERENCE_ORIENTATION); + fo_simple_page_master.set(Constants.PR_WRITING_MODE); + + BitSet fo_region_body = new BitSet(); + fo_region_body.or(CommonBorderPaddingBackgroundProperties); + fo_region_body.or(CommonMarginPropertiesBlock); + fo_region_body.set(Constants.PR_CLIP); + fo_region_body.set(Constants.PR_COLUMN_COUNT); + fo_region_body.set(Constants.PR_COLUMN_GAP); + fo_region_body.set(Constants.PR_DISPLAY_ALIGN); + fo_region_body.set(Constants.PR_OVERFLOW); + fo_region_body.set(Constants.PR_REGION_NAME); + fo_region_body.set(Constants.PR_REFERENCE_ORIENTATION); + fo_region_body.set(Constants.PR_WRITING_MODE); + + BitSet fo_region_before = new BitSet(); + fo_region_before.or(CommonBorderPaddingBackgroundProperties); + fo_region_before.set(Constants.PR_CLIP); + fo_region_before.set(Constants.PR_DISPLAY_ALIGN); + fo_region_before.set(Constants.PR_EXTENT); + fo_region_before.set(Constants.PR_OVERFLOW); + fo_region_before.set(Constants.PR_PRECEDENCE); + fo_region_before.set(Constants.PR_REGION_NAME); + fo_region_before.set(Constants.PR_REFERENCE_ORIENTATION); + fo_region_before.set(Constants.PR_WRITING_MODE); + + BitSet fo_region_after = new BitSet(); + fo_region_after.or(CommonBorderPaddingBackgroundProperties); + fo_region_after.set(Constants.PR_CLIP); + fo_region_after.set(Constants.PR_DISPLAY_ALIGN); + fo_region_after.set(Constants.PR_EXTENT); + fo_region_after.set(Constants.PR_OVERFLOW); + fo_region_after.set(Constants.PR_PRECEDENCE); + fo_region_after.set(Constants.PR_REGION_NAME); + fo_region_after.set(Constants.PR_REFERENCE_ORIENTATION); + fo_region_after.set(Constants.PR_WRITING_MODE); + + BitSet fo_region_start = new BitSet(); + fo_region_start.or(CommonBorderPaddingBackgroundProperties); + fo_region_start.set(Constants.PR_CLIP); + fo_region_start.set(Constants.PR_DISPLAY_ALIGN); + fo_region_start.set(Constants.PR_EXTENT); + fo_region_start.set(Constants.PR_OVERFLOW); + fo_region_start.set(Constants.PR_REGION_NAME); + fo_region_start.set(Constants.PR_REFERENCE_ORIENTATION); + fo_region_start.set(Constants.PR_WRITING_MODE); + + BitSet fo_region_end = new BitSet(); + fo_region_end.or(CommonBorderPaddingBackgroundProperties); + fo_region_end.set(Constants.PR_CLIP); + fo_region_end.set(Constants.PR_DISPLAY_ALIGN); + fo_region_end.set(Constants.PR_EXTENT); + fo_region_end.set(Constants.PR_OVERFLOW); + fo_region_end.set(Constants.PR_REGION_NAME); + fo_region_end.set(Constants.PR_REFERENCE_ORIENTATION); + fo_region_end.set(Constants.PR_WRITING_MODE); + + BitSet fo_flow = new BitSet(); + fo_flow.set(Constants.PR_FLOW_NAME); + + BitSet fo_static_content = new BitSet(); + fo_static_content.set(Constants.PR_FLOW_NAME); + + BitSet fo_title = new BitSet(); + fo_title.or(CommonAccessibilityProperties); + fo_title.or(CommonAuralProperties); + fo_title.or(CommonBorderPaddingBackgroundProperties); + fo_title.or(CommonFontProperties); + fo_title.or(CommonMarginPropertiesInline); + fo_title.set(Constants.PR_COLOR); + fo_title.set(Constants.PR_LINE_HEIGHT); + fo_title.set(Constants.PR_VISIBILITY); + + BitSet fo_block = new BitSet(); + fo_block.or(CommonAccessibilityProperties); + fo_block.or(CommonAuralProperties); + fo_block.or(CommonBorderPaddingBackgroundProperties); + fo_block.or(CommonFontProperties); + fo_block.or(CommonHyphenationProperties); + fo_block.or(CommonMarginPropertiesBlock); + fo_block.or(CommonRelativePositionProperties); + fo_block.set(Constants.PR_PAGE_BREAK_AFTER); + fo_block.set(Constants.PR_PAGE_BREAK_BEFORE); + fo_block.set(Constants.PR_BREAK_AFTER); + fo_block.set(Constants.PR_BREAK_BEFORE); + fo_block.set(Constants.PR_COLOR); + fo_block.set(Constants.PR_TEXT_DEPTH); + fo_block.set(Constants.PR_TEXT_ALTITUDE); + fo_block.set(Constants.PR_HYPHENATION_KEEP); + fo_block.set(Constants.PR_HYPHENATION_LADDER_COUNT); + fo_block.set(Constants.PR_ID); + fo_block.set(Constants.PR_PAGE_BREAK_INSIDE); + fo_block.set(Constants.PR_KEEP_TOGETHER); + fo_block.set(Constants.PR_KEEP_WITH_NEXT); + fo_block.set(Constants.PR_KEEP_WITH_PREVIOUS); + fo_block.set(Constants.PR_LAST_LINE_END_INDENT); + fo_block.set(Constants.PR_LINEFEED_TREATMENT); + fo_block.set(Constants.PR_LINE_HEIGHT); + fo_block.set(Constants.PR_LINE_HEIGHT_SHIFT_ADJUSTMENT); + fo_block.set(Constants.PR_LINE_STACKING_STRATEGY); + fo_block.set(Constants.PR_ORPHANS); + fo_block.set(Constants.PR_WHITE_SPACE_TREATMENT); + fo_block.set(Constants.PR_SPAN); + fo_block.set(Constants.PR_TEXT_ALIGN); + fo_block.set(Constants.PR_TEXT_ALIGN_LAST); + fo_block.set(Constants.PR_TEXT_INDENT); + fo_block.set(Constants.PR_VISIBILITY); + fo_block.set(Constants.PR_WHITE_SPACE_COLLAPSE); + fo_block.set(Constants.PR_WIDOWS); + fo_block.set(Constants.PR_WRAP_OPTION); + + BitSet fo_block_container = new BitSet(); + fo_block_container.or(CommonAbsolutePositionProperties); + fo_block_container.or(CommonBorderPaddingBackgroundProperties); + fo_block_container.or(CommonMarginPropertiesBlock); + fo_block_container.set(Constants.PR_BLOCK_PROGRESSION_DIMENSION); + fo_block_container.set(Constants.PR_PAGE_BREAK_AFTER); + fo_block_container.set(Constants.PR_PAGE_BREAK_BEFORE); + fo_block_container.set(Constants.PR_BREAK_AFTER); + fo_block_container.set(Constants.PR_BREAK_BEFORE); + fo_block_container.set(Constants.PR_CLIP); + fo_block_container.set(Constants.PR_DISPLAY_ALIGN); + fo_block_container.set(Constants.PR_HEIGHT); + fo_block_container.set(Constants.PR_ID); + fo_block_container.set(Constants.PR_INLINE_PROGRESSION_DIMENSION); + fo_block_container.set(Constants.PR_PAGE_BREAK_INSIDE); + fo_block_container.set(Constants.PR_KEEP_TOGETHER); + fo_block_container.set(Constants.PR_KEEP_WITH_NEXT); + fo_block_container.set(Constants.PR_KEEP_WITH_PREVIOUS); + fo_block_container.set(Constants.PR_OVERFLOW); + fo_block_container.set(Constants.PR_REFERENCE_ORIENTATION); + fo_block_container.set(Constants.PR_SPAN); + fo_block_container.set(Constants.PR_WIDTH); + fo_block_container.set(Constants.PR_WRITING_MODE); + fo_block_container.set(Constants.PR_Z_INDEX); + + BitSet fo_bidi_override = new BitSet(); + fo_bidi_override.or(CommonAuralProperties); + fo_bidi_override.or(CommonFontProperties); + fo_bidi_override.or(CommonRelativePositionProperties); + fo_bidi_override.set(Constants.PR_COLOR); + fo_bidi_override.set(Constants.PR_DIRECTION); + fo_bidi_override.set(Constants.PR_ID); + fo_bidi_override.set(Constants.PR_LETTER_SPACING); + fo_bidi_override.set(Constants.PR_LINE_HEIGHT); + fo_bidi_override.set(Constants.PR_SCORE_SPACES); + fo_bidi_override.set(Constants.PR_UNICODE_BIDI); + fo_bidi_override.set(Constants.PR_WORD_SPACING); + + BitSet fo_character = new BitSet(); + fo_character.or(CommonAuralProperties); + fo_character.or(CommonBorderPaddingBackgroundProperties); + fo_character.or(CommonFontProperties); + fo_character.or(CommonHyphenationProperties); + fo_character.or(CommonMarginPropertiesInline); + fo_character.or(CommonRelativePositionProperties); + fo_character.set(Constants.PR_VERTICAL_ALIGN); + fo_character.set(Constants.PR_ALIGNMENT_ADJUST); + fo_character.set(Constants.PR_TREAT_AS_WORD_SPACE); + fo_character.set(Constants.PR_ALIGNMENT_BASELINE); + fo_character.set(Constants.PR_BASELINE_SHIFT); + fo_character.set(Constants.PR_CHARACTER); + fo_character.set(Constants.PR_COLOR); + fo_character.set(Constants.PR_DOMINANT_BASELINE); + fo_character.set(Constants.PR_TEXT_DEPTH); + fo_character.set(Constants.PR_TEXT_ALTITUDE); + fo_character.set(Constants.PR_GLYPH_ORIENTATION_HORIZONTAL); + fo_character.set(Constants.PR_GLYPH_ORIENTATION_VERTICAL); + fo_character.set(Constants.PR_ID); + fo_character.set(Constants.PR_KEEP_WITH_NEXT); + fo_character.set(Constants.PR_KEEP_WITH_PREVIOUS); + fo_character.set(Constants.PR_LETTER_SPACING); + fo_character.set(Constants.PR_LINE_HEIGHT); + fo_character.set(Constants.PR_SCORE_SPACES); + fo_character.set(Constants.PR_SUPPRESS_AT_LINE_BREAK); + fo_character.set(Constants.PR_TEXT_DECORATION); + fo_character.set(Constants.PR_TEXT_SHADOW); + fo_character.set(Constants.PR_TEXT_TRANSFORM); + fo_character.set(Constants.PR_VISIBILITY); + fo_character.set(Constants.PR_WORD_SPACING); + + BitSet fo_initial_property_set = new BitSet(); + fo_initial_property_set.or(CommonAccessibilityProperties); + fo_initial_property_set.or(CommonAuralProperties); + fo_initial_property_set.or(CommonBorderPaddingBackgroundProperties); + fo_initial_property_set.or(CommonFontProperties); + fo_initial_property_set.or(CommonRelativePositionProperties); + fo_initial_property_set.set(Constants.PR_COLOR); + fo_initial_property_set.set(Constants.PR_ID); + fo_initial_property_set.set(Constants.PR_LETTER_SPACING); + fo_initial_property_set.set(Constants.PR_LINE_HEIGHT); + fo_initial_property_set.set(Constants.PR_SCORE_SPACES); + fo_initial_property_set.set(Constants.PR_TEXT_DECORATION); + fo_initial_property_set.set(Constants.PR_TEXT_SHADOW); + fo_initial_property_set.set(Constants.PR_TEXT_TRANSFORM); + fo_initial_property_set.set(Constants.PR_WORD_SPACING); + + BitSet fo_external_graphic = new BitSet(); + fo_external_graphic.or(CommonAccessibilityProperties); + fo_external_graphic.or(CommonAuralProperties); + fo_external_graphic.or(CommonBorderPaddingBackgroundProperties); + fo_external_graphic.or(CommonMarginPropertiesInline); + fo_external_graphic.or(CommonRelativePositionProperties); + fo_external_graphic.set(Constants.PR_VERTICAL_ALIGN); + fo_external_graphic.set(Constants.PR_ALIGNMENT_ADJUST); + fo_external_graphic.set(Constants.PR_ALIGNMENT_BASELINE); + fo_external_graphic.set(Constants.PR_BASELINE_SHIFT); + fo_external_graphic.set(Constants.PR_BLOCK_PROGRESSION_DIMENSION); + fo_external_graphic.set(Constants.PR_CLIP); + fo_external_graphic.set(Constants.PR_CONTENT_HEIGHT); + fo_external_graphic.set(Constants.PR_CONTENT_TYPE); + fo_external_graphic.set(Constants.PR_CONTENT_WIDTH); + fo_external_graphic.set(Constants.PR_DISPLAY_ALIGN); + fo_external_graphic.set(Constants.PR_DOMINANT_BASELINE); + fo_external_graphic.set(Constants.PR_HEIGHT); + fo_external_graphic.set(Constants.PR_ID); + fo_external_graphic.set(Constants.PR_INLINE_PROGRESSION_DIMENSION); + fo_external_graphic.set(Constants.PR_KEEP_WITH_NEXT); + fo_external_graphic.set(Constants.PR_KEEP_WITH_PREVIOUS); + fo_external_graphic.set(Constants.PR_LINE_HEIGHT); + fo_external_graphic.set(Constants.PR_OVERFLOW); + fo_external_graphic.set(Constants.PR_SCALING); + fo_external_graphic.set(Constants.PR_SCALING_METHOD); + fo_external_graphic.set(Constants.PR_SRC); + fo_external_graphic.set(Constants.PR_TEXT_ALIGN); + fo_external_graphic.set(Constants.PR_WIDTH); + + BitSet fo_instream_foreign_object = new BitSet(); + fo_instream_foreign_object.or(CommonAccessibilityProperties); + fo_instream_foreign_object.or(CommonAuralProperties); + fo_instream_foreign_object.or(CommonBorderPaddingBackgroundProperties); + fo_instream_foreign_object.or(CommonMarginPropertiesInline); + fo_instream_foreign_object.or(CommonRelativePositionProperties); + fo_instream_foreign_object.set(Constants.PR_VERTICAL_ALIGN); + fo_instream_foreign_object.set(Constants.PR_ALIGNMENT_ADJUST); + fo_instream_foreign_object.set(Constants.PR_ALIGNMENT_BASELINE); + fo_instream_foreign_object.set(Constants.PR_BASELINE_SHIFT); + fo_instream_foreign_object.set(Constants.PR_BLOCK_PROGRESSION_DIMENSION); + fo_instream_foreign_object.set(Constants.PR_CLIP); + fo_instream_foreign_object.set(Constants.PR_CONTENT_HEIGHT); + fo_instream_foreign_object.set(Constants.PR_CONTENT_TYPE); + fo_instream_foreign_object.set(Constants.PR_CONTENT_WIDTH); + fo_instream_foreign_object.set(Constants.PR_DISPLAY_ALIGN); + fo_instream_foreign_object.set(Constants.PR_DOMINANT_BASELINE); + fo_instream_foreign_object.set(Constants.PR_HEIGHT); + fo_instream_foreign_object.set(Constants.PR_ID); + fo_instream_foreign_object.set(Constants.PR_INLINE_PROGRESSION_DIMENSION); + fo_instream_foreign_object.set(Constants.PR_KEEP_WITH_NEXT); + fo_instream_foreign_object.set(Constants.PR_KEEP_WITH_PREVIOUS); + fo_instream_foreign_object.set(Constants.PR_LINE_HEIGHT); + fo_instream_foreign_object.set(Constants.PR_OVERFLOW); + fo_instream_foreign_object.set(Constants.PR_SCALING); + fo_instream_foreign_object.set(Constants.PR_SCALING_METHOD); + fo_instream_foreign_object.set(Constants.PR_TEXT_ALIGN); + fo_instream_foreign_object.set(Constants.PR_WIDTH); + + BitSet fo_inline = new BitSet(); + fo_inline.or(CommonAccessibilityProperties); + fo_inline.or(CommonAuralProperties); + fo_inline.or(CommonBorderPaddingBackgroundProperties); + fo_inline.or(CommonFontProperties); + fo_inline.or(CommonMarginPropertiesInline); + fo_inline.or(CommonRelativePositionProperties); + fo_inline.set(Constants.PR_VERTICAL_ALIGN); + fo_inline.set(Constants.PR_ALIGNMENT_ADJUST); + fo_inline.set(Constants.PR_ALIGNMENT_BASELINE); + fo_inline.set(Constants.PR_BASELINE_SHIFT); + fo_inline.set(Constants.PR_BLOCK_PROGRESSION_DIMENSION); + fo_inline.set(Constants.PR_COLOR); + fo_inline.set(Constants.PR_DOMINANT_BASELINE); + fo_inline.set(Constants.PR_HEIGHT); + fo_inline.set(Constants.PR_ID); + fo_inline.set(Constants.PR_INLINE_PROGRESSION_DIMENSION); + fo_inline.set(Constants.PR_PAGE_BREAK_INSIDE); + fo_inline.set(Constants.PR_KEEP_TOGETHER); + fo_inline.set(Constants.PR_KEEP_WITH_NEXT); + fo_inline.set(Constants.PR_KEEP_WITH_PREVIOUS); + fo_inline.set(Constants.PR_LINE_HEIGHT); + fo_inline.set(Constants.PR_TEXT_DECORATION); + fo_inline.set(Constants.PR_VISIBILITY); + fo_inline.set(Constants.PR_WIDTH); + fo_inline.set(Constants.PR_WRAP_OPTION); + + BitSet fo_inline_container = new BitSet(); + fo_inline_container.or(CommonBorderPaddingBackgroundProperties); + fo_inline_container.or(CommonMarginPropertiesInline); + fo_inline_container.or(CommonRelativePositionProperties); + fo_inline_container.set(Constants.PR_VERTICAL_ALIGN); + fo_inline_container.set(Constants.PR_ALIGNMENT_ADJUST); + fo_inline_container.set(Constants.PR_ALIGNMENT_BASELINE); + fo_inline_container.set(Constants.PR_BASELINE_SHIFT); + fo_inline_container.set(Constants.PR_BLOCK_PROGRESSION_DIMENSION); + fo_inline_container.set(Constants.PR_CLIP); + fo_inline_container.set(Constants.PR_DISPLAY_ALIGN); + fo_inline_container.set(Constants.PR_DOMINANT_BASELINE); + fo_inline_container.set(Constants.PR_HEIGHT); + fo_inline_container.set(Constants.PR_ID); + fo_inline_container.set(Constants.PR_INLINE_PROGRESSION_DIMENSION); + fo_inline_container.set(Constants.PR_PAGE_BREAK_INSIDE); + fo_inline_container.set(Constants.PR_KEEP_TOGETHER); + fo_inline_container.set(Constants.PR_KEEP_WITH_NEXT); + fo_inline_container.set(Constants.PR_KEEP_WITH_PREVIOUS); + fo_inline_container.set(Constants.PR_LINE_HEIGHT); + fo_inline_container.set(Constants.PR_OVERFLOW); + fo_inline_container.set(Constants.PR_REFERENCE_ORIENTATION); + fo_inline_container.set(Constants.PR_WIDTH); + fo_inline_container.set(Constants.PR_WRITING_MODE); + + BitSet fo_leader = new BitSet(); + fo_leader.or(CommonAccessibilityProperties); + fo_leader.or(CommonAuralProperties); + fo_leader.or(CommonBorderPaddingBackgroundProperties); + fo_leader.or(CommonFontProperties); + fo_leader.or(CommonMarginPropertiesInline); + fo_leader.or(CommonRelativePositionProperties); + fo_leader.set(Constants.PR_VERTICAL_ALIGN); + fo_leader.set(Constants.PR_ALIGNMENT_ADJUST); + fo_leader.set(Constants.PR_ALIGNMENT_BASELINE); + fo_leader.set(Constants.PR_BASELINE_SHIFT); + fo_leader.set(Constants.PR_COLOR); + fo_leader.set(Constants.PR_DOMINANT_BASELINE); + fo_leader.set(Constants.PR_TEXT_DEPTH); + fo_leader.set(Constants.PR_TEXT_ALTITUDE); + fo_leader.set(Constants.PR_ID); + fo_leader.set(Constants.PR_KEEP_WITH_NEXT); + fo_leader.set(Constants.PR_KEEP_WITH_PREVIOUS); + fo_leader.set(Constants.PR_LEADER_ALIGNMENT); + fo_leader.set(Constants.PR_LEADER_LENGTH); + fo_leader.set(Constants.PR_LEADER_PATTERN); + fo_leader.set(Constants.PR_LEADER_PATTERN_WIDTH); + fo_leader.set(Constants.PR_RULE_STYLE); + fo_leader.set(Constants.PR_RULE_THICKNESS); + fo_leader.set(Constants.PR_LETTER_SPACING); + fo_leader.set(Constants.PR_LINE_HEIGHT); + fo_leader.set(Constants.PR_TEXT_SHADOW); + fo_leader.set(Constants.PR_VISIBILITY); + fo_leader.set(Constants.PR_WORD_SPACING); + + BitSet fo_page_number = new BitSet(); + fo_page_number.or(CommonAccessibilityProperties); + fo_page_number.or(CommonAuralProperties); + fo_page_number.or(CommonBorderPaddingBackgroundProperties); + fo_page_number.or(CommonFontProperties); + fo_page_number.or(CommonMarginPropertiesInline); + fo_page_number.or(CommonRelativePositionProperties); + fo_page_number.set(Constants.PR_VERTICAL_ALIGN); + fo_page_number.set(Constants.PR_ALIGNMENT_ADJUST); + fo_page_number.set(Constants.PR_ALIGNMENT_BASELINE); + fo_page_number.set(Constants.PR_BASELINE_SHIFT); + fo_page_number.set(Constants.PR_DOMINANT_BASELINE); + fo_page_number.set(Constants.PR_ID); + fo_page_number.set(Constants.PR_KEEP_WITH_NEXT); + fo_page_number.set(Constants.PR_KEEP_WITH_PREVIOUS); + fo_page_number.set(Constants.PR_LETTER_SPACING); + fo_page_number.set(Constants.PR_LINE_HEIGHT); + fo_page_number.set(Constants.PR_SCORE_SPACES); + fo_page_number.set(Constants.PR_TEXT_ALTITUDE); + fo_page_number.set(Constants.PR_TEXT_DECORATION); + fo_page_number.set(Constants.PR_TEXT_DEPTH); + fo_page_number.set(Constants.PR_TEXT_SHADOW); + fo_page_number.set(Constants.PR_TEXT_TRANSFORM); + fo_page_number.set(Constants.PR_VISIBILITY); + fo_page_number.set(Constants.PR_WORD_SPACING); + fo_page_number.set(Constants.PR_WRAP_OPTION); + + BitSet fo_page_number_citation = new BitSet(); + fo_page_number_citation.or(CommonAccessibilityProperties); + fo_page_number_citation.or(CommonAuralProperties); + fo_page_number_citation.or(CommonBorderPaddingBackgroundProperties); + fo_page_number_citation.or(CommonFontProperties); + fo_page_number_citation.or(CommonMarginPropertiesInline); + fo_page_number_citation.or(CommonRelativePositionProperties); + fo_page_number_citation.set(Constants.PR_VERTICAL_ALIGN); + fo_page_number_citation.set(Constants.PR_ALIGNMENT_ADJUST); + fo_page_number_citation.set(Constants.PR_ALIGNMENT_BASELINE); + fo_page_number_citation.set(Constants.PR_BASELINE_SHIFT); + fo_page_number_citation.set(Constants.PR_DOMINANT_BASELINE); + fo_page_number_citation.set(Constants.PR_ID); + fo_page_number_citation.set(Constants.PR_KEEP_WITH_NEXT); + fo_page_number_citation.set(Constants.PR_KEEP_WITH_PREVIOUS); + fo_page_number_citation.set(Constants.PR_LETTER_SPACING); + fo_page_number_citation.set(Constants.PR_LINE_HEIGHT); + fo_page_number_citation.set(Constants.PR_REF_ID); + fo_page_number_citation.set(Constants.PR_SCORE_SPACES); + fo_page_number_citation.set(Constants.PR_TEXT_ALTITUDE); + fo_page_number_citation.set(Constants.PR_TEXT_DECORATION); + fo_page_number_citation.set(Constants.PR_TEXT_DEPTH); + fo_page_number_citation.set(Constants.PR_TEXT_SHADOW); + fo_page_number_citation.set(Constants.PR_TEXT_TRANSFORM); + fo_page_number_citation.set(Constants.PR_VISIBILITY); + fo_page_number_citation.set(Constants.PR_WORD_SPACING); + fo_page_number_citation.set(Constants.PR_WRAP_OPTION); + + BitSet fo_table_and_caption = new BitSet(); + fo_table_and_caption.or(CommonAccessibilityProperties); + fo_table_and_caption.or(CommonAuralProperties); + fo_table_and_caption.or(CommonBorderPaddingBackgroundProperties); + fo_table_and_caption.or(CommonMarginPropertiesBlock); + fo_table_and_caption.or(CommonRelativePositionProperties); + fo_table_and_caption.set(Constants.PR_PAGE_BREAK_AFTER); + fo_table_and_caption.set(Constants.PR_PAGE_BREAK_BEFORE); + fo_table_and_caption.set(Constants.PR_BREAK_AFTER); + fo_table_and_caption.set(Constants.PR_BREAK_BEFORE); + fo_table_and_caption.set(Constants.PR_CAPTION_SIDE); + fo_table_and_caption.set(Constants.PR_ID); + fo_table_and_caption.set(Constants.PR_PAGE_BREAK_INSIDE); + fo_table_and_caption.set(Constants.PR_KEEP_TOGETHER); + fo_table_and_caption.set(Constants.PR_KEEP_WITH_NEXT); + fo_table_and_caption.set(Constants.PR_KEEP_WITH_PREVIOUS); + fo_table_and_caption.set(Constants.PR_TEXT_ALIGN); + + BitSet fo_table = new BitSet(); + fo_table.or(CommonAccessibilityProperties); + fo_table.or(CommonAuralProperties); + fo_table.or(CommonBorderPaddingBackgroundProperties); + fo_table.or(CommonMarginPropertiesBlock); + fo_table.or(CommonRelativePositionProperties); + fo_table.set(Constants.PR_BLOCK_PROGRESSION_DIMENSION); + fo_table.set(Constants.PR_BORDER_AFTER_PRECEDENCE); + fo_table.set(Constants.PR_BORDER_BEFORE_PRECEDENCE); + fo_table.set(Constants.PR_BORDER_SPACING); + fo_table.set(Constants.PR_BORDER_COLLAPSE); + fo_table.set(Constants.PR_BORDER_END_PRECEDENCE); + fo_table.set(Constants.PR_BORDER_SEPARATION); + fo_table.set(Constants.PR_BORDER_START_PRECEDENCE); + fo_table.set(Constants.PR_PAGE_BREAK_AFTER); + fo_table.set(Constants.PR_PAGE_BREAK_BEFORE); + fo_table.set(Constants.PR_BREAK_AFTER); + fo_table.set(Constants.PR_BREAK_BEFORE); + fo_table.set(Constants.PR_ID); + fo_table.set(Constants.PR_INLINE_PROGRESSION_DIMENSION); + fo_table.set(Constants.PR_HEIGHT); + fo_table.set(Constants.PR_PAGE_BREAK_INSIDE); + fo_table.set(Constants.PR_KEEP_TOGETHER); + fo_table.set(Constants.PR_KEEP_WITH_NEXT); + fo_table.set(Constants.PR_KEEP_WITH_PREVIOUS); + fo_table.set(Constants.PR_TABLE_LAYOUT); + fo_table.set(Constants.PR_TABLE_OMIT_FOOTER_AT_BREAK); + fo_table.set(Constants.PR_TABLE_OMIT_HEADER_AT_BREAK); + fo_table.set(Constants.PR_WIDTH); + fo_table.set(Constants.PR_WRITING_MODE); + + BitSet fo_table_column = new BitSet(); + fo_table_column.or(CommonBorderPaddingBackgroundProperties); + fo_table_column.set(Constants.PR_BORDER_AFTER_PRECEDENCE); + fo_table_column.set(Constants.PR_BORDER_BEFORE_PRECEDENCE); + fo_table_column.set(Constants.PR_BORDER_END_PRECEDENCE); + fo_table_column.set(Constants.PR_BORDER_START_PRECEDENCE); + fo_table_column.set(Constants.PR_COLUMN_NUMBER); + fo_table_column.set(Constants.PR_COLUMN_WIDTH); + fo_table_column.set(Constants.PR_NUMBER_COLUMNS_REPEATED); + fo_table_column.set(Constants.PR_NUMBER_COLUMNS_SPANNED); + fo_table_column.set(Constants.PR_VISIBILITY); + + BitSet fo_table_caption = new BitSet(); + fo_table_caption.or(CommonAccessibilityProperties); + fo_table_caption.or(CommonAuralProperties); + fo_table_caption.or(CommonBorderPaddingBackgroundProperties); + fo_table_caption.or(CommonRelativePositionProperties); + fo_table_caption.set(Constants.PR_BLOCK_PROGRESSION_DIMENSION); + fo_table_caption.set(Constants.PR_HEIGHT); + fo_table_caption.set(Constants.PR_ID); + fo_table_caption.set(Constants.PR_INLINE_PROGRESSION_DIMENSION); + fo_table_caption.set(Constants.PR_PAGE_BREAK_INSIDE); + fo_table_caption.set(Constants.PR_KEEP_TOGETHER); + fo_table_caption.set(Constants.PR_WIDTH); + + BitSet fo_table_header = new BitSet(); + fo_table_header.or(CommonAccessibilityProperties); + fo_table_header.or(CommonAuralProperties); + fo_table_header.or(CommonBorderPaddingBackgroundProperties); + fo_table_header.or(CommonRelativePositionProperties); + fo_table_header.set(Constants.PR_BORDER_AFTER_PRECEDENCE); + fo_table_header.set(Constants.PR_BORDER_BEFORE_PRECEDENCE); + fo_table_header.set(Constants.PR_BORDER_END_PRECEDENCE); + fo_table_header.set(Constants.PR_BORDER_START_PRECEDENCE); + fo_table_header.set(Constants.PR_ID); + fo_table_header.set(Constants.PR_VISIBILITY); + + BitSet fo_table_footer = new BitSet(); + fo_table_footer.or(CommonAccessibilityProperties); + fo_table_footer.or(CommonAuralProperties); + fo_table_footer.or(CommonBorderPaddingBackgroundProperties); + fo_table_footer.or(CommonRelativePositionProperties); + fo_table_footer.set(Constants.PR_BORDER_AFTER_PRECEDENCE); + fo_table_footer.set(Constants.PR_BORDER_BEFORE_PRECEDENCE); + fo_table_footer.set(Constants.PR_BORDER_END_PRECEDENCE); + fo_table_footer.set(Constants.PR_BORDER_START_PRECEDENCE); + fo_table_footer.set(Constants.PR_ID); + fo_table_footer.set(Constants.PR_VISIBILITY); + + BitSet fo_table_body = new BitSet(); + fo_table_body.or(CommonAccessibilityProperties); + fo_table_body.or(CommonAuralProperties); + fo_table_body.or(CommonBorderPaddingBackgroundProperties); + fo_table_body.or(CommonRelativePositionProperties); + fo_table_body.set(Constants.PR_BORDER_AFTER_PRECEDENCE); + fo_table_body.set(Constants.PR_BORDER_BEFORE_PRECEDENCE); + fo_table_body.set(Constants.PR_BORDER_END_PRECEDENCE); + fo_table_body.set(Constants.PR_BORDER_START_PRECEDENCE); + fo_table_body.set(Constants.PR_ID); + fo_table_body.set(Constants.PR_VISIBILITY); + + BitSet fo_table_row = new BitSet(); + fo_table_row.or(CommonAccessibilityProperties); + fo_table_row.set(Constants.PR_BLOCK_PROGRESSION_DIMENSION); + fo_table_row.or(CommonAuralProperties); + fo_table_row.or(CommonBorderPaddingBackgroundProperties); + fo_table_row.or(CommonRelativePositionProperties); + fo_table_row.set(Constants.PR_BORDER_AFTER_PRECEDENCE); + fo_table_row.set(Constants.PR_BORDER_BEFORE_PRECEDENCE); + fo_table_row.set(Constants.PR_BORDER_END_PRECEDENCE); + fo_table_row.set(Constants.PR_BORDER_START_PRECEDENCE); + fo_table_row.set(Constants.PR_PAGE_BREAK_AFTER); + fo_table_row.set(Constants.PR_PAGE_BREAK_BEFORE); + fo_table_row.set(Constants.PR_BREAK_AFTER); + fo_table_row.set(Constants.PR_BREAK_BEFORE); + fo_table_row.set(Constants.PR_ID); + fo_table_row.set(Constants.PR_HEIGHT); + fo_table_row.set(Constants.PR_PAGE_BREAK_INSIDE); + fo_table_row.set(Constants.PR_KEEP_TOGETHER); + fo_table_row.set(Constants.PR_KEEP_WITH_NEXT); + fo_table_row.set(Constants.PR_KEEP_WITH_PREVIOUS); + fo_table_row.set(Constants.PR_VISIBILITY); + + BitSet fo_table_cell = new BitSet(); + fo_table_cell.or(CommonAccessibilityProperties); + fo_table_cell.or(CommonAuralProperties); + fo_table_cell.or(CommonBorderPaddingBackgroundProperties); + fo_table_cell.or(CommonRelativePositionProperties); + fo_table_cell.set(Constants.PR_BORDER_AFTER_PRECEDENCE); + fo_table_cell.set(Constants.PR_BORDER_BEFORE_PRECEDENCE); + fo_table_cell.set(Constants.PR_BORDER_END_PRECEDENCE); + fo_table_cell.set(Constants.PR_BORDER_START_PRECEDENCE); + fo_table_cell.set(Constants.PR_BLOCK_PROGRESSION_DIMENSION); + fo_table_cell.set(Constants.PR_COLUMN_NUMBER); + fo_table_cell.set(Constants.PR_DISPLAY_ALIGN); + fo_table_cell.set(Constants.PR_RELATIVE_ALIGN); + fo_table_cell.set(Constants.PR_EMPTY_CELLS); + fo_table_cell.set(Constants.PR_ENDS_ROW); + fo_table_cell.set(Constants.PR_HEIGHT); + fo_table_cell.set(Constants.PR_ID); + fo_table_cell.set(Constants.PR_INLINE_PROGRESSION_DIMENSION); + fo_table_cell.set(Constants.PR_NUMBER_COLUMNS_SPANNED); + fo_table_cell.set(Constants.PR_NUMBER_ROWS_SPANNED); + fo_table_cell.set(Constants.PR_STARTS_ROW); + fo_table_cell.set(Constants.PR_WIDTH); + + BitSet fo_list_block = new BitSet(); + fo_list_block.or(CommonAccessibilityProperties); + fo_list_block.or(CommonAuralProperties); + fo_list_block.or(CommonBorderPaddingBackgroundProperties); + fo_list_block.or(CommonMarginPropertiesBlock); + fo_list_block.or(CommonRelativePositionProperties); + fo_list_block.set(Constants.PR_PAGE_BREAK_AFTER); + fo_list_block.set(Constants.PR_PAGE_BREAK_BEFORE); + fo_list_block.set(Constants.PR_BREAK_AFTER); + fo_list_block.set(Constants.PR_BREAK_BEFORE); + fo_list_block.set(Constants.PR_ID); + fo_list_block.set(Constants.PR_PAGE_BREAK_INSIDE); + fo_list_block.set(Constants.PR_KEEP_TOGETHER); + fo_list_block.set(Constants.PR_KEEP_WITH_NEXT); + fo_list_block.set(Constants.PR_KEEP_WITH_PREVIOUS); + fo_list_block.set(Constants.PR_PROVISIONAL_DISTANCE_BETWEEN_STARTS); + fo_list_block.set(Constants.PR_PROVISIONAL_LABEL_SEPARATION); + + BitSet fo_list_item = new BitSet(); + fo_list_item.or(CommonAccessibilityProperties); + fo_list_item.or(CommonAuralProperties); + fo_list_item.or(CommonBorderPaddingBackgroundProperties); + fo_list_item.or(CommonMarginPropertiesBlock); + fo_list_item.or(CommonRelativePositionProperties); + fo_list_item.set(Constants.PR_PAGE_BREAK_AFTER); + fo_list_item.set(Constants.PR_PAGE_BREAK_BEFORE); + fo_list_item.set(Constants.PR_BREAK_AFTER); + fo_list_item.set(Constants.PR_BREAK_BEFORE); + fo_list_item.set(Constants.PR_ID); + fo_list_item.set(Constants.PR_PAGE_BREAK_INSIDE); + fo_list_item.set(Constants.PR_KEEP_TOGETHER); + fo_list_item.set(Constants.PR_KEEP_WITH_NEXT); + fo_list_item.set(Constants.PR_KEEP_WITH_PREVIOUS); + fo_list_item.set(Constants.PR_RELATIVE_ALIGN); + + BitSet fo_list_item_body = new BitSet(); + fo_list_item_body.or(CommonAccessibilityProperties); + fo_list_item_body.set(Constants.PR_ID); + fo_list_item_body.set(Constants.PR_PAGE_BREAK_INSIDE); + fo_list_item_body.set(Constants.PR_KEEP_TOGETHER); + + BitSet fo_list_item_label = new BitSet(); + fo_list_item_label.or(CommonAccessibilityProperties); + fo_list_item_label.set(Constants.PR_ID); + fo_list_item_label.set(Constants.PR_PAGE_BREAK_INSIDE); + fo_list_item_label.set(Constants.PR_KEEP_TOGETHER); + + BitSet fo_basic_link = new BitSet(); + fo_basic_link.or(CommonAccessibilityProperties); + fo_basic_link.or(CommonAuralProperties); + fo_basic_link.or(CommonBorderPaddingBackgroundProperties); + fo_basic_link.or(CommonMarginPropertiesInline); + fo_basic_link.or(CommonRelativePositionProperties); + fo_basic_link.set(Constants.PR_VERTICAL_ALIGN); + fo_basic_link.set(Constants.PR_ALIGNMENT_ADJUST); + fo_basic_link.set(Constants.PR_ALIGNMENT_BASELINE); + fo_basic_link.set(Constants.PR_BASELINE_SHIFT); + fo_basic_link.set(Constants.PR_DESTINATION_PLACEMENT_OFFSET); + fo_basic_link.set(Constants.PR_DOMINANT_BASELINE); + fo_basic_link.set(Constants.PR_EXTERNAL_DESTINATION); + fo_basic_link.set(Constants.PR_ID); + fo_basic_link.set(Constants.PR_INDICATE_DESTINATION); + fo_basic_link.set(Constants.PR_INTERNAL_DESTINATION); + fo_basic_link.set(Constants.PR_PAGE_BREAK_INSIDE); + fo_basic_link.set(Constants.PR_KEEP_TOGETHER); + fo_basic_link.set(Constants.PR_KEEP_WITH_NEXT); + fo_basic_link.set(Constants.PR_KEEP_WITH_PREVIOUS); + fo_basic_link.set(Constants.PR_LINE_HEIGHT); + fo_basic_link.set(Constants.PR_SHOW_DESTINATION); + fo_basic_link.set(Constants.PR_TARGET_PROCESSING_CONTEXT); + fo_basic_link.set(Constants.PR_TARGET_PRESENTATION_CONTEXT); + fo_basic_link.set(Constants.PR_TARGET_STYLESHEET); + + BitSet fo_multi_switch = new BitSet(); + fo_multi_switch.or(CommonAccessibilityProperties); + fo_multi_switch.set(Constants.PR_AUTO_RESTORE); + fo_multi_switch.set(Constants.PR_ID); + + BitSet fo_multi_case = new BitSet(); + fo_multi_case.or(CommonAccessibilityProperties); + fo_multi_case.set(Constants.PR_ID); + fo_multi_case.set(Constants.PR_STARTING_STATE); + fo_multi_case.set(Constants.PR_CASE_NAME); + fo_multi_case.set(Constants.PR_CASE_TITLE); + + BitSet fo_multi_toggle = new BitSet(); + fo_multi_toggle.or(CommonAccessibilityProperties); + fo_multi_toggle.set(Constants.PR_ID); + fo_multi_toggle.set(Constants.PR_SWITCH_TO); + + BitSet fo_multi_properties = new BitSet(); + fo_multi_properties.or(CommonAccessibilityProperties); + fo_multi_properties.set(Constants.PR_ID); + + BitSet fo_multi_property_set = new BitSet(); + fo_multi_property_set.set(Constants.PR_ID); + fo_multi_property_set.set(Constants.PR_ACTIVE_STATE); + + BitSet fo_float = new BitSet(); + fo_float.set(Constants.PR_FLOAT); + fo_float.set(Constants.PR_CLEAR); + + BitSet fo_footnote = new BitSet(); + fo_footnote.or(CommonAccessibilityProperties); + + BitSet fo_footnote_body = new BitSet(); + fo_footnote_body.or(CommonAccessibilityProperties); + + BitSet fo_wrapper = new BitSet(); + fo_wrapper.set(Constants.PR_ID); + + BitSet fo_marker = new BitSet(); + fo_marker.set(Constants.PR_MARKER_CLASS_NAME); + + BitSet fo_retrieve_marker = new BitSet(); + fo_retrieve_marker.set(Constants.PR_RETRIEVE_CLASS_NAME); + fo_retrieve_marker.set(Constants.PR_RETRIEVE_POSITION); + fo_retrieve_marker.set(Constants.PR_RETRIEVE_BOUNDARY); + + boolean loop = true; + while (loop) { + loop = false; + + loop = mergeContent(fo_root, fo_layout_master_set, loop); + + loop = mergeContent(fo_root, fo_declaration, loop); + + loop = mergeContent(fo_root, fo_page_sequence, loop); + + loop = mergeContent(fo_declaration, fo_color_profile, loop); + + loop = mergeContent(fo_page_sequence, fo_title, loop); + + loop = mergeContent(fo_page_sequence, fo_static_content, loop); + + loop = mergeContent(fo_page_sequence, fo_flow, loop); + + loop = mergeContent(fo_layout_master_set, fo_simple_page_master, loop); + + loop = mergeContent(fo_layout_master_set, fo_page_sequence_master, loop); + + loop = mergeContent(fo_page_sequence_master, fo_single_page_master_reference, loop); + + loop = mergeContent(fo_page_sequence_master, fo_repeatable_page_master_reference, loop); + + loop = mergeContent(fo_page_sequence_master, fo_repeatable_page_master_alternatives, loop); + + loop = mergeContent(fo_repeatable_page_master_alternatives, fo_conditional_page_master_reference, loop); + + loop = mergeContent(fo_simple_page_master, fo_region_body, loop); + + loop = mergeContent(fo_simple_page_master, fo_region_before, loop); + + loop = mergeContent(fo_simple_page_master, fo_region_after, loop); + + loop = mergeContent(fo_simple_page_master, fo_region_start, loop); + + loop = mergeContent(fo_simple_page_master, fo_region_end, loop); + + loop = mergeContent(fo_flow, fo_block, loop); + loop = mergeContent(fo_flow, fo_block_container, loop); + loop = mergeContent(fo_flow, fo_table_and_caption, loop); + loop = mergeContent(fo_flow, fo_table, loop); + loop = mergeContent(fo_flow, fo_list_block, loop); + + loop = mergeContent(fo_static_content, fo_block, loop); + loop = mergeContent(fo_static_content, fo_block_container, loop); + loop = mergeContent(fo_static_content, fo_table_and_caption, loop); + loop = mergeContent(fo_static_content, fo_table, loop); + loop = mergeContent(fo_static_content, fo_list_block, loop); + + loop = mergeContent(fo_title, fo_bidi_override, loop); + loop = mergeContent(fo_title, fo_character, loop); + loop = mergeContent(fo_title, fo_external_graphic, loop); + loop = mergeContent(fo_title, fo_instream_foreign_object, loop); + loop = mergeContent(fo_title, fo_inline, loop); + loop = mergeContent(fo_title, fo_inline_container, loop); + loop = mergeContent(fo_title, fo_leader, loop); + loop = mergeContent(fo_title, fo_page_number, loop); + loop = mergeContent(fo_title, fo_page_number_citation, loop); + loop = mergeContent(fo_title, fo_basic_link, loop); + loop = mergeContent(fo_title, fo_multi_toggle, loop); + + loop = mergeContent(fo_block, fo_bidi_override, loop); + loop = mergeContent(fo_block, fo_character, loop); + loop = mergeContent(fo_block, fo_external_graphic, loop); + loop = mergeContent(fo_block, fo_instream_foreign_object, loop); + loop = mergeContent(fo_block, fo_inline, loop); + loop = mergeContent(fo_block, fo_inline_container, loop); + loop = mergeContent(fo_block, fo_leader, loop); + loop = mergeContent(fo_block, fo_page_number, loop); + loop = mergeContent(fo_block, fo_page_number_citation, loop); + loop = mergeContent(fo_block, fo_basic_link, loop); + loop = mergeContent(fo_block, fo_multi_toggle, loop); + + loop = mergeContent(fo_block, fo_block, loop); + loop = mergeContent(fo_block, fo_block_container, loop); + loop = mergeContent(fo_block, fo_table_and_caption, loop); + loop = mergeContent(fo_block, fo_table, loop); + loop = mergeContent(fo_block, fo_list_block, loop); + + loop = mergeContent(fo_block_container, fo_block, loop); + loop = mergeContent(fo_block_container, fo_block_container, loop); + loop = mergeContent(fo_block_container, fo_table_and_caption, loop); + loop = mergeContent(fo_block_container, fo_table, loop); + loop = mergeContent(fo_block_container, fo_list_block, loop); + + loop = mergeContent(fo_bidi_override, fo_bidi_override, loop); + loop = mergeContent(fo_bidi_override, fo_character, loop); + loop = mergeContent(fo_bidi_override, fo_external_graphic, loop); + loop = mergeContent(fo_bidi_override, fo_instream_foreign_object, loop); + loop = mergeContent(fo_bidi_override, fo_inline, loop); + loop = mergeContent(fo_bidi_override, fo_inline_container, loop); + loop = mergeContent(fo_bidi_override, fo_leader, loop); + loop = mergeContent(fo_bidi_override, fo_page_number, loop); + loop = mergeContent(fo_bidi_override, fo_page_number_citation, loop); + loop = mergeContent(fo_bidi_override, fo_basic_link, loop); + loop = mergeContent(fo_bidi_override, fo_multi_toggle, loop); + + loop = mergeContent(fo_bidi_override, fo_block, loop); + loop = mergeContent(fo_bidi_override, fo_block_container, loop); + loop = mergeContent(fo_bidi_override, fo_table_and_caption, loop); + loop = mergeContent(fo_bidi_override, fo_table, loop); + loop = mergeContent(fo_bidi_override, fo_list_block, loop); + + loop = mergeContent(fo_inline, fo_bidi_override, loop); + loop = mergeContent(fo_inline, fo_character, loop); + loop = mergeContent(fo_inline, fo_external_graphic, loop); + loop = mergeContent(fo_inline, fo_instream_foreign_object, loop); + loop = mergeContent(fo_inline, fo_inline, loop); + loop = mergeContent(fo_inline, fo_inline_container, loop); + loop = mergeContent(fo_inline, fo_leader, loop); + loop = mergeContent(fo_inline, fo_page_number, loop); + loop = mergeContent(fo_inline, fo_page_number_citation, loop); + loop = mergeContent(fo_inline, fo_basic_link, loop); + loop = mergeContent(fo_inline, fo_multi_toggle, loop); + + loop = mergeContent(fo_inline, fo_block, loop); + loop = mergeContent(fo_inline, fo_block_container, loop); + loop = mergeContent(fo_inline, fo_table_and_caption, loop); + loop = mergeContent(fo_inline, fo_table, loop); + loop = mergeContent(fo_inline, fo_list_block, loop); + + loop = mergeContent(fo_inline_container, fo_block, loop); + loop = mergeContent(fo_inline_container, fo_block_container, loop); + loop = mergeContent(fo_inline_container, fo_table_and_caption, loop); + loop = mergeContent(fo_inline_container, fo_table, loop); + loop = mergeContent(fo_inline_container, fo_list_block, loop); + + loop = mergeContent(fo_leader, fo_bidi_override, loop); + loop = mergeContent(fo_leader, fo_character, loop); + loop = mergeContent(fo_leader, fo_external_graphic, loop); + loop = mergeContent(fo_leader, fo_instream_foreign_object, loop); + loop = mergeContent(fo_leader, fo_inline, loop); + loop = mergeContent(fo_leader, fo_inline_container, loop); + loop = mergeContent(fo_leader, fo_leader, loop); + loop = mergeContent(fo_leader, fo_page_number, loop); + loop = mergeContent(fo_leader, fo_page_number_citation, loop); + loop = mergeContent(fo_leader, fo_basic_link, loop); + loop = mergeContent(fo_leader, fo_multi_toggle, loop); + + loop = mergeContent(fo_table_and_caption, fo_table_caption, loop); + + loop = mergeContent(fo_table_and_caption, fo_table, loop); + + loop = mergeContent(fo_table, fo_table_column, loop); + + loop = mergeContent(fo_table, fo_table_header, loop); + + loop = mergeContent(fo_table, fo_table_footer, loop); + + loop = mergeContent(fo_table, fo_table_body, loop); + + loop = mergeContent(fo_table_caption, fo_block, loop); + loop = mergeContent(fo_table_caption, fo_block_container, loop); + loop = mergeContent(fo_table_caption, fo_table_and_caption, loop); + loop = mergeContent(fo_table_caption, fo_table, loop); + loop = mergeContent(fo_table_caption, fo_list_block, loop); + + loop = mergeContent(fo_table_header, fo_table_row, loop); + + loop = mergeContent(fo_table_header, fo_table_cell, loop); + + loop = mergeContent(fo_table_footer, fo_table_row, loop); + + loop = mergeContent(fo_table_footer, fo_table_cell, loop); + + loop = mergeContent(fo_table_body, fo_table_row, loop); + + loop = mergeContent(fo_table_body, fo_table_cell, loop); + + loop = mergeContent(fo_table_row, fo_table_cell, loop); + + loop = mergeContent(fo_table_cell, fo_block, loop); + loop = mergeContent(fo_table_cell, fo_block_container, loop); + loop = mergeContent(fo_table_cell, fo_table_and_caption, loop); + loop = mergeContent(fo_table_cell, fo_table, loop); + loop = mergeContent(fo_table_cell, fo_list_block, loop); + + loop = mergeContent(fo_list_block, fo_list_item, loop); + + loop = mergeContent(fo_list_item, fo_list_item_label, loop); + + loop = mergeContent(fo_list_item, fo_list_item_body, loop); + + loop = mergeContent(fo_list_item_body, fo_block, loop); + loop = mergeContent(fo_list_item_body, fo_block_container, loop); + loop = mergeContent(fo_list_item_body, fo_table_and_caption, loop); + loop = mergeContent(fo_list_item_body, fo_table, loop); + loop = mergeContent(fo_list_item_body, fo_list_block, loop); + + loop = mergeContent(fo_list_item_label, fo_block, loop); + loop = mergeContent(fo_list_item_label, fo_block_container, loop); + loop = mergeContent(fo_list_item_label, fo_table_and_caption, loop); + loop = mergeContent(fo_list_item_label, fo_table, loop); + loop = mergeContent(fo_list_item_label, fo_list_block, loop); + + loop = mergeContent(fo_basic_link, fo_bidi_override, loop); + loop = mergeContent(fo_basic_link, fo_character, loop); + loop = mergeContent(fo_basic_link, fo_external_graphic, loop); + loop = mergeContent(fo_basic_link, fo_instream_foreign_object, loop); + loop = mergeContent(fo_basic_link, fo_inline, loop); + loop = mergeContent(fo_basic_link, fo_inline_container, loop); + loop = mergeContent(fo_basic_link, fo_leader, loop); + loop = mergeContent(fo_basic_link, fo_page_number, loop); + loop = mergeContent(fo_basic_link, fo_page_number_citation, loop); + loop = mergeContent(fo_basic_link, fo_basic_link, loop); + loop = mergeContent(fo_basic_link, fo_multi_toggle, loop); + + loop = mergeContent(fo_basic_link, fo_block, loop); + loop = mergeContent(fo_basic_link, fo_block_container, loop); + loop = mergeContent(fo_basic_link, fo_table_and_caption, loop); + loop = mergeContent(fo_basic_link, fo_table, loop); + loop = mergeContent(fo_basic_link, fo_list_block, loop); + + loop = mergeContent(fo_multi_switch, fo_multi_case, loop); + + loop = mergeContent(fo_multi_case, fo_bidi_override, loop); + loop = mergeContent(fo_multi_case, fo_character, loop); + loop = mergeContent(fo_multi_case, fo_external_graphic, loop); + loop = mergeContent(fo_multi_case, fo_instream_foreign_object, loop); + loop = mergeContent(fo_multi_case, fo_inline, loop); + loop = mergeContent(fo_multi_case, fo_inline_container, loop); + loop = mergeContent(fo_multi_case, fo_leader, loop); + loop = mergeContent(fo_multi_case, fo_page_number, loop); + loop = mergeContent(fo_multi_case, fo_page_number_citation, loop); + loop = mergeContent(fo_multi_case, fo_basic_link, loop); + loop = mergeContent(fo_multi_case, fo_multi_toggle, loop); + + loop = mergeContent(fo_multi_case, fo_block, loop); + loop = mergeContent(fo_multi_case, fo_block_container, loop); + loop = mergeContent(fo_multi_case, fo_table_and_caption, loop); + loop = mergeContent(fo_multi_case, fo_table, loop); + loop = mergeContent(fo_multi_case, fo_list_block, loop); + + loop = mergeContent(fo_multi_toggle, fo_bidi_override, loop); + loop = mergeContent(fo_multi_toggle, fo_character, loop); + loop = mergeContent(fo_multi_toggle, fo_external_graphic, loop); + loop = mergeContent(fo_multi_toggle, fo_instream_foreign_object, loop); + loop = mergeContent(fo_multi_toggle, fo_inline, loop); + loop = mergeContent(fo_multi_toggle, fo_inline_container, loop); + loop = mergeContent(fo_multi_toggle, fo_leader, loop); + loop = mergeContent(fo_multi_toggle, fo_page_number, loop); + loop = mergeContent(fo_multi_toggle, fo_page_number_citation, loop); + loop = mergeContent(fo_multi_toggle, fo_basic_link, loop); + loop = mergeContent(fo_multi_toggle, fo_multi_toggle, loop); + + loop = mergeContent(fo_multi_toggle, fo_block, loop); + loop = mergeContent(fo_multi_toggle, fo_block_container, loop); + loop = mergeContent(fo_multi_toggle, fo_table_and_caption, loop); + loop = mergeContent(fo_multi_toggle, fo_table, loop); + loop = mergeContent(fo_multi_toggle, fo_list_block, loop); + + loop = mergeContent(fo_multi_properties, fo_multi_property_set, loop); + + loop = mergeContent(fo_multi_properties, fo_wrapper, loop); + + loop = mergeContent(fo_float, fo_block, loop); + loop = mergeContent(fo_float, fo_block_container, loop); + loop = mergeContent(fo_float, fo_table_and_caption, loop); + loop = mergeContent(fo_float, fo_table, loop); + loop = mergeContent(fo_float, fo_list_block, loop); + + loop = mergeContent(fo_footnote, fo_inline, loop); + + loop = mergeContent(fo_footnote, fo_footnote_body, loop); + + loop = mergeContent(fo_footnote_body, fo_block, loop); + loop = mergeContent(fo_footnote_body, fo_block_container, loop); + loop = mergeContent(fo_footnote_body, fo_table_and_caption, loop); + loop = mergeContent(fo_footnote_body, fo_table, loop); + loop = mergeContent(fo_footnote_body, fo_list_block, loop); + + loop = mergeContent(fo_wrapper, fo_bidi_override, loop); + loop = mergeContent(fo_wrapper, fo_character, loop); + loop = mergeContent(fo_wrapper, fo_external_graphic, loop); + loop = mergeContent(fo_wrapper, fo_instream_foreign_object, loop); + loop = mergeContent(fo_wrapper, fo_inline, loop); + loop = mergeContent(fo_wrapper, fo_inline_container, loop); + loop = mergeContent(fo_wrapper, fo_leader, loop); + loop = mergeContent(fo_wrapper, fo_page_number, loop); + loop = mergeContent(fo_wrapper, fo_page_number_citation, loop); + loop = mergeContent(fo_wrapper, fo_basic_link, loop); + loop = mergeContent(fo_wrapper, fo_multi_toggle, loop); + + loop = mergeContent(fo_wrapper, fo_block, loop); + loop = mergeContent(fo_wrapper, fo_block_container, loop); + loop = mergeContent(fo_wrapper, fo_table_and_caption, loop); + loop = mergeContent(fo_wrapper, fo_table, loop); + loop = mergeContent(fo_wrapper, fo_list_block, loop); + + loop = mergeContent(fo_marker, fo_bidi_override, loop); + loop = mergeContent(fo_marker, fo_character, loop); + loop = mergeContent(fo_marker, fo_external_graphic, loop); + loop = mergeContent(fo_marker, fo_instream_foreign_object, loop); + loop = mergeContent(fo_marker, fo_inline, loop); + loop = mergeContent(fo_marker, fo_inline_container, loop); + loop = mergeContent(fo_marker, fo_leader, loop); + loop = mergeContent(fo_marker, fo_page_number, loop); + loop = mergeContent(fo_marker, fo_page_number_citation, loop); + loop = mergeContent(fo_marker, fo_basic_link, loop); + loop = mergeContent(fo_marker, fo_multi_toggle, loop); + + loop = mergeContent(fo_marker, fo_block, loop); + loop = mergeContent(fo_marker, fo_block_container, loop); + loop = mergeContent(fo_marker, fo_table_and_caption, loop); + loop = mergeContent(fo_marker, fo_table, loop); + loop = mergeContent(fo_marker, fo_list_block, loop); + + } + mapping[Constants.FO_ROOT] = makeSparseIndices(fo_root); + mapping[Constants.FO_DECLARATION] = makeSparseIndices(fo_declaration); + mapping[Constants.FO_COLOR_PROFILE] = makeSparseIndices(fo_color_profile); + mapping[Constants.FO_PAGE_SEQUENCE] = makeSparseIndices(fo_page_sequence); + mapping[Constants.FO_LAYOUT_MASTER_SET] = makeSparseIndices(fo_layout_master_set); + mapping[Constants.FO_PAGE_SEQUENCE_MASTER] = makeSparseIndices(fo_page_sequence_master); + mapping[Constants.FO_SINGLE_PAGE_MASTER_REFERENCE] = makeSparseIndices(fo_single_page_master_reference); + mapping[Constants.FO_REPEATABLE_PAGE_MASTER_REFERENCE] = makeSparseIndices(fo_repeatable_page_master_reference); + mapping[Constants.FO_REPEATABLE_PAGE_MASTER_ALTERNATIVES] = makeSparseIndices(fo_repeatable_page_master_alternatives); + mapping[Constants.FO_CONDITIONAL_PAGE_MASTER_REFERENCE] = makeSparseIndices(fo_conditional_page_master_reference); + mapping[Constants.FO_SIMPLE_PAGE_MASTER] = makeSparseIndices(fo_simple_page_master); + mapping[Constants.FO_REGION_BODY] = makeSparseIndices(fo_region_body); + mapping[Constants.FO_REGION_BEFORE] = makeSparseIndices(fo_region_before); + mapping[Constants.FO_REGION_AFTER] = makeSparseIndices(fo_region_after); + mapping[Constants.FO_REGION_START] = makeSparseIndices(fo_region_start); + mapping[Constants.FO_REGION_END] = makeSparseIndices(fo_region_end); + mapping[Constants.FO_FLOW] = makeSparseIndices(fo_flow); + mapping[Constants.FO_STATIC_CONTENT] = makeSparseIndices(fo_static_content); + mapping[Constants.FO_TITLE] = makeSparseIndices(fo_title); + mapping[Constants.FO_BLOCK] = makeSparseIndices(fo_block); + mapping[Constants.FO_BLOCK_CONTAINER] = makeSparseIndices(fo_block_container); + mapping[Constants.FO_BIDI_OVERRIDE] = makeSparseIndices(fo_bidi_override); + mapping[Constants.FO_CHARACTER] = makeSparseIndices(fo_character); + mapping[Constants.FO_INITIAL_PROPERTY_SET] = makeSparseIndices(fo_initial_property_set); + mapping[Constants.FO_EXTERNAL_GRAPHIC] = makeSparseIndices(fo_external_graphic); + mapping[Constants.FO_INSTREAM_FOREIGN_OBJECT] = makeSparseIndices(fo_instream_foreign_object); + mapping[Constants.FO_INLINE] = makeSparseIndices(fo_inline); + mapping[Constants.FO_INLINE_CONTAINER] = makeSparseIndices(fo_inline_container); + mapping[Constants.FO_LEADER] = makeSparseIndices(fo_leader); + mapping[Constants.FO_PAGE_NUMBER] = makeSparseIndices(fo_page_number); + mapping[Constants.FO_PAGE_NUMBER_CITATION] = makeSparseIndices(fo_page_number_citation); + mapping[Constants.FO_TABLE_AND_CAPTION] = makeSparseIndices(fo_table_and_caption); + mapping[Constants.FO_TABLE] = makeSparseIndices(fo_table); + mapping[Constants.FO_TABLE_COLUMN] = makeSparseIndices(fo_table_column); + mapping[Constants.FO_TABLE_CAPTION] = makeSparseIndices(fo_table_caption); + mapping[Constants.FO_TABLE_HEADER] = makeSparseIndices(fo_table_header); + mapping[Constants.FO_TABLE_FOOTER] = makeSparseIndices(fo_table_footer); + mapping[Constants.FO_TABLE_BODY] = makeSparseIndices(fo_table_body); + mapping[Constants.FO_TABLE_ROW] = makeSparseIndices(fo_table_row); + mapping[Constants.FO_TABLE_CELL] = makeSparseIndices(fo_table_cell); + mapping[Constants.FO_LIST_BLOCK] = makeSparseIndices(fo_list_block); + mapping[Constants.FO_LIST_ITEM] = makeSparseIndices(fo_list_item); + mapping[Constants.FO_LIST_ITEM_BODY] = makeSparseIndices(fo_list_item_body); + mapping[Constants.FO_LIST_ITEM_LABEL] = makeSparseIndices(fo_list_item_label); + mapping[Constants.FO_BASIC_LINK] = makeSparseIndices(fo_basic_link); + mapping[Constants.FO_MULTI_SWITCH] = makeSparseIndices(fo_multi_switch); + mapping[Constants.FO_MULTI_CASE] = makeSparseIndices(fo_multi_case); + mapping[Constants.FO_MULTI_TOGGLE] = makeSparseIndices(fo_multi_toggle); + mapping[Constants.FO_MULTI_PROPERTIES] = makeSparseIndices(fo_multi_properties); + mapping[Constants.FO_MULTI_PROPERTY_SET] = makeSparseIndices(fo_multi_property_set); + mapping[Constants.FO_FLOAT] = makeSparseIndices(fo_float); + mapping[Constants.FO_FOOTNOTE] = makeSparseIndices(fo_footnote); + mapping[Constants.FO_FOOTNOTE_BODY] = makeSparseIndices(fo_footnote_body); + mapping[Constants.FO_WRAPPER] = makeSparseIndices(fo_wrapper); + mapping[Constants.FO_MARKER] = makeSparseIndices(fo_marker); + mapping[Constants.FO_RETRIEVE_MARKER] = makeSparseIndices(fo_retrieve_marker); + + } + + private static short[] makeSparseIndices(BitSet set) { + short[] indices = new short[Constants.PROPERTY_COUNT]; + indices[0] = (short) (set.cardinality() + 1); + int j = 1; + for (int i = set.nextSetBit(0); i >= 0; i = set.nextSetBit(i+1)) { + indices[i] = (short) j++; + } + return indices; + } + + private static boolean mergeContent(BitSet node, BitSet content, + boolean loop) + { + int c = node.cardinality(); + node.or(content); + if (c == node.cardinality()) + return loop; + return true; + } + + public static short[] getPropertySet(int elementId) { + if (mapping == null) + initialize(); + return mapping[elementId]; + } +} |