You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by pb...@apache.org on 2002/08/27 17:38:36 UTC

cvs commit: xml-fop/src/org/apache/fop/fo PropertySets.java PropNames.java Properties.java

pbwest      2002/08/27 08:38:36

  Modified:    src/org/apache/fop/fo Tag: FOP_0-20-0_Alt-Design
                        PropertySets.java PropNames.java Properties.java
  Log:
  W.I.P. on extended property expression handling including compounds
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.10  +263 -4    xml-fop/src/org/apache/fop/fo/Attic/PropertySets.java
  
  Index: PropertySets.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/Attic/PropertySets.java,v
  retrieving revision 1.1.2.9
  retrieving revision 1.1.2.10
  diff -u -r1.1.2.9 -r1.1.2.10
  --- PropertySets.java	1 Aug 2002 03:56:00 -0000	1.1.2.9
  +++ PropertySets.java	27 Aug 2002 15:38:35 -0000	1.1.2.10
  @@ -56,7 +56,7 @@
   
       static {
            accessibilityProps.add(Ints.consts.get(PropNames.ROLE));       
  -         accessibilityProps.add(Ints.consts.get(PropNames.SOURCE_DOCUMENT));       
  +         accessibilityProps.add(Ints.consts.get(PropNames.SOURCE_DOCUMENT));
            accessibilitySet =
                            Collections.unmodifiableSet((Set)accessibilityProps);
       }
  @@ -847,6 +847,265 @@
                   ("Unmatched properties:" + unmatched +
                    " : in expansion list for " + expansionList.getProperty());
           return expansionList;
  +    }
  +
  +    public static final ROIntArray blockProgressDimCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.BLOCK_PROGRESSION_DIMENSION_MINIMUM
  +            ,PropNames.BLOCK_PROGRESSION_DIMENSION_OPTIMUM
  +            ,PropNames.BLOCK_PROGRESSION_DIMENSION_MAXIMUM
  +        });
  +
  +    public static final ROIntArray blockProgressDimNonCopyExpansion =
  +        new ROIntArray(new int[] {});
  +
  +    public static final ROIntArray borderAfterWidthCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.BORDER_AFTER_WIDTH_LENGTH
  +        });
  +
  +    public static final ROIntArray borderAfterWidthNonCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.BORDER_AFTER_WIDTH_CONDITIONALITY
  +        });
  +
  +    public static final ROIntArray borderBeforeWidthCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.BORDER_BEFORE_WIDTH_LENGTH
  +        });
  +
  +    public static final ROIntArray borderBeforeWidthNonCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.BORDER_BEFORE_WIDTH_CONDITIONALITY
  +        });
  +
  +    public static final ROIntArray borderEndWidthCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.BORDER_END_WIDTH_LENGTH
  +        });
  +
  +    public static final ROIntArray borderEndWidthNonCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.BORDER_END_WIDTH_CONDITIONALITY
  +        });
  +
  +    public static final ROIntArray borderStartWidthCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.BORDER_START_WIDTH_LENGTH
  +        });
  +
  +    public static final ROIntArray borderStartWidthNonCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.BORDER_START_WIDTH_CONDITIONALITY
  +        });
  +
  +    public static final ROIntArray borderSeparationCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.BORDER_SEPARATION_BLOCK_PROGRESSION_DIRECTION
  +            ,PropNames.BORDER_SEPARATION_INLINE_PROGRESSION_DIRECTION
  +        });
  +
  +    public static final ROIntArray borderSeparationNonCopyExpansion =
  +        new ROIntArray(new int[] {});
  +
  +    public static final ROIntArray inlineProgressDimCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.INLINE_PROGRESSION_DIMENSION_MINIMUM
  +            ,PropNames.INLINE_PROGRESSION_DIMENSION_OPTIMUM
  +            ,PropNames.INLINE_PROGRESSION_DIMENSION_MAXIMUM
  +        });
  +
  +    public static final ROIntArray inlineProgressDimNonCopyExpansion =
  +        new ROIntArray(new int[] {});
  +
  +    public static final ROIntArray keepTogetherCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.KEEP_TOGETHER_WITHIN_LINE
  +            ,PropNames.KEEP_TOGETHER_WITHIN_COLUMN
  +            ,PropNames.KEEP_TOGETHER_WITHIN_PAGE
  +        });
  +
  +    public static final ROIntArray keepTogetherNonCopyExpansion =
  +        new ROIntArray(new int[] {});
  +
  +    public static final ROIntArray keepWithNextCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.KEEP_WITH_NEXT_WITHIN_LINE
  +            ,PropNames.KEEP_WITH_NEXT_WITHIN_COLUMN
  +            ,PropNames.KEEP_WITH_NEXT_WITHIN_PAGE
  +        });
  +
  +    public static final ROIntArray keepWithNextNonCopyExpansion =
  +        new ROIntArray(new int[] {});
  +
  +    public static final ROIntArray keepWithPreviousCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.KEEP_WITH_PREVIOUS_WITHIN_LINE
  +            ,PropNames.KEEP_WITH_PREVIOUS_WITHIN_COLUMN
  +            ,PropNames.KEEP_WITH_PREVIOUS_WITHIN_PAGE
  +        });
  +
  +    public static final ROIntArray keepWithPreviousNonCopyExpansion =
  +        new ROIntArray(new int[] {});
  +
  +    public static final ROIntArray leaderLengthCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.LEADER_LENGTH_MINIMUM
  +            ,PropNames.LEADER_LENGTH_OPTIMUM
  +            ,PropNames.LEADER_LENGTH_MAXIMUM
  +        });
  +
  +    public static final ROIntArray leaderLengthNonCopyExpansion =
  +        new ROIntArray(new int[] {});
  +
  +    public static final ROIntArray lineHeightCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.LINE_HEIGHT_MINIMUM
  +            ,PropNames.LINE_HEIGHT_OPTIMUM
  +            ,PropNames.LINE_HEIGHT_MAXIMUM
  +        });
  +
  +    public static final ROIntArray lineHeightNonCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.LINE_HEIGHT_CONDITIONALITY
  +            ,PropNames.LINE_HEIGHT_PRECEDENCE
  +        });
  +
  +    public static final ROIntArray paddingAfterCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.PADDING_AFTER_LENGTH
  +        });
  +
  +    public static final ROIntArray paddingAfterNonCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.PADDING_AFTER_CONDITIONALITY
  +        });
  +
  +    public static final ROIntArray paddingBeforeCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.PADDING_BEFORE_LENGTH
  +        });
  +
  +    public static final ROIntArray paddingBeforeNonCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.PADDING_BEFORE_CONDITIONALITY
  +        });
  +
  +    public static final ROIntArray paddingEndCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.PADDING_END_LENGTH
  +        });
  +
  +    public static final ROIntArray paddingEndNonCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.PADDING_END_CONDITIONALITY
  +        });
  +
  +    public static final ROIntArray paddingStartCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.PADDING_START_LENGTH
  +        });
  +
  +    public static final ROIntArray paddingStartNonCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.PADDING_START_CONDITIONALITY
  +        });
  +
  +    public static final ROIntArray spaceAfterCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.SPACE_AFTER_MINIMUM
  +            ,PropNames.SPACE_AFTER_OPTIMUM
  +            ,PropNames.SPACE_AFTER_MAXIMUM
  +        });
  +
  +    public static final ROIntArray spaceAfterNonCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.SPACE_AFTER_CONDITIONALITY
  +            ,PropNames.SPACE_AFTER_PRECEDENCE
  +        });
  +
  +    public static final ROIntArray spaceBeforeCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.SPACE_BEFORE_MINIMUM
  +            ,PropNames.SPACE_BEFORE_OPTIMUM
  +            ,PropNames.SPACE_BEFORE_MAXIMUM
  +        });
  +
  +    public static final ROIntArray spaceBeforeNonCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.SPACE_BEFORE_CONDITIONALITY
  +            ,PropNames.SPACE_BEFORE_PRECEDENCE
  +        });
  +
  +    public static final ROIntArray spaceEndCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.SPACE_END_MINIMUM
  +            ,PropNames.SPACE_END_OPTIMUM
  +            ,PropNames.SPACE_END_MAXIMUM
  +        });
  +
  +    public static final ROIntArray spaceEndNonCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.SPACE_END_CONDITIONALITY
  +            ,PropNames.SPACE_END_PRECEDENCE
  +        });
  +
  +    public static final ROIntArray spaceStartCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.SPACE_START_MINIMUM
  +            ,PropNames.SPACE_START_OPTIMUM
  +            ,PropNames.SPACE_START_MAXIMUM
  +        });
  +
  +    public static final ROIntArray spaceStartNonCopyExpansion =
  +        new ROIntArray(new int[] {
  +            PropNames.SPACE_START_CONDITIONALITY
  +            ,PropNames.SPACE_START_PRECEDENCE
  +        });
  +
  +    private static final int[] compounds = {
  +        PropNames.BLOCK_PROGRESSION_DIMENSION
  +        ,PropNames.BORDER_AFTER_WIDTH
  +        ,PropNames.BORDER_BEFORE_WIDTH
  +        ,PropNames.BORDER_END_WIDTH
  +        ,PropNames.BORDER_START_WIDTH
  +        ,PropNames.BORDER_SEPARATION
  +        ,PropNames.INLINE_PROGRESSION_DIMENSION
  +        ,PropNames.KEEP_TOGETHER
  +        ,PropNames.KEEP_WITH_NEXT
  +        ,PropNames.KEEP_WITH_PREVIOUS
  +        ,PropNames.LEADER_LENGTH
  +        ,PropNames.LINE_HEIGHT
  +        ,PropNames.PADDING_AFTER
  +        ,PropNames.PADDING_BEFORE
  +        ,PropNames.PADDING_END
  +        ,PropNames.PADDING_START
  +        ,PropNames.SPACE_AFTER
  +        ,PropNames.SPACE_BEFORE
  +        ,PropNames.SPACE_END
  +        ,PropNames.SPACE_START
  +        ,PropNames.WORD_SPACING
  +    };
  +
  +    /**
  +     * Map property index to compound array index
  +     */
  +    private static final HashMap compoundMap;
  +    static {
  +        compoundMap = new HashMap(compounds.length);
  +        for (int i = 0; i < compounds.length; i++) {
  +            compoundMap.put
  +                    ((Object)(Ints.consts.get(compounds[i])), 
  +                     (Object)(Ints.consts.get(i)));
  +        }
  +    }
  +
  +    /**
  +     * RO compound properties.
  +     */
  +    public static final ROIntArray roCompounds;
  +    static {
  +        roCompounds = new ROIntArray(compounds);
       }
   
       private PropertySets (){}
  
  
  
  1.1.2.4   +16 -6     xml-fop/src/org/apache/fop/fo/Attic/PropNames.java
  
  Index: PropNames.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/Attic/PropNames.java,v
  retrieving revision 1.1.2.3
  retrieving revision 1.1.2.4
  diff -u -r1.1.2.3 -r1.1.2.4
  --- PropNames.java	19 Aug 2002 16:26:55 -0000	1.1.2.3
  +++ PropNames.java	27 Aug 2002 15:38:35 -0000	1.1.2.4
  @@ -368,9 +368,14 @@
                                            WIDOWS = 304,
                                             WIDTH = 305,
                                      WORD_SPACING = 306,
  -                                    WRAP_OPTION = 307,
  -                                   WRITING_MODE = 308,
  -                                        Z_INDEX = 309,
  +                           WORD_SPACING_MINIMUM = 307,
  +                           WORD_SPACING_OPTIMUM = 308,
  +                           WORD_SPACING_MAXIMUM = 309,
  +                    WORD_SPACING_CONDITIONALITY = 310,
  +                        WORD_SPACING_PRECEDENCE = 311,
  +                                    WRAP_OPTION = 312,
  +                                   WRITING_MODE = 313,
  +                                        Z_INDEX = 314,
           
                               LAST_PROPERTY_INDEX = Z_INDEX;
   
  @@ -703,6 +708,11 @@
           "widows",
           "width",
           "word-spacing",
  +        "word-spacing-minimum",
  +        "word-spacing-optimum",
  +        "word-spacing-maximum",
  +        "word-spacing-conditionality",
  +        "word-spacing-precedence",
           "wrap-option",
           "writing-mode",
           "z-index"
  
  
  
  1.1.2.20  +337 -131  xml-fop/src/org/apache/fop/fo/Attic/Properties.java
  
  Index: Properties.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/Attic/Properties.java,v
  retrieving revision 1.1.2.19
  retrieving revision 1.1.2.20
  diff -u -r1.1.2.19 -r1.1.2.20
  --- Properties.java	19 Aug 2002 16:42:14 -0000	1.1.2.19
  +++ Properties.java	27 Aug 2002 15:38:35 -0000	1.1.2.20
  @@ -117,7 +117,7 @@
                             ,BOOL = 131072
                          ,INHERIT = 262144
                             ,ENUM = 524288
  -                ,MAPPED_NUMERIC = 1048576
  +                 ,MAPPED_LENGTH = 1048576
                        ,SHORTHAND = 2097152
                          ,COMPLEX = 4194304
                             ,AUTO = 8388608
  @@ -142,7 +142,7 @@
       // will have to be adjusted.  pbw
   
                           ,NUMBER = FLOAT | INTEGER
  -                     ,ENUM_TYPE = ENUM | MAPPED_NUMERIC
  +                     ,ENUM_TYPE = ENUM | MAPPED_LENGTH
                           ,STRING = LITERAL | ENUM_TYPE
                        ,HYPH_TYPE = COUNTRY_T | LANGUAGE_T | SCRIPT_T
                          ,ID_TYPE = ID_T | IDREF
  @@ -183,8 +183,8 @@
           if ((datatypes & BOOL) != 0) typeNames += "<BOOL>|";
           if ((datatypes & INHERIT) != 0) typeNames += "<INHERIT>|";
           if ((datatypes & ENUM) != 0) typeNames += "<ENUM>|";
  -        if ((datatypes & MAPPED_NUMERIC) != 0) typeNames
  -                                                    += "<MAPPED_NUMERIC>|";
  +        if ((datatypes & MAPPED_LENGTH) != 0) typeNames
  +                                                    += "<MAPPED_LENGTH>|";
           if ((datatypes & SHORTHAND) != 0) typeNames += "<SHORTHAND>|";
           if ((datatypes & COMPLEX) != 0) typeNames += "<COMPLEX>|";
           if ((datatypes & AUTO) != 0) typeNames += "<AUTO>|";
  @@ -269,7 +269,8 @@
                                NO = 0
                         ,COMPUTED = 1
                        ,SPECIFIED = 2
  -                ,VALUE_SPECIFIC = 3
  +                  ,COMPOUND_INH = 3
  +                ,VALUE_SPECIFIC = 4
                                 ;
   
       /**
  @@ -347,7 +348,7 @@
               String ncname = ((NCName)value).getNCName();
               // Can by any of
               // NAME, COUNTRY_T, LANGUAGE_T, SCRIPT_T, ID_T, IDREF, ENUM
  -            // MAPPED_NUMERIC or CHARACTER_T
  +            // MAPPED_LENGTH or CHARACTER_T
               if ((datatype & (NAME | ID_T | IDREF | CHARACTER_T)) != 0)
                   return value;
               if ((datatype & COUNTRY_T) != 0)
  @@ -358,7 +359,7 @@
                   return new ScriptType(property, ncname);
               if ((datatype & ENUM) != 0)
                   return new EnumType(property, ncname);
  -            if ((datatype & MAPPED_NUMERIC) != 0)
  +            if ((datatype & MAPPED_LENGTH) != 0)
                   return (new MappedNumeric(property, ncname, foTree))
                                   .getMappedNumValue();
           }
  @@ -714,6 +715,14 @@
               ,"medium"
               ,"thick"
           };
  +
  +        private static final double[] mappedPoints = {
  +            0d
  +            ,0.5d
  +            ,1d
  +            ,2d
  +        };
  +        
           public static final ROStringArray enums = new ROStringArray(rwEnums);
           public static final ROStringArray enumValues = enums;
   
  @@ -722,21 +731,15 @@
   
           /**
            * @param <tt>int</tt> property index
  +         * @param <tt>int</tt> mappedEnum enumeration value
            * @return <tt>Numeric[]</tt> containing the values corresponding
            * to the MappedNumeric enumeration constants for border width
            */
  -        public static Numeric[] borderWidthNumArray(int property)
  +        public static Numeric getMappedLength(int property, int enum)
               throws PropertyException
           {
  -            Numeric[] numarray = new Numeric[4];
  -            numarray[0] = null;
  -            numarray[1] =
  -                Length.makeLength(property, 0.5d, Length.PT); // thin
  -            numarray[2] =
  -                Length.makeLength(property, 1d, Length.PT); // medium
  -            numarray[3] =
  -                Length.makeLength(property, 2d, Length.PT); // thick // thick
  -            return numarray;
  +            return 
  +                Length.makeLength(property, mappedPoints[enum], Length.PT);
           }
   
       }
  @@ -1998,21 +2001,20 @@
       // if the mapping changes.
       public static class BorderAfterWidth extends Properties {
           public static final int dataTypes =
  -                                COMPOUND | MAPPED_NUMERIC | LENGTH | INHERIT;
  +                                COMPOUND | MAPPED_LENGTH | LENGTH | INHERIT;
           public static final int traitMapping = FORMATTING | RENDERING;
           public static final int initialValueType = LENGTH_IT;
           public static PropertyValue getInitialValue(int property)
               throws PropertyException
           {
  -            return Length.makeLength
  -                                (PropNames.BORDER_AFTER_WIDTH, 1d, Length.PT);
  +            return getMappedLength(BorderCommonWidth.MEDIUM);
           }
   
  -        public static Numeric[] getMappedNumArray()
  +        public static Numeric getMappedLength(int enum)
               throws PropertyException
           {
  -            return Properties.BorderCommonWidth.borderWidthNumArray
  -                                            (PropNames.BORDER_AFTER_WIDTH);
  +            return Properties.BorderCommonWidth.getMappedLength
  +                                        (PropNames.BORDER_AFTER_WIDTH, enum);
           }
   
           public static final int inherited = NO;
  @@ -2023,10 +2025,27 @@
       }
   
       public static class BorderAfterWidthLength extends Properties {
  -        public static final int dataTypes = LENGTH;
  +        public static final int dataTypes = MAPPED_LENGTH | LENGTH;
           public static final int traitMapping = FORMATTING | RENDERING;
  -        public static final int initialValueType = NOTYPE_IT;
  +        public static final int initialValueType = LENGTH_IT;
  +        public static PropertyValue getInitialValue(int property)
  +            throws PropertyException
  +        {
  +            return getMappedLength(BorderCommonWidth.MEDIUM);
  +        }
  +
  +        public static Numeric getMappedLength(int enum)
  +            throws PropertyException
  +        {
  +            return Properties.BorderCommonWidth.getMappedLength
  +                                (PropNames.BORDER_AFTER_WIDTH_LENGTH, enum);
  +        }
  +
           public static final int inherited = NO;
  +
  +        public static final ROStringArray enums = BorderCommonWidth.enums;
  +        public static final ROStringArray enumValues
  +                                            = BorderCommonWidth.enumValues;
       }
   
       public static class BorderAfterWidthConditionality extends Properties {
  @@ -2054,7 +2073,8 @@
           public static PropertyValue getInitialValue(int property)
               throws PropertyException
           {
  -            return new ColorType (PropNames.BACKGROUND_COLOR, ColorCommon.BLACK);
  +            return new ColorType
  +                            (PropNames.BACKGROUND_COLOR, ColorCommon.BLACK);
           }
   
           public static final ROStringArray enums = ColorCommon.enums;
  @@ -2085,21 +2105,20 @@
   
       public static class BorderBeforeWidth extends Properties {
           public static final int dataTypes =
  -                                COMPOUND | MAPPED_NUMERIC | LENGTH | INHERIT;
  +                                COMPOUND | MAPPED_LENGTH | LENGTH | INHERIT;
           public static final int traitMapping = FORMATTING | RENDERING;
           public static final int initialValueType = LENGTH_IT;
           public static PropertyValue getInitialValue(int property)
               throws PropertyException
           {
  -            return Length.makeLength
  -                            (PropNames.BORDER_BEFORE_WIDTH, 1d, Length.PT);
  +            return getMappedLength(BorderCommonWidth.MEDIUM);
           }
   
  -        public static Numeric[] getMappedNumArray()
  +        public static Numeric getMappedLength(int enum)
               throws PropertyException
           {
  -            return Properties.BorderCommonWidth.borderWidthNumArray
  -                                            (PropNames.BORDER_BEFORE_WIDTH);
  +            return Properties.BorderCommonWidth.getMappedLength
  +                                        (PropNames.BORDER_BEFORE_WIDTH, enum);
           }
   
           public static final int inherited = NO;
  @@ -2110,10 +2129,26 @@
       }
   
       public static class BorderBeforeWidthLength extends Properties {
  -        public static final int dataTypes = LENGTH;
  +        public static final int dataTypes = MAPPED_LENGTH | LENGTH;
           public static final int traitMapping = FORMATTING | RENDERING;
  -        public static final int initialValueType = NOTYPE_IT;
  +        public static final int initialValueType = LENGTH_IT;
  +        public static PropertyValue getInitialValue(int property)
  +            throws PropertyException
  +        {
  +            return getMappedLength(BorderCommonWidth.MEDIUM);
  +        }
  +
  +        public static Numeric getMappedLength(int enum)
  +            throws PropertyException
  +        {
  +            return Properties.BorderCommonWidth.getMappedLength
  +                                (PropNames.BORDER_BEFORE_WIDTH_LENGTH, enum);
  +        }
           public static final int inherited = NO;
  +
  +        public static final ROStringArray enums = BorderCommonWidth.enums;
  +        public static final ROStringArray enumValues
  +                                            = BorderCommonWidth.enumValues;
       }
   
       public static class BorderBeforeWidthConditionality extends Properties {
  @@ -2196,21 +2231,20 @@
       }
   
       public static class BorderBottomWidth extends Properties {
  -        public static final int dataTypes = MAPPED_NUMERIC | INHERIT;
  +        public static final int dataTypes = MAPPED_LENGTH | INHERIT;
           public static final int traitMapping = DISAPPEARS;
           public static final int initialValueType = LENGTH_IT;
           public static PropertyValue getInitialValue(int property)
               throws PropertyException
           {
  -            return Length.makeLength
  -                            (PropNames.BORDER_BOTTOM_WIDTH, 1d, Length.PT);
  +            return getMappedLength(BorderCommonWidth.MEDIUM);
           }
   
  -        public static Numeric[] getMappedNumArray()
  +        public static Numeric getMappedLength(int enum)
               throws PropertyException
           {
  -            return Properties.BorderCommonWidth.borderWidthNumArray
  -                                            (PropNames.BORDER_BOTTOM_WIDTH);
  +            return Properties.BorderCommonWidth.getMappedLength
  +                                        (PropNames.BORDER_BOTTOM_WIDTH, enum);
           }
   
           public static final int inherited = NO;
  @@ -2445,21 +2479,20 @@
   
       public static class BorderEndWidth extends Properties {
           public static final int dataTypes =
  -                                COMPOUND | MAPPED_NUMERIC | LENGTH | INHERIT;
  +                                COMPOUND | MAPPED_LENGTH | LENGTH | INHERIT;
           public static final int traitMapping = FORMATTING | RENDERING;
           public static final int initialValueType = LENGTH_IT;
           public static PropertyValue getInitialValue(int property)
               throws PropertyException
           {
  -            return Length.makeLength
  -                                (PropNames.BORDER_END_WIDTH, 1d, Length.PT);
  +            return getMappedLength(BorderCommonWidth.MEDIUM);
           }
   
  -        public static Numeric[] getMappedNumArray()
  +        public static Numeric getMappedLength(int enum)
               throws PropertyException
           {
  -            return Properties.BorderCommonWidth.borderWidthNumArray
  -                                            (PropNames.BORDER_END_WIDTH);
  +            return Properties.BorderCommonWidth.getMappedLength
  +                                        (PropNames.BORDER_END_WIDTH, enum);
           }
   
           public static final int inherited = NO;
  @@ -2470,10 +2503,27 @@
       }
   
       public static class BorderEndWidthLength extends Properties {
  -        public static final int dataTypes = LENGTH;
  +        public static final int dataTypes = MAPPED_LENGTH | LENGTH;
           public static final int traitMapping = FORMATTING | RENDERING;
  -        public static final int initialValueType = NOTYPE_IT;
  +        public static final int initialValueType = LENGTH_IT;
  +        public static PropertyValue getInitialValue(int property)
  +            throws PropertyException
  +        {
  +            return getMappedLength(BorderCommonWidth.MEDIUM);
  +        }
  +
  +        public static Numeric getMappedLength(int enum)
  +            throws PropertyException
  +        {
  +            return Properties.BorderCommonWidth.getMappedLength
  +                                (PropNames.BORDER_END_WIDTH_LENGTH, enum);
  +        }
  +
           public static final int inherited = NO;
  +
  +        public static final ROStringArray enums = BorderCommonWidth.enums;
  +        public static final ROStringArray enumValues
  +                                            = BorderCommonWidth.enumValues;
       }
   
       public static class BorderEndWidthConditionality extends Properties {
  @@ -2556,21 +2606,20 @@
       }
   
       public static class BorderLeftWidth extends Properties {
  -        public static final int dataTypes = MAPPED_NUMERIC | INHERIT;
  +        public static final int dataTypes = MAPPED_LENGTH | INHERIT;
           public static final int traitMapping = DISAPPEARS;
           public static final int initialValueType = LENGTH_IT;
           public static PropertyValue getInitialValue(int property)
               throws PropertyException
           {
  -            return Length.makeLength
  -                                (PropNames.BORDER_LEFT_WIDTH, 1d, Length.PT);
  +            return getMappedLength(BorderCommonWidth.MEDIUM);
           }
   
  -        public static Numeric[] getMappedNumArray()
  +        public static Numeric getMappedLength(int enum)
               throws PropertyException
           {
  -            return Properties.BorderCommonWidth.borderWidthNumArray
  -                                            (PropNames.BORDER_LEFT_WIDTH);
  +            return Properties.BorderCommonWidth.getMappedLength
  +                                        (PropNames.BORDER_LEFT_WIDTH, enum);
           }
   
           public static final int inherited = NO;
  @@ -2644,21 +2693,20 @@
       }
   
       public static class BorderRightWidth extends Properties {
  -        public static final int dataTypes = MAPPED_NUMERIC | INHERIT;
  +        public static final int dataTypes = MAPPED_LENGTH | INHERIT;
           public static final int traitMapping = DISAPPEARS;
           public static final int initialValueType = LENGTH_IT;
           public static PropertyValue getInitialValue(int property)
               throws PropertyException
           {
  -            return Length.makeLength
  -                                (PropNames.BORDER_RIGHT_WIDTH, 1d, Length.PT);
  +            return getMappedLength(BorderCommonWidth.MEDIUM);
           }
   
  -        public static Numeric[] getMappedNumArray()
  +        public static Numeric getMappedLength(int enum)
               throws PropertyException
           {
  -            return Properties.BorderCommonWidth.borderWidthNumArray
  -                                            (PropNames.BORDER_RIGHT_WIDTH);
  +            return Properties.BorderCommonWidth.getMappedLength
  +                                        (PropNames.BORDER_RIGHT_WIDTH, enum);
           }
   
           public static final int inherited = NO;
  @@ -2687,7 +2735,7 @@
                   (PropNames.BORDER_SEPARATION_BLOCK_PROGRESSION_DIRECTION,
                       0.0d, Length.PT);
           }
  -        public static final int inherited = NO;
  +        public static final int inherited = COMPUTED;
       }
   
       public static class BorderSeparationInlineProgressionDirection
  @@ -2702,7 +2750,7 @@
                   (PropNames.BORDER_SEPARATION_INLINE_PROGRESSION_DIRECTION,
                       0.0d, Length.PT);
           }
  -        public static final int inherited = NO;
  +        public static final int inherited = COMPUTED;
       }
   
       public static class BorderSpacing extends Properties {
  @@ -2811,21 +2859,20 @@
   
       public static class BorderStartWidth extends Properties {
           public static final int dataTypes =
  -                                COMPOUND | MAPPED_NUMERIC | LENGTH | INHERIT;
  +                                COMPOUND | MAPPED_LENGTH | LENGTH | INHERIT;
           public static final int traitMapping = FORMATTING | RENDERING;
           public static final int initialValueType = LENGTH_IT;
           public static PropertyValue getInitialValue(int property)
               throws PropertyException
           {
  -            return Length.makeLength
  -                                (PropNames.BORDER_START_WIDTH, 1d, Length.PT);
  +            return getMappedLength(BorderCommonWidth.MEDIUM);
           }
   
  -        public static Numeric[] getMappedNumArray()
  +        public static Numeric getMappedLength(int enum)
               throws PropertyException
           {
  -            return Properties.BorderCommonWidth.borderWidthNumArray
  -                                            (PropNames.BORDER_START_WIDTH);
  +            return Properties.BorderCommonWidth.getMappedLength
  +                                        (PropNames.BORDER_START_WIDTH, enum);
           }
   
           public static final int inherited = NO;
  @@ -2836,10 +2883,27 @@
       }
   
       public static class BorderStartWidthLength extends Properties {
  -        public static final int dataTypes = LENGTH;
  +        public static final int dataTypes = MAPPED_LENGTH | LENGTH;
           public static final int traitMapping = FORMATTING | RENDERING;
  -        public static final int initialValueType = NOTYPE_IT;
  +        public static final int initialValueType = LENGTH_IT;
  +        public static PropertyValue getInitialValue(int property)
  +            throws PropertyException
  +        {
  +            return getMappedLength(BorderCommonWidth.MEDIUM);
  +        }
  +
  +        public static Numeric getMappedLength(int enum)
  +            throws PropertyException
  +        {
  +            return Properties.BorderCommonWidth.getMappedLength
  +                                (PropNames.BORDER_START_WIDTH_LENGTH, enum);
  +        }
  +
           public static final int inherited = NO;
  +
  +        public static final ROStringArray enums = BorderCommonWidth.enums;
  +        public static final ROStringArray enumValues
  +                                            = BorderCommonWidth.enumValues;
       }
   
       public static class BorderStartWidthConditionality extends Properties {
  @@ -3051,21 +3115,20 @@
       }
   
       public static class BorderTopWidth extends Properties {
  -        public static final int dataTypes = MAPPED_NUMERIC | INHERIT;
  +        public static final int dataTypes = MAPPED_LENGTH | INHERIT;
           public static final int traitMapping = DISAPPEARS;
           public static final int initialValueType = LENGTH_IT;
           public static PropertyValue getInitialValue(int property)
               throws PropertyException
           {
  -            return Length.makeLength
  -                                (PropNames.BORDER_TOP_WIDTH, 1d, Length.PT);
  +            return getMappedLength(BorderCommonWidth.MEDIUM);
           }
   
  -        public static Numeric[] getMappedNumArray()
  +        public static Numeric getMappedLength(int enum)
               throws PropertyException
           {
  -            return Properties.BorderCommonWidth.borderWidthNumArray
  -                                            (PropNames.BORDER_TOP_WIDTH);
  +            return Properties.BorderCommonWidth.getMappedLength
  +                                        (PropNames.BORDER_TOP_WIDTH, enum);
           }
   
           public static final int inherited = NO;
  @@ -3141,10 +3204,13 @@
                   }
                   if (value instanceof NCName) {
                       // Must be a border-width
  +                    // BorderWidth does not support a mapped enum
  +                    // transformation directly, so use BorderTopWidth to
  +                    // check for mapped enum.
                       Numeric mapped;
                       try {
                           mapped =
  -                            (new MappedNumeric(PropNames.BORDER_WIDTH,
  +                            (new MappedNumeric(PropNames.BORDER_TOP_WIDTH,
                                   ((NCName)value).getNCName(), foTree))
                                       .getMappedNumValue();
                       } catch (PropertyException e) {
  @@ -3152,6 +3218,8 @@
                               (((NCName)value).getNCName() +
                                                       " not a border-width");
                       }
  +                    // Correct the property in the mapped Numeric
  +                    mapped.setProperty(PropNames.BORDER_WIDTH);
                       return PropertySets.expandAndCopySHand(mapped);
                   }
                   else throw new PropertyException
  @@ -4378,7 +4446,7 @@
   
       public static class FontSize extends Properties {
           public static final int dataTypes =
  -                            PERCENTAGE | LENGTH | MAPPED_NUMERIC | INHERIT;
  +                            PERCENTAGE | LENGTH | MAPPED_LENGTH | INHERIT;
           public static final int traitMapping = FORMATTING| RENDERING;
           public static final int initialValueType = LENGTH_IT;
           public static final int XX_SMALL = 1;
  @@ -4395,7 +4463,7 @@
           public static PropertyValue getInitialValue(int property)
               throws PropertyException
           {
  -            return  Length.makeLength(PropNames.FONT_SIZE, 12d, Length.PT);
  +            return getMappedLength(MEDIUM);
           }
   
           public static final int inherited = COMPUTED;
  @@ -4413,29 +4481,28 @@
               ,"smaller"
           };
   
  -        public static Numeric[] getMappedNumArray()
  +        // N.B. this is a combination of points and ems
  +        private static final double[] mappedLengths = {
  +            0d
  +            ,7d         // xx-small
  +            ,8.3d       // x-small
  +            ,10d        // small
  +            ,12d        // medium
  +            ,14.4d      // large
  +            ,17.3d      // x-large
  +            ,20.7d      // xx-large
  +            ,1.2d       // larger
  +            ,0.83d      // smaller
  +        };
  +
  +        public static Numeric getMappedLength(int enum)
               throws PropertyException
           {
  -            int property = PropNames.FONT_SIZE;
  -            Numeric[] numarray = new Numeric[10];
  -            numarray[0] = null;
  -            numarray[1] =
  -                Length.makeLength(property, 7d, Length.PT); // xx-small
  -            numarray[2] =
  -                Length.makeLength(property, 8.3d, Length.PT); // x-small
  -            numarray[3] =
  -                Length.makeLength(property, 10d, Length.PT); // small
  -            numarray[4] =
  -                Length.makeLength(property, 12d, Length.PT); // medium
  -            numarray[5] =
  -                Length.makeLength(property, 14.4d, Length.PT); // large
  -            numarray[6] =
  -                Length.makeLength(property, 17.3d, Length.PT); // x-large
  -            numarray[7] =
  -                Length.makeLength(property, 20.7d, Length.PT); // xx-large
  -            numarray[8] = Ems.makeEms(property, 1.2d); // larger
  -            numarray[9] = Ems.makeEms(property, 0.83d); // smaller
  -            return numarray;
  +            if (enum == LARGER || enum == SMALLER)
  +                return Ems.makeEms(PropNames.FONT_SIZE, mappedLengths[enum]);
  +            return
  +                Length.makeLength
  +                        (PropNames.FONT_SIZE, mappedLengths[enum], Length.PT);
           }
   
           public static final ROStringArray enums = new ROStringArray(rwEnums);
  @@ -4900,7 +4967,8 @@
       }
   
       public static class KeepTogether extends Properties {
  -        public static final int dataTypes = AUTO | ENUM | INTEGER | INHERIT;
  +        public static final int dataTypes =
  +                                COMPOUND | AUTO | ENUM | INTEGER | INHERIT;
           public static final int traitMapping = FORMATTING;
           public static final int initialValueType = NOTYPE_IT;
           public static final int inherited = COMPUTED;
  @@ -4910,25 +4978,26 @@
           public static final int dataTypes = AUTO | ENUM | INTEGER | INHERIT;
           public static final int traitMapping = FORMATTING;
           public static final int initialValueType = AUTO_IT;
  -        public static final int inherited = NO;
  +        public static final int inherited = COMPUTED;
       }
   
       public static class KeepTogetherWithinColumn extends Properties {
           public static final int dataTypes = AUTO | ENUM | INTEGER | INHERIT;
           public static final int traitMapping = FORMATTING;
           public static final int initialValueType = AUTO_IT;
  -        public static final int inherited = NO;
  +        public static final int inherited = COMPUTED;
       }
   
       public static class KeepTogetherWithinPage extends Properties {
           public static final int dataTypes = AUTO | ENUM | INTEGER | INHERIT;
           public static final int traitMapping = FORMATTING;
           public static final int initialValueType = AUTO_IT;
  -        public static final int inherited = NO;
  +        public static final int inherited = COMPUTED;
       }
   
       public static class KeepWithNext extends Properties {
  -        public static final int dataTypes = AUTO | ENUM | INTEGER | INHERIT;
  +        public static final int dataTypes =
  +                                COMPOUND | AUTO | ENUM | INTEGER | INHERIT;
           public static final int traitMapping = FORMATTING;
           public static final int initialValueType = NOTYPE_IT;
           public static final int inherited = NO;
  @@ -4956,7 +5025,8 @@
       }
   
       public static class KeepWithPrevious extends Properties {
  -        public static final int dataTypes = AUTO | ENUM | INTEGER | INHERIT;
  +        public static final int dataTypes =
  +                                COMPOUND | AUTO | ENUM | INTEGER | INHERIT;
           public static final int traitMapping = FORMATTING;
           public static final int initialValueType = NOTYPE_IT;
           public static final int inherited = NO;
  @@ -5038,7 +5108,7 @@
               return Length.makeLength(PropNames.LEADER_LENGTH_MINIMUM,
                                                               0.0d, Length.PT);
           }
  -        public static final int inherited = NO;
  +        public static final int inherited = COMPUTED;
       }
   
       public static class LeaderLengthOptimum extends Properties {
  @@ -5051,7 +5121,7 @@
               return Length.makeLength(PropNames.LEADER_LENGTH_OPTIMUM,
                                                               12.0d, Length.PT);
           }
  -        public static final int inherited = NO;
  +        public static final int inherited = COMPUTED;
       }
   
       public static class LeaderLengthMaximum extends Properties {
  @@ -5064,7 +5134,7 @@
               return Percentage.makePercentage
                                       (PropNames.LEADER_LENGTH_MAXIMUM, 100.0d);
           }
  -        public static final int inherited = NO;
  +        public static final int inherited = COMPUTED;
       }
   
       public static class LeaderPattern extends Properties {
  @@ -5187,9 +5257,9 @@
   
       public static class LineHeight extends Properties {
           public static final int dataTypes =
  -            COMPOUND| PERCENTAGE | LENGTH | NUMBER | MAPPED_NUMERIC | INHERIT;
  +            COMPOUND| PERCENTAGE | LENGTH | NUMBER | MAPPED_LENGTH | INHERIT;
           public static final int traitMapping = FORMATTING;
  -        public static final int initialValueType = NOTYPE_IT;
  +        public static final int initialValueType = LENGTH_IT;
           public static final int NORMAL = 1;
           public static final int inherited = VALUE_SPECIFIC;
   
  @@ -5200,14 +5270,13 @@
           public static final ROStringArray enums = new ROStringArray(rwEnums);
           public static final ROStringArray enumValues = enums;
   
  -        public static Numeric[] getMappedNumArray()
  +        public static Numeric getMappedLength(int enum)
               throws PropertyException
           {
  -            int property = PropNames.LINE_HEIGHT;
  -            Numeric[] numarray = new Numeric[2];
  -            numarray[0] = null;
  -            numarray[1] = Ems.makeEms(property, 1.2d); // normal
  -            return numarray;
  +            if (enum != NORMAL)
  +                throw new PropertyException("Invalid MAPPED_LENGTH enum: "
  +                                            + enum);
  +            return Ems.makeEms(PropNames.LINE_HEIGHT, 1.2d); // normal
           }
   
       }
  @@ -5221,7 +5290,7 @@
           {
               return Ems.makeEms(PropNames.LINE_HEIGHT, 1.2d);
           }
  -        public static final int inherited = NO;
  +        public static final int inherited = VALUE_SPECIFIC;
       }
   
       public static class LineHeightOptimum extends Properties {
  @@ -5233,7 +5302,7 @@
           {
               return Ems.makeEms(PropNames.LINE_HEIGHT, 1.2d);
           }
  -        public static final int inherited = NO;
  +        public static final int inherited = VALUE_SPECIFIC;
       }
   
       public static class LineHeightMaximum extends Properties {
  @@ -5245,7 +5314,7 @@
           {
               return Ems.makeEms(PropNames.LINE_HEIGHT, 1.2d);
           }
  -        public static final int inherited = NO;
  +        public static final int inherited = VALUE_SPECIFIC;
       }
   
       public static class LineHeightConditionality extends Properties {
  @@ -5258,7 +5327,7 @@
               return new EnumType(PropNames.SPACE_AFTER_CONDITIONALITY,
                                                       Conditionality.DISCARD);
           }
  -        public static final int inherited = NO;
  +        public static final int inherited = COMPUTED;
   
           public static final ROStringArray enums = Conditionality.enums;
           public static final ROStringArray enumValues
  @@ -5268,14 +5337,15 @@
       public static class LineHeightPrecedence extends Properties {
           public static final int dataTypes = INTEGER | ENUM;
           public static final int traitMapping = FORMATTING;
  -        public static final int initialValueType = INTEGER_IT;
  +        public static final int initialValueType = ENUM_IT;
           public static PropertyValue getInitialValue(int property)
               throws PropertyException
           {
  -            return new IntegerType(PropNames.LINE_HEIGHT_PRECEDENCE, 0);
  +            return new EnumType
  +                (PropNames.LINE_HEIGHT_PRECEDENCE, PrecedenceCommon.FORCE);
           }
   
  -        public static final int inherited = NO;
  +        public static final int inherited = COMPUTED;
   
           public static final ROStringArray enums = PrecedenceCommon.enums;
           public static final ROStringArray enumValues
  @@ -5851,7 +5921,8 @@
       }
   
       public static class PaddingBefore extends Properties {
  -        public static final int dataTypes = PERCENTAGE | LENGTH | INHERIT;
  +        public static final int dataTypes =
  +                                    COMPOUND |PERCENTAGE | LENGTH | INHERIT;
           public static final int traitMapping = FORMATTING | RENDERING;
           public static final int initialValueType = LENGTH_IT;
           public static PropertyValue getInitialValue(int property)
  @@ -7955,14 +8026,15 @@
       }
   
       public static class WordSpacing extends Properties {
  -        public static final int dataTypes = LENGTH | ENUM | INHERIT;
  +        public static final int dataTypes =
  +                                COMPOUND | LENGTH | MAPPED_LENGTH | INHERIT;
           public static final int traitMapping = DISAPPEARS;
  -        public static final int initialValueType = ENUM_IT;
  +        public static final int initialValueType = LENGTH_IT;
           public static final int NORMAL = 1;
           public static PropertyValue getInitialValue(int property)
               throws PropertyException
           {
  -            return new EnumType (PropNames.WORD_SPACING, NORMAL);
  +            return Length.makeLength(property, 0d, Length.PT); //normal
           }
           public static final int inherited = COMPUTED;
   
  @@ -7972,6 +8044,140 @@
           };
           public static final ROStringArray enums = new ROStringArray(rwEnums);
           public static final ROStringArray enumValues = enums;
  +
  +        public static Numeric getMappedLength(int enum)
  +            throws PropertyException
  +        {
  +            if (enum != NORMAL)
  +                throw new PropertyException("Invalid MAPPED_LENGTH enum: "
  +                                            + enum);
  +            return Length.makeLength(PropNames.WORD_SPACING, 0d, Length.PT);
  +        }
  +    }
  +
  +    public static class WordSpacingMinimum extends Properties {
  +        public static final int dataTypes = MAPPED_LENGTH | LENGTH;
  +        public static final int traitMapping = DISAPPEARS;
  +        public static final int initialValueType = LENGTH_IT;
  +        public static final int NORMAL = 1;
  +        public static PropertyValue getInitialValue(int property)
  +            throws PropertyException
  +        {
  +            return Length.makeLength(property, 0d, Length.PT); //normal
  +        }
  +        public static final int inherited = COMPUTED;
  +
  +        private static final String[] rwEnums = {
  +            null
  +            ,"normal"
  +        };
  +        public static final ROStringArray enums = new ROStringArray(rwEnums);
  +        public static final ROStringArray enumValues = enums;
  +
  +        public static Numeric getMappedLength(int enum)
  +            throws PropertyException
  +        {
  +            if (enum != NORMAL)
  +                throw new PropertyException("Invalid MAPPED_LENGTH enum: "
  +                                            + enum);
  +            return Length.makeLength
  +                            (PropNames.WORD_SPACING_MINIMUM, 0d, Length.PT);
  +        }
  +    }
  +
  +    public static class WordSpacingOptimum extends Properties {
  +        public static final int dataTypes = MAPPED_LENGTH | LENGTH;
  +        public static final int traitMapping = DISAPPEARS;
  +        public static final int initialValueType = LENGTH_IT;
  +        public static final int NORMAL = 1;
  +        public static PropertyValue getInitialValue(int property)
  +            throws PropertyException
  +        {
  +            return Length.makeLength(property, 0d, Length.PT); //normal
  +        }
  +        public static final int inherited = COMPUTED;
  +
  +        private static final String[] rwEnums = {
  +            null
  +            ,"normal"
  +        };
  +        public static final ROStringArray enums = new ROStringArray(rwEnums);
  +        public static final ROStringArray enumValues = enums;
  +
  +        public static Numeric getMappedLength(int enum)
  +            throws PropertyException
  +        {
  +            if (enum != NORMAL)
  +                throw new PropertyException("Invalid MAPPED_LENGTH enum: "
  +                                            + enum);
  +            return Length.makeLength
  +                            (PropNames.WORD_SPACING_OPTIMUM, 0d, Length.PT);
  +        }
  +    }
  +
  +    public static class WordSpacingMaximum extends Properties {
  +        public static final int dataTypes = MAPPED_LENGTH | LENGTH;
  +        public static final int traitMapping = DISAPPEARS;
  +        public static final int initialValueType = LENGTH_IT;
  +        public static final int NORMAL = 1;
  +        public static PropertyValue getInitialValue(int property)
  +            throws PropertyException
  +        {
  +            return Length.makeLength(property, 0d, Length.PT); //normal
  +        }
  +        public static final int inherited = COMPUTED;
  +
  +        private static final String[] rwEnums = {
  +            null
  +            ,"normal"
  +        };
  +        public static final ROStringArray enums = new ROStringArray(rwEnums);
  +        public static final ROStringArray enumValues = enums;
  +
  +        public static Numeric getMappedLength(int enum)
  +            throws PropertyException
  +        {
  +            if (enum != NORMAL)
  +                throw new PropertyException("Invalid MAPPED_LENGTH enum: "
  +                                            + enum);
  +            return Length.makeLength
  +                            (PropNames.WORD_SPACING_MAXIMUM, 0d, Length.PT);
  +        }
  +    }
  +
  +    public static class WordSpacingConditionality extends Properties {
  +        public static final int dataTypes = ENUM;
  +        public static final int traitMapping = FORMATTING;
  +        public static final int initialValueType = ENUM_IT;
  +        public static PropertyValue getInitialValue(int property)
  +            throws PropertyException
  +        {
  +            return new EnumType(PropNames.WORD_SPACING_CONDITIONALITY,
  +                                                    Conditionality.DISCARD);
  +        }
  +        public static final int inherited = COMPUTED;
  +
  +        public static final ROStringArray enums = Conditionality.enums;
  +        public static final ROStringArray enumValues
  +                                            = Conditionality.enumValues;
  +    }
  +
  +    public static class WordSpacingPrecedence extends Properties {
  +        public static final int dataTypes = INTEGER | ENUM;
  +        public static final int traitMapping = FORMATTING;
  +        public static final int initialValueType = ENUM_IT;
  +        public static PropertyValue getInitialValue(int property)
  +            throws PropertyException
  +        {
  +            return new EnumType
  +                (PropNames.LINE_HEIGHT_PRECEDENCE, PrecedenceCommon.FORCE);
  +        }
  +
  +        public static final int inherited = COMPUTED;
  +
  +        public static final ROStringArray enums = PrecedenceCommon.enums;
  +        public static final ROStringArray enumValues
  +                                            = PrecedenceCommon.enumValues;
       }
   
       public static class WrapOption extends Properties {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org