pbwest 2002/09/26 07:27:49 Modified: src/org/apache/fop/fo Tag: FOP_0-20-0_Alt-Design Properties.java Log: Modifications to data type sepcifications. Removed calls to initialValueSHandExpansion(). Added compound expansions. Revision Changes Path No revision No revision 1.1.2.27 +107 -94 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.26 retrieving revision 1.1.2.27 diff -u -r1.1.2.26 -r1.1.2.27 --- Properties.java 23 Sep 2002 06:33:27 -0000 1.1.2.26 +++ Properties.java 26 Sep 2002 14:27:48 -0000 1.1.2.27 @@ -105,31 +105,31 @@ ,PERCENTAGE = 16 ,CHARACTER_T = 32 ,LITERAL = 64 - ,NAME = 128 + ,NCNAME = 128 ,COLOR_T = 256 ,COUNTRY_T = 512 ,LANGUAGE_T = 1024 ,SCRIPT_T = 2048 - ,ID_T = 4096 - ,IDREF = 8192 - ,URI_SPECIFICATION = 16384 - ,TIME = 32768 - ,FREQUENCY = 65536 + ,URI_SPECIFICATION = 4096 + ,TIME = 8192 + ,FREQUENCY = 16384 // Pseudotypes - ,BOOL = 131072 - ,INHERIT = 262144 - ,ENUM = 524288 - ,MAPPED_LENGTH = 1048576 - ,SHORTHAND = 2097152 - ,COMPLEX = 4194304 - ,AUTO = 8388608 - ,NONE = 16777216 - ,AURAL = 33554432 + ,BOOL = 32768 + ,INHERIT = 65536 + ,ENUM = 131072 + ,MAPPED_LENGTH = 262144 + ,SHORTHAND = 524288 + ,COMPLEX = 1048576 + ,AUTO = 2097152 + ,NONE = 4194304 + ,AURAL = 8388608 // Color plus transparent - ,COLOR_TRANS = 67108864 - ,MIMETYPE = 134217728 - ,FONTSET = 268435456 - ,COMPOUND = 536870912 + ,COLOR_TRANS = 16777216 + ,MIMETYPE = 33554432 + ,FONTSET = 67108864 + ,COMPOUND = 134217728 + // ,SPARE = 268435456 + // ,SPARE = 536870912 // ,SPARE = 1073741824 // ,SPARE = -2147483648 @@ -145,11 +145,10 @@ ,NUMBER = FLOAT | INTEGER ,ENUM_TYPE = ENUM | MAPPED_LENGTH - ,STRING = LITERAL | ENUM_TYPE + ,STRING = LITERAL | NCNAME ,HYPH_TYPE = COUNTRY_T | LANGUAGE_T | SCRIPT_T - ,ID_TYPE = ID_T | IDREF - ,NCNAME = NAME | ID_TYPE | HYPH_TYPE | ENUM_TYPE - ,STRING_TYPE = STRING | NCNAME + ,NAME_TYPE = NCNAME | HYPH_TYPE | ENUM_TYPE + ,STRING_TYPE = STRING | NAME_TYPE ,ANY_TYPE = ~0 ; @@ -172,13 +171,11 @@ if ((datatypes & PERCENTAGE) != 0) typeNames += "<percentage>|"; if ((datatypes & CHARACTER_T) != 0) typeNames += "<character>|"; if ((datatypes & STRING) != 0) typeNames += "<string>|"; - if ((datatypes & NAME) != 0) typeNames += "<name>|"; + if ((datatypes & NCNAME) != 0) typeNames += "<ncname>|"; if ((datatypes & COLOR_T) != 0) typeNames += "<color>|"; if ((datatypes & COUNTRY_T) != 0) typeNames += "<country>|"; if ((datatypes & LANGUAGE_T) != 0) typeNames += "<language>|"; if ((datatypes & SCRIPT_T) != 0) typeNames += "<script>|"; - if ((datatypes & ID_T) != 0) typeNames += "<id>|"; - if ((datatypes & IDREF) != 0) typeNames += "<idref>|"; if ((datatypes & URI_SPECIFICATION) != 0) typeNames += "<uri-specification>|"; if ((datatypes & TIME) != 0) typeNames += "<time>|"; @@ -212,7 +209,7 @@ ,PERCENTAGE_IT = 16 ,CHARACTER_IT = 32 ,LITERAL_IT = 64 - ,NAME_IT = 128 + ,NCNAME_IT = 128 ,COLOR_IT = 256 ,COUNTRY_IT = 512 ,URI_SPECIFICATION_IT = 1024 @@ -238,7 +235,7 @@ | PERCENTAGE_IT | CHARACTER_IT | LITERAL_IT - | NAME_IT + | NCNAME_IT | COLOR_IT | COUNTRY_IT | URI_SPECIFICATION_IT @@ -267,12 +264,19 @@ ,MAGIC = 2048 ; - /** Constant specifying inheritance type. */ + /* + * Constant specifying inheritance type. Special cases (only line-height + * specified as a <number>, so far) must be handled close to the + * usage point of the property. For line-height, the number is retained + * as the specified and as the computed property value. Because the + * current font-size will always be present in the property set for any + * FONode which requires line-height, the actual length value of the + * line-height can always be calculated at the point of application. + */ + /** Constant specifying inheritance type. */ public static final int NO = 0 ,COMPUTED = 1 - ,SPECIFIED = 2 - ,VALUE_SPECIFIC = 3 ; /** @@ -352,9 +356,9 @@ case PropertyValue.NCNAME: String ncname = ((NCName)value).getNCName(); // Can by any of - // NAME, COUNTRY_T, LANGUAGE_T, SCRIPT_T, ID_T, IDREF, ENUM + // NCNAME, COUNTRY_T, LANGUAGE_T, SCRIPT_T, ENUM // MAPPED_LENGTH or CHARACTER_T - if ((datatype & (NAME | ID_T | IDREF | CHARACTER_T)) != 0) + if ((datatype & (NCNAME | CHARACTER_T)) != 0) return value; if ((datatype & COUNTRY_T) != 0) return new CountryType(property, ncname); @@ -417,6 +421,9 @@ return pv; default: if ( ! nested) { + if ((datatype & COMPOUND) != 0) + return PropertySets.expandCompoundProperty + (foNode.foTree, value); if (proptype == PropertyValue.INHERIT) { if ((datatype & INHERIT) != 0) return ((Inherit)value).resolve(foNode); @@ -537,8 +544,10 @@ public static PropertyValue getInitialValue(int property) throws PropertyException { + System.out.println("Invoking default getInitialValue("+property+")"); Method method = null; int initialValueType = PropertyConsts.getInitialValueType(property); + System.out.println("initialValueType:" + initialValueType); if ((initialValueType & Properties.USE_GET_IT_FUNCTION) != 0) throw new PropertyException ("Properties.getInitialValue() called for property with " @@ -552,7 +561,12 @@ case NONE_IT: return new None(property); case AURAL_IT: - throw new PropertyNotImplementedException + System.out.println("In AURAL_IT"); + System.out.println + ("Aural properties not implemented: " + + PropNames.getPropertyName(property)); + //throw new PropertyNotImplementedException + throw new PropertyException ("Aural properties not implemented: " + PropNames.getPropertyName(property)); default: @@ -623,10 +637,9 @@ type == PropertyValue.FROM_PARENT || type == PropertyValue.FROM_NEAREST_SPECIFIED) { - // Construct a list of Inherit values - PropertyValueList list = - PropertySets.expandAndCopySHand(value); - return refineExpansionList(foNode, list); + // Copy the value to each member of the shorthand expansion + return refineExpansionList + (foNode, PropertySets.expandAndCopySHand(value)); } } // Make a list and pass to processList @@ -1127,7 +1140,7 @@ type == PropertyValue.FROM_PARENT || type == PropertyValue.FROM_NEAREST_SPECIFIED) { - // Construct a list of Inherit values + // Copy the value to each member of the shorthand expansion return refineExpansionList (foNode, PropertySets.expandAndCopySHand(value)); } else { @@ -1492,7 +1505,7 @@ if (type == PropertyValue.INHERIT || type == PropertyValue.FROM_PARENT || type == PropertyValue.FROM_NEAREST_SPECIFIED) { - // Construct a list of Inherit values + // Copy the value to each member of the shorthand newlist = refineExpansionList (foNode, PropertySets.expandAndCopySHand(value)); } @@ -1803,7 +1816,8 @@ public static PropertyValue getInitialValue(int property) throws PropertyException { - return Percentage.makePercentage (PropNames.BACKGROUND_POSITION_VERTICAL, 0.0d); + return Percentage.makePercentage + (PropNames.BACKGROUND_POSITION_VERTICAL, 0.0d); } public static final int inherited = NO; @@ -1939,7 +1953,7 @@ if (type == PropertyValue.INHERIT || type == PropertyValue.FROM_PARENT || type == PropertyValue.FROM_NEAREST_SPECIFIED) - // Construct a list of Inherit values + // Copy the value to each member of the shorthand expansion return refineExpansionList (foNode, PropertySets.expandAndCopySHand(value)); @@ -1998,18 +2012,17 @@ + val.getClass().getName()); } // Construct the shorthand expansion list + // Only those elements which are actually specified fint their + // way into this list. Other elements will take their normally + // inherited or initial values. PropertyValueList borderexp = - PropertySets.initialValueSHandExpansion - (foNode.foTree, PropNames.BORDER); + new PropertyValueList(PropNames.BORDER); if (style != null) - borderexp = PropertySets.overrideSHandElements(borderexp, - (PropertyValueList)style); + borderexp.addAll((PropertyValueList)style); if (color != null) - borderexp = PropertySets.overrideSHandElements(borderexp, - (PropertyValueList)color); + borderexp.addAll((PropertyValueList)color); if (width != null) - borderexp = PropertySets.overrideSHandElements(borderexp, - (PropertyValueList)width); + borderexp.addAll((PropertyValueList)width); return borderexp; } } @@ -3442,7 +3455,7 @@ } public static class CaseName extends Properties { - public static final int dataTypes = NAME; + public static final int dataTypes = NCNAME; public static final int traitMapping = ACTION; public static final int initialValueType = NOTYPE_IT; public static final int inherited = NO; @@ -3546,7 +3559,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; @@ -3554,7 +3568,7 @@ } public static class ColorProfileName extends Properties { - public static final int dataTypes = NAME | INHERIT; + public static final int dataTypes = NCNAME | INHERIT; public static final int traitMapping = FORMATTING; public static final int initialValueType = NOTYPE_IT; public static final int inherited = NO; @@ -3624,7 +3638,7 @@ } public static class ContentType extends Properties { - public static final int dataTypes = NAME | MIMETYPE | AUTO; + public static final int dataTypes = NCNAME | MIMETYPE | AUTO; public static final int traitMapping = FORMATTING; public static final int initialValueType = AUTO_IT; public static final int inherited = NO; @@ -3942,9 +3956,9 @@ } public static class FlowName extends Properties { - public static final int dataTypes = NAME; + public static final int dataTypes = NCNAME; public static final int traitMapping = REFERENCE; - public static final int initialValueType = NAME_IT; + public static final int initialValueType = NCNAME_IT; public static PropertyValue getInitialValue(int property) throws PropertyException { @@ -4372,32 +4386,31 @@ // Construct the shorthand expansion list from the discovered // values of individual components - newlist = - PropertySets.initialValueSHandExpansion - (foNode.foTree, PropNames.FONT); - // For each discovered property, override the value in the - // initial value expansion. - ListIterator expansions = newlist.listIterator(); - while (expansions.hasNext()) { - PropertyValue prop = (PropertyValue)expansions.next(); - switch (prop.getProperty()) { + newlist = new PropertyValueList(PropNames.FONT); + // Add each discovered property to the list. + // N.B. These properties should be added in the order given + // in the PropertySets.fontExpansion ROIntArray. + for (int i = 0; i < PropertySets.fontExpansion.length; i++) { + switch (PropertySets.fontExpansion.get(i)) { case PropNames.FONT_STYLE: - if (style != null) expansions.set(style); + if (style != null) newlist.add(style); break; case PropNames.FONT_VARIANT: - if (variant != null) expansions.set(variant); + if (variant != null) newlist.add(variant); break; case PropNames.FONT_WEIGHT: - if (weight != null) expansions.set(weight); + if (weight != null) newlist.add(weight); break; case PropNames.FONT_SIZE: - if (size != null) expansions.set(size); + if (size != null) newlist.add(size); break; case PropNames.FONT_FAMILY: - if (fontset != null) expansions.set(fontset); + if (fontset != null) newlist.add(fontset); break; case PropNames.LINE_HEIGHT: - if (height != null) expansions.set(height); + if (height != null) + newlist.addAll(PropertySets.expandCompoundProperty + (foNode.foTree, height)); break; } } @@ -4953,7 +4966,7 @@ } public static class Id extends Properties { - public static final int dataTypes = ID_T; + public static final int dataTypes = NCNAME; public static final int traitMapping = REFERENCE; public static final int initialValueType = NOTYPE_IT; public static final int inherited = NO; @@ -5018,7 +5031,7 @@ } public static class InternalDestination extends Properties { - public static final int dataTypes = STRING | IDREF; + public static final int dataTypes = LITERAL | NCNAME; public static final int traitMapping = ACTION; public static final int initialValueType = LITERAL_IT; public static PropertyValue getInitialValue(int property) @@ -5053,7 +5066,7 @@ COMPOUND | AUTO | ENUM | INTEGER | INHERIT; public static final int traitMapping = FORMATTING; public static final int initialValueType = AUTO_IT; - public static final int inherited = COMPUTED; + public static final int inherited = NO; private static final String[] rwEnums = { null @@ -5218,7 +5231,7 @@ COMPOUND | LENGTH | PERCENTAGE | INHERIT; public static final int traitMapping = FORMATTING; public static final int initialValueType = NOTYPE_IT; - public static final int inherited = COMPUTED; + public static final int inherited = NO; } public static class LeaderLengthMinimum extends Properties { @@ -5463,7 +5476,7 @@ public static final int traitMapping = FORMATTING; public static final int initialValueType = LENGTH_IT; public static final int NORMAL = 1; - public static final int inherited = VALUE_SPECIFIC; + public static final int inherited = NO; private static final String[] rwEnums = { null @@ -5492,7 +5505,7 @@ { return Ems.makeEms(PropNames.LINE_HEIGHT_MINIMUM, 1.2d); } - public static final int inherited = VALUE_SPECIFIC; + public static final int inherited = COMPUTED; } public static class LineHeightOptimum extends Properties { @@ -5504,7 +5517,7 @@ { return Ems.makeEms(PropNames.LINE_HEIGHT_OPTIMUM, 1.2d); } - public static final int inherited = VALUE_SPECIFIC; + public static final int inherited = COMPUTED; } public static class LineHeightMaximum extends Properties { @@ -5516,7 +5529,7 @@ { return Ems.makeEms(PropNames.LINE_HEIGHT_MAXIMUM, 1.2d); } - public static final int inherited = VALUE_SPECIFIC; + public static final int inherited = COMPUTED; } public static class LineHeightConditionality extends Properties { @@ -5780,9 +5793,9 @@ } public static class MarkerClassName extends Properties { - public static final int dataTypes = NAME; + public static final int dataTypes = NCNAME; public static final int traitMapping = FORMATTING; - public static final int initialValueType = NAME_IT; + public static final int initialValueType = NCNAME_IT; public static PropertyValue getInitialValue(int property) throws PropertyException { @@ -5792,9 +5805,9 @@ } public static class MasterName extends Properties { - public static final int dataTypes = NAME; + public static final int dataTypes = NCNAME; public static final int traitMapping = SPECIFICATION; - public static final int initialValueType = NAME_IT; + public static final int initialValueType = NCNAME_IT; public static PropertyValue getInitialValue(int property) throws PropertyException { @@ -5804,9 +5817,9 @@ } public static class MasterReference extends Properties { - public static final int dataTypes = NAME; + public static final int dataTypes = NCNAME; public static final int traitMapping = SPECIFICATION; - public static final int initialValueType = NAME_IT; + public static final int initialValueType = NCNAME_IT; public static PropertyValue getInitialValue(int property) throws PropertyException { @@ -6753,14 +6766,14 @@ } public static class RefId extends Properties { - public static final int dataTypes = IDREF | INHERIT; + public static final int dataTypes = NCNAME | INHERIT; public static final int traitMapping = REFERENCE; public static final int initialValueType = NOTYPE_IT; public static final int inherited = NO; } public static class RegionName extends Properties { - public static final int dataTypes = NAME | ENUM; + public static final int dataTypes = NCNAME | ENUM; public static final int traitMapping = SPECIFICATION; public static final int initialValueType = NOTYPE_IT; public static final int XSL_REGION_BODY = 1; @@ -6896,7 +6909,7 @@ } public static class RetrieveClassName extends Properties { - public static final int dataTypes = NAME; + public static final int dataTypes = NCNAME; public static final int traitMapping = FORMATTING; public static final int initialValueType = NOTYPE_IT; public static final String initialValue = ""; @@ -6947,7 +6960,7 @@ public static class Role extends Properties { public static final int dataTypes = - STRING | URI_SPECIFICATION | NONE | INHERIT; + NCNAME | URI_SPECIFICATION | NONE | INHERIT; public static final int traitMapping = RENDERING; public static final int initialValueType = NONE_IT; public static final int inherited = NO; @@ -7751,7 +7764,7 @@ } public static class TextAlign extends Properties { - public static final int dataTypes = STRING | ENUM | INHERIT; + public static final int dataTypes = LITERAL | ENUM | INHERIT; public static final int traitMapping = VALUE_CHANGE; public static final int initialValueType = ENUM_IT; public static final int START = 1; @@ -8276,7 +8289,7 @@ { return getMappedLength(NORMAL); //normal } - public static final int inherited = COMPUTED; + public static final int inherited = NO; private static final String[] rwEnums = { null
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]