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 gm...@apache.org on 2004/09/06 23:13:51 UTC
cvs commit: xml-fop/src/java/org/apache/fop/fo/properties BoxPropShorthandParser.java GenericShorthandParser.java ShorthandParser.java PropertyMaker.java
gmazza 2004/09/06 14:13:51
Modified: src/java/org/apache/fop/fo FOPropertyMapping.java
src/java/org/apache/fop/fo/properties PropertyMaker.java
Added: src/java/org/apache/fop/fo/properties
BoxPropShorthandParser.java
GenericShorthandParser.java ShorthandParser.java
Removed: src/java/org/apache/fop/fo BoxPropShorthandParser.java
GenericShorthandParser.java ShorthandParser.java
Log:
Moved the property shorthand parser code into the properties package.
Revision Changes Path
1.15 +4 -1 xml-fop/src/java/org/apache/fop/fo/FOPropertyMapping.java
Index: FOPropertyMapping.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOPropertyMapping.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- FOPropertyMapping.java 15 Aug 2004 09:57:07 -0000 1.14
+++ FOPropertyMapping.java 6 Sep 2004 21:13:50 -0000 1.15
@@ -23,12 +23,14 @@
import org.apache.fop.datatypes.LengthBase;
import org.apache.fop.fo.properties.BorderWidthPropertyMaker;
+import org.apache.fop.fo.properties.BoxPropShorthandParser;
import org.apache.fop.fo.properties.CharacterProperty;
import org.apache.fop.fo.properties.ColorTypeProperty;
import org.apache.fop.fo.properties.CondLengthProperty;
import org.apache.fop.fo.properties.CorrespondingPropertyMaker;
import org.apache.fop.fo.properties.DimensionPropertyMaker;
import org.apache.fop.fo.properties.EnumProperty;
+import org.apache.fop.fo.properties.GenericShorthandParser;
import org.apache.fop.fo.properties.IndentPropertyMaker;
import org.apache.fop.fo.properties.KeepProperty;
import org.apache.fop.fo.properties.LengthPairProperty;
@@ -39,6 +41,7 @@
import org.apache.fop.fo.properties.NumberProperty;
import org.apache.fop.fo.properties.Property;
import org.apache.fop.fo.properties.PropertyMaker;
+import org.apache.fop.fo.properties.ShorthandParser;
import org.apache.fop.fo.properties.SpaceProperty;
import org.apache.fop.fo.properties.SpacingPropertyMaker;
import org.apache.fop.fo.properties.StringProperty;
1.6 +1 -2 xml-fop/src/java/org/apache/fop/fo/properties/PropertyMaker.java
Index: PropertyMaker.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/properties/PropertyMaker.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- PropertyMaker.java 18 Jun 2004 17:58:35 -0000 1.5
+++ PropertyMaker.java 6 Sep 2004 21:13:51 -0000 1.6
@@ -28,7 +28,6 @@
import org.apache.fop.fo.FOPropertyMapping;
import org.apache.fop.fo.FObj;
import org.apache.fop.fo.PropertyList;
-import org.apache.fop.fo.ShorthandParser;
import org.apache.fop.fo.expr.PropertyInfo;
import org.apache.fop.fo.expr.PropertyParser;
1.1 xml-fop/src/java/org/apache/fop/fo/properties/BoxPropShorthandParser.java
Index: BoxPropShorthandParser.java
===================================================================
/*
* Copyright 1999-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* $Id: BoxPropShorthandParser.java,v 1.1 2004/09/06 21:13:51 gmazza Exp $ */
package org.apache.fop.fo.properties;
import org.apache.fop.fo.FOPropertyMapping;
import org.apache.fop.fo.PropertyList;
/**
* Shorthand property parser for Box properties
*/
public class BoxPropShorthandParser extends GenericShorthandParser {
/**
* @see org.apache.fop.fo.GenericShorthandParser#GenericShorthandParser()
*/
public BoxPropShorthandParser() {
}
/**
* Stores 1 to 4 values of same type.
* Set the given property based on the number of values set.
* Example: padding, border-width, border-color, border-style, margin
* @see org.apache.fop.fo.GenericShorthandParser#convertValueForProperty(
* int, ListProperty, PropertyMaker, PropertyList)
*/
protected Property convertValueForProperty(int propId,
ListProperty listProperty,
PropertyMaker maker,
PropertyList propertyList) {
String name = FOPropertyMapping.getPropertyName(propId);
Property p = null;
int count = listProperty.getList().size();
if (name.indexOf("-top") >= 0) {
p = getElement(listProperty, 0);
} else if (name.indexOf("-right") >= 0) {
p = getElement(listProperty, count > 1 ? 1 : 0);
} else if (name.indexOf("-bottom") >= 0) {
p = getElement(listProperty, count > 2 ? 2 : 0);
} else if (name.indexOf("-left") >= 0) {
p = getElement(listProperty, count > 3 ? 3 : (count > 1 ? 1 : 0));
}
// if p not null, try to convert it to a value of the correct type
if (p != null) {
return maker.convertShorthandProperty(propertyList, p, null);
}
return p;
}
}
1.1 xml-fop/src/java/org/apache/fop/fo/properties/GenericShorthandParser.java
Index: GenericShorthandParser.java
===================================================================
/*
* Copyright 1999-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* $Id: GenericShorthandParser.java,v 1.1 2004/09/06 21:13:51 gmazza Exp $ */
package org.apache.fop.fo.properties;
import java.util.Enumeration;
import org.apache.fop.fo.PropertyList;
public class GenericShorthandParser implements ShorthandParser {
/**
* Constructor.
*/
public GenericShorthandParser() {
}
/**
* @param index the index into the List of properties
* @return the property from the List of properties at the index parameter
*/
protected Property getElement(ListProperty list, int index) {
if (list.getList().size() > index) {
return (Property) list.getList().elementAt(index);
} else {
return null;
}
}
// Stores 1 to 3 values for border width, style, color
// Used for: border, border-top, border-right etc
public Property getValueForProperty(int propId,
ListProperty listProperty,
PropertyMaker maker,
PropertyList propertyList) {
Property prop = null;
// Check for keyword "inherit"
if (listProperty.getList().size() == 1) {
String sval = getElement(listProperty, 0).getString();
if (sval != null && sval.equals("inherit")) {
return propertyList.getFromParent(propId);
}
}
return convertValueForProperty(propId, listProperty, maker, propertyList);
}
/**
* Converts a property name into a Property
* @param propId the property ID in the Constants interface
* @param maker the Property.Maker to be used in the conversion
* @param propertyList the PropertyList from which the Property should be
* extracted
* @return the Property matching the parameters, or null if not found
*/
protected Property convertValueForProperty(int propId,
ListProperty listProperty,
PropertyMaker maker,
PropertyList propertyList) {
Property prop = null;
// Try each of the stored values in turn
Enumeration eprop = listProperty.getList().elements();
while (eprop.hasMoreElements() && prop == null) {
Property p = (Property) eprop.nextElement();
prop = maker.convertShorthandProperty(propertyList, p, null);
}
return prop;
}
}
1.1 xml-fop/src/java/org/apache/fop/fo/properties/ShorthandParser.java
Index: ShorthandParser.java
===================================================================
/*
* Copyright 1999-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* $Id: ShorthandParser.java,v 1.1 2004/09/06 21:13:51 gmazza Exp $ */
package org.apache.fop.fo.properties;
import org.apache.fop.fo.PropertyList;
/**
* Interface used to provide parsing capabilities to Properties with shorthand
* characteristics (those with multiple components).
*/
public interface ShorthandParser {
/**
* @param propId the property ID in the Constants interface
* @param maker Maker object for the Property
* @param propertyList list of properties
* @return Property object corresponding to propName
*/
Property getValueForProperty(int propId,
ListProperty listProperty,
PropertyMaker maker,
PropertyList propertyList);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org