aboutsummaryrefslogtreecommitdiffstats
path: root/src/org/apache/fop/fo
diff options
context:
space:
mode:
authorJeremias Maerki <jeremias@apache.org>2003-03-11 13:25:33 +0000
committerJeremias Maerki <jeremias@apache.org>2003-03-11 13:25:33 +0000
commit77930a96151d680333f3c11b8dcb5f7c9b6761e7 (patch)
tree2bd2afef42926ee98914666ef27ae08ef0c98edd /src/org/apache/fop/fo
parentb7052c02f1a0da7b6d2c04a799e947e8f9227d81 (diff)
downloadxmlgraphics-fop-77930a96151d680333f3c11b8dcb5f7c9b6761e7.tar.gz
xmlgraphics-fop-77930a96151d680333f3c11b8dcb5f7c9b6761e7.zip
Moved sources from src/org/** to src/java/org/**
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196064 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/org/apache/fop/fo')
-rw-r--r--src/org/apache/fop/fo/AbstractCharIterator.java102
-rw-r--r--src/org/apache/fop/fo/BoxPropShorthandParser.java88
-rw-r--r--src/org/apache/fop/fo/CharIterator.java62
-rw-r--r--src/org/apache/fop/fo/CharacterProperty.java87
-rw-r--r--src/org/apache/fop/fo/ColorProfile.java120
-rw-r--r--src/org/apache/fop/fo/ColorTypeProperty.java93
-rw-r--r--src/org/apache/fop/fo/CondLengthProperty.java85
-rw-r--r--src/org/apache/fop/fo/Declarations.java107
-rw-r--r--src/org/apache/fop/fo/ElementMapping.java67
-rw-r--r--src/org/apache/fop/fo/EnumProperty.java104
-rw-r--r--src/org/apache/fop/fo/FOElementMapping.java486
-rw-r--r--src/org/apache/fop/fo/FONode.java203
-rw-r--r--src/org/apache/fop/fo/FOText.java180
-rw-r--r--src/org/apache/fop/fo/FOTreeBuilder.java275
-rw-r--r--src/org/apache/fop/fo/FOUserAgent.java220
-rw-r--r--src/org/apache/fop/fo/FObj.java376
-rw-r--r--src/org/apache/fop/fo/FObjMixed.java113
-rw-r--r--src/org/apache/fop/fo/GenericShorthandParser.java107
-rw-r--r--src/org/apache/fop/fo/InlineCharIterator.java106
-rw-r--r--src/org/apache/fop/fo/KeepProperty.java79
-rw-r--r--src/org/apache/fop/fo/LengthPairProperty.java79
-rw-r--r--src/org/apache/fop/fo/LengthProperty.java130
-rw-r--r--src/org/apache/fop/fo/LengthRangeProperty.java79
-rw-r--r--src/org/apache/fop/fo/ListProperty.java93
-rw-r--r--src/org/apache/fop/fo/NumberProperty.java119
-rw-r--r--src/org/apache/fop/fo/OneCharIterator.java79
-rw-r--r--src/org/apache/fop/fo/Property.java490
-rw-r--r--src/org/apache/fop/fo/PropertyList.java416
-rw-r--r--src/org/apache/fop/fo/PropertyListBuilder.java305
-rw-r--r--src/org/apache/fop/fo/PropertyManager.java582
-rw-r--r--src/org/apache/fop/fo/RecursiveCharIterator.java134
-rw-r--r--src/org/apache/fop/fo/ShorthandParser.java57
-rw-r--r--src/org/apache/fop/fo/SpaceProperty.java84
-rw-r--r--src/org/apache/fop/fo/StringProperty.java107
-rw-r--r--src/org/apache/fop/fo/TextInfo.java82
-rw-r--r--src/org/apache/fop/fo/Title.java131
-rw-r--r--src/org/apache/fop/fo/ToBeImplementedElement.java67
-rw-r--r--src/org/apache/fop/fo/Unknown.java74
-rw-r--r--src/org/apache/fop/fo/UnknownXMLObj.java98
-rw-r--r--src/org/apache/fop/fo/XMLElement.java88
-rw-r--r--src/org/apache/fop/fo/XMLObj.java195
-rw-r--r--src/org/apache/fop/fo/expr/AbsFunction.java72
-rw-r--r--src/org/apache/fop/fo/expr/BodyStartFunction.java82
-rw-r--r--src/org/apache/fop/fo/expr/CeilingFunction.java72
-rw-r--r--src/org/apache/fop/fo/expr/FloorFunction.java73
-rw-r--r--src/org/apache/fop/fo/expr/FopPropValFunction.java75
-rw-r--r--src/org/apache/fop/fo/expr/FromParentFunction.java79
-rw-r--r--src/org/apache/fop/fo/expr/FromTableColumnFunction.java71
-rw-r--r--src/org/apache/fop/fo/expr/Function.java62
-rw-r--r--src/org/apache/fop/fo/expr/FunctionBase.java70
-rw-r--r--src/org/apache/fop/fo/expr/InheritedPropFunction.java71
-rw-r--r--src/org/apache/fop/fo/expr/LabelEndFunction.java100
-rw-r--r--src/org/apache/fop/fo/expr/MaxFunction.java73
-rw-r--r--src/org/apache/fop/fo/expr/MinFunction.java73
-rw-r--r--src/org/apache/fop/fo/expr/NCnameProperty.java80
-rw-r--r--src/org/apache/fop/fo/expr/NearestSpecPropFunction.java73
-rw-r--r--src/org/apache/fop/fo/expr/Numeric.java420
-rw-r--r--src/org/apache/fop/fo/expr/NumericProperty.java85
-rw-r--r--src/org/apache/fop/fo/expr/PPColWidthFunction.java78
-rw-r--r--src/org/apache/fop/fo/expr/PropertyException.java58
-rw-r--r--src/org/apache/fop/fo/expr/PropertyInfo.java138
-rw-r--r--src/org/apache/fop/fo/expr/PropertyParser.java499
-rw-r--r--src/org/apache/fop/fo/expr/PropertyTokenizer.java394
-rw-r--r--src/org/apache/fop/fo/expr/RGBColorFunction.java110
-rw-r--r--src/org/apache/fop/fo/expr/RoundFunction.java77
-rw-r--r--src/org/apache/fop/fo/flow/BasicLink.java216
-rw-r--r--src/org/apache/fop/fo/flow/BidiOverride.java154
-rw-r--r--src/org/apache/fop/fo/flow/Block.java385
-rw-r--r--src/org/apache/fop/fo/flow/BlockContainer.java154
-rw-r--r--src/org/apache/fop/fo/flow/Character.java170
-rw-r--r--src/org/apache/fop/fo/flow/ExternalGraphic.java321
-rw-r--r--src/org/apache/fop/fo/flow/Float.java76
-rw-r--r--src/org/apache/fop/fo/flow/Flow.java163
-rw-r--r--src/org/apache/fop/fo/flow/Footnote.java89
-rw-r--r--src/org/apache/fop/fo/flow/FootnoteBody.java70
-rw-r--r--src/org/apache/fop/fo/flow/InitialPropertySet.java101
-rw-r--r--src/org/apache/fop/fo/flow/Inline.java147
-rw-r--r--src/org/apache/fop/fo/flow/InlineContainer.java145
-rw-r--r--src/org/apache/fop/fo/flow/InstreamForeignObject.java387
-rw-r--r--src/org/apache/fop/fo/flow/Leader.java308
-rw-r--r--src/org/apache/fop/fo/flow/ListBlock.java148
-rw-r--r--src/org/apache/fop/fo/flow/ListItem.java157
-rw-r--r--src/org/apache/fop/fo/flow/ListItemBody.java94
-rw-r--r--src/org/apache/fop/fo/flow/ListItemLabel.java94
-rw-r--r--src/org/apache/fop/fo/flow/Marker.java111
-rw-r--r--src/org/apache/fop/fo/flow/MultiCase.java78
-rw-r--r--src/org/apache/fop/fo/flow/MultiProperties.java75
-rw-r--r--src/org/apache/fop/fo/flow/MultiPropertySet.java72
-rw-r--r--src/org/apache/fop/fo/flow/MultiSwitch.java76
-rw-r--r--src/org/apache/fop/fo/flow/MultiToggle.java76
-rw-r--r--src/org/apache/fop/fo/flow/PageNumber.java185
-rw-r--r--src/org/apache/fop/fo/flow/PageNumberCitation.java246
-rw-r--r--src/org/apache/fop/fo/flow/RetrieveMarker.java109
-rw-r--r--src/org/apache/fop/fo/flow/StaticContent.java90
-rw-r--r--src/org/apache/fop/fo/flow/Table.java208
-rw-r--r--src/org/apache/fop/fo/flow/TableAndCaption.java107
-rw-r--r--src/org/apache/fop/fo/flow/TableBody.java125
-rw-r--r--src/org/apache/fop/fo/flow/TableCaption.java100
-rw-r--r--src/org/apache/fop/fo/flow/TableCell.java358
-rw-r--r--src/org/apache/fop/fo/flow/TableColumn.java151
-rw-r--r--src/org/apache/fop/fo/flow/TableFooter.java62
-rw-r--r--src/org/apache/fop/fo/flow/TableHeader.java62
-rw-r--r--src/org/apache/fop/fo/flow/TableRow.java157
-rw-r--r--src/org/apache/fop/fo/flow/Wrapper.java76
-rw-r--r--src/org/apache/fop/fo/pagination/ConditionalPageMasterReference.java200
-rw-r--r--src/org/apache/fop/fo/pagination/LayoutMasterSet.java222
-rw-r--r--src/org/apache/fop/fo/pagination/PageMasterReference.java120
-rw-r--r--src/org/apache/fop/fo/pagination/PageNumberGenerator.java208
-rw-r--r--src/org/apache/fop/fo/pagination/PageSequence.java807
-rw-r--r--src/org/apache/fop/fo/pagination/PageSequenceMaster.java200
-rw-r--r--src/org/apache/fop/fo/pagination/Region.java289
-rw-r--r--src/org/apache/fop/fo/pagination/RegionAfter.java112
-rw-r--r--src/org/apache/fop/fo/pagination/RegionBA.java120
-rw-r--r--src/org/apache/fop/fo/pagination/RegionBASE.java86
-rw-r--r--src/org/apache/fop/fo/pagination/RegionBefore.java117
-rw-r--r--src/org/apache/fop/fo/pagination/RegionBody.java173
-rw-r--r--src/org/apache/fop/fo/pagination/RegionEnd.java113
-rw-r--r--src/org/apache/fop/fo/pagination/RegionSE.java102
-rw-r--r--src/org/apache/fop/fo/pagination/RegionStart.java112
-rw-r--r--src/org/apache/fop/fo/pagination/RepeatablePageMasterAlternatives.java168
-rw-r--r--src/org/apache/fop/fo/pagination/RepeatablePageMasterReference.java129
-rw-r--r--src/org/apache/fop/fo/pagination/Root.java141
-rw-r--r--src/org/apache/fop/fo/pagination/SimplePageMaster.java273
-rw-r--r--src/org/apache/fop/fo/pagination/SinglePageMasterReference.java97
-rw-r--r--src/org/apache/fop/fo/pagination/SubSequenceSpecifier.java81
125 files changed, 0 insertions, 19307 deletions
diff --git a/src/org/apache/fop/fo/AbstractCharIterator.java b/src/org/apache/fop/fo/AbstractCharIterator.java
deleted file mode 100644
index ccb27a9d6..000000000
--- a/src/org/apache/fop/fo/AbstractCharIterator.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import java.util.NoSuchElementException;
-
-/**
- * Abstract base class for character iterators.
- */
-public abstract class AbstractCharIterator implements CharIterator, Cloneable {
-
- /**
- * @see java.util.Iterator#hasNext()
- */
- public abstract boolean hasNext();
-
- /**
- * @see org.apache.fop.fo.CharIterator#nextChar()
- */
- public abstract char nextChar() throws NoSuchElementException ;
-
- /**
- * @see java.util.Iterator#next()
- */
- public Object next() throws NoSuchElementException {
- return new Character(nextChar());
- }
-
- /**
- * @see java.util.Iterator#remove()
- */
- public void remove() {
- throw new UnsupportedOperationException();
- }
-
-
- /**
- * @see org.apache.fop.fo.CharIterator#replaceChar(char)
- */
- public void replaceChar(char c) {
- }
-
- /**
- * @see java.lang.Object#clone()
- */
- public Object clone() {
- try {
- return super.clone();
- } catch (CloneNotSupportedException ex) {
- return null;
- }
- }
-}
-
diff --git a/src/org/apache/fop/fo/BoxPropShorthandParser.java b/src/org/apache/fop/fo/BoxPropShorthandParser.java
deleted file mode 100644
index 6131e3415..000000000
--- a/src/org/apache/fop/fo/BoxPropShorthandParser.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-public class BoxPropShorthandParser extends GenericShorthandParser {
-
- /**
- * @see org.apache.fop.fo.GenericShorthandParser#GenericShorthandParser(ListProperty)
- */
- public BoxPropShorthandParser(ListProperty listprop) {
- super(listprop);
- }
-
- /**
- * 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(String, Maker, PropertyList)
- */
- protected Property convertValueForProperty(String propName,
- Property.Maker maker,
- PropertyList propertyList) {
- Property p = null;
- if (propName.indexOf("-top") >= 0) {
- p = getElement(0);
- } else if (propName.indexOf("-right") >= 0) {
- p = getElement(count() > 1 ? 1 : 0);
- } else if (propName.indexOf("-bottom") >= 0) {
- p = getElement(count() > 2 ? 2 : 0);
- } else if (propName.indexOf("-left") >= 0) {
- p = getElement(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;
- }
-
-}
diff --git a/src/org/apache/fop/fo/CharIterator.java b/src/org/apache/fop/fo/CharIterator.java
deleted file mode 100644
index b15d1002e..000000000
--- a/src/org/apache/fop/fo/CharIterator.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-
-public interface CharIterator extends Iterator {
-
- char nextChar() throws NoSuchElementException ;
- void replaceChar(char c);
- Object clone();
-}
diff --git a/src/org/apache/fop/fo/CharacterProperty.java b/src/org/apache/fop/fo/CharacterProperty.java
deleted file mode 100644
index f9d3e049b..000000000
--- a/src/org/apache/fop/fo/CharacterProperty.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-public class CharacterProperty extends Property {
-
- public static class Maker extends Property.Maker {
-
- public Maker(String propName) {
- super(propName);
- }
-
- public Property make(PropertyList propertyList, String value,
- FObj fo) {
- char c = value.charAt(0);
- return new CharacterProperty(c);
- }
-
- } // end Charakter.Maker
-
- private char character;
-
- public CharacterProperty(char character) {
- this.character = character;
- }
-
- public Object getObject() {
- return new Character(character);
- }
-
- public char getCharacter() {
- return this.character;
- }
-
- public String getString() {
- return new Character(character).toString();
- }
-
-}
diff --git a/src/org/apache/fop/fo/ColorProfile.java b/src/org/apache/fop/fo/ColorProfile.java
deleted file mode 100644
index 06e3d7b8e..000000000
--- a/src/org/apache/fop/fo/ColorProfile.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-// Java
-import java.awt.color.ICC_Profile;
-import java.awt.color.ICC_ColorSpace;
-import java.net.URL;
-import java.io.IOException;
-import java.io.InputStream;
-
-// FOP
-import org.apache.fop.datatypes.ColorType;
-
-/**
- * The fo:color-profile formatting object.
- * This loads the color profile when needed and resolves a requested color.
- */
-public class ColorProfile extends FObj {
- private int intent;
- private String src;
- private String profileName;
- private ICC_ColorSpace colorSpace = null;
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- protected ColorProfile(FONode parent) {
- super(parent);
- }
-
- public void end() {
- src = this.properties.get("src").getString();
- profileName = this.properties.get("color-profile-name").getString();
- intent = this.properties.get("rendering-intent").getEnum();
- this.properties = null;
- }
-
- /**
- * Get the name of this color profile.
- */
- public String getProfileName() {
- return profileName;
- }
-
- /**
- * Get the color specified with the color values from the color profile.
- * The default values are used if the profile could not be loaded
- * or the value is not found.
- */
- public ColorType getColor(int[] colorVals, int defR, int defG, int defB) {
- // float[] rgbvals = colorSpace.toRGB(colorVals);
- // return new ColorType(rgbvals);
- return null;
- }
-
- /**
- * Load the color profile.
- */
- private void load() {
- try {
- URL url = new URL(src);
- InputStream is = url.openStream();
- ICC_Profile iccProfile = ICC_Profile.getInstance(is);
- colorSpace = new ICC_ColorSpace(iccProfile);
- } catch (IOException ioe) {
- getLogger().error("Could not read Color Profile src", ioe);
- } catch (IllegalArgumentException iae) {
- getLogger().error("Color Profile src not an ICC Profile", iae);
- }
- }
-}
diff --git a/src/org/apache/fop/fo/ColorTypeProperty.java b/src/org/apache/fop/fo/ColorTypeProperty.java
deleted file mode 100644
index ea9adcf7f..000000000
--- a/src/org/apache/fop/fo/ColorTypeProperty.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import org.apache.fop.datatypes.ColorType;
-
-public class ColorTypeProperty extends Property {
-
- public static class Maker extends Property.Maker {
-
- public Maker(String propName) {
- super(propName);
- }
-
- public Property convertProperty(Property p,
- PropertyList propertyList, FObj fo) {
- if (p instanceof ColorTypeProperty) {
- return p;
- }
- ColorType val = p.getColorType();
- if (val != null) {
- return new ColorTypeProperty(val);
- }
- return convertPropertyDatatype(p, propertyList, fo);
- }
-
- }
-
- private ColorType colorType;
-
- public ColorTypeProperty(ColorType colorType) {
- this.colorType = colorType;
- }
-
- // Can't convert to any other types
- public ColorType getColorType() {
- return this.colorType;
- }
-
- public Object getObject() {
- return this.colorType;
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/CondLengthProperty.java b/src/org/apache/fop/fo/CondLengthProperty.java
deleted file mode 100644
index ff71f79fa..000000000
--- a/src/org/apache/fop/fo/CondLengthProperty.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import org.apache.fop.datatypes.Length;
-import org.apache.fop.datatypes.CondLength;
-
-public class CondLengthProperty extends Property {
-
- public static class Maker extends Property.Maker {
-
- public Maker(String name) {
- super(name);
- }
-
- }
-
- private CondLength condLength = null;
-
- public CondLengthProperty(CondLength condLength) {
- this.condLength = condLength;
- }
-
- public CondLength getCondLength() {
- return this.condLength;
- }
-
- /* Question, should we allow this? */
- public Length getLength() {
- return this.condLength.getLength().getLength();
- }
-
- public Object getObject() {
- return this.condLength;
- }
-
-}
diff --git a/src/org/apache/fop/fo/Declarations.java b/src/org/apache/fop/fo/Declarations.java
deleted file mode 100644
index cd1b2d3d8..000000000
--- a/src/org/apache/fop/fo/Declarations.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-// Java
-import java.util.List;
-import java.util.Map;
-import java.util.Iterator;
-
-/**
- * Declarations formatting object.
- * A declarations formatting object holds a set of color-profiles
- * and optionally additional non-XSL namespace elements.
- * The color-profiles are held in a hashmap for use with color-profile
- * references.
- */
-public class Declarations extends FObj {
-
- private Map colorProfiles = null;
- private List external = null;
-
- protected Declarations(FONode parent) {
- super(parent);
- }
-
- /**
- * At then end of this element sort out the child into
- * a hashmap of color profiles and a list of external xml.
- */
- public void end() {
- for (Iterator iter = children.iterator(); iter.hasNext();) {
- FONode node = (FONode)iter.next();
- if (node.getName().equals("fo:color-profile")) {
- ColorProfile cp = (ColorProfile)node;
- if (!"".equals(cp.getProfileName())) {
- if (colorProfiles == null) {
- colorProfiles = new java.util.HashMap();
- }
- if (colorProfiles.get(cp.getProfileName()) != null) {
- // duplicate names
- getLogger().warn("Duplicate fo:color-profile profile name : "
- + cp.getProfileName());
- }
- colorProfiles.put(cp.getProfileName(), cp);
- } else {
- getLogger().warn("color-profile-name required for color profile");
- }
- } else if (node instanceof XMLObj) {
- if (external == null) {
- external = new java.util.ArrayList();
- }
- external.add(node);
- } else {
- getLogger().warn("invalid element " + node.getName() + "inside declarations");
- }
- }
- children = null;
- }
-}
diff --git a/src/org/apache/fop/fo/ElementMapping.java b/src/org/apache/fop/fo/ElementMapping.java
deleted file mode 100644
index 8e5a68a57..000000000
--- a/src/org/apache/fop/fo/ElementMapping.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-/**
- * Interface for adding supported element and property mappings to
- * the given builder.
- */
-public interface ElementMapping {
- final String DEFAULT = "<default>";
-
- void addToBuilder(FOTreeBuilder builder);
-
- public static class Maker {
- public FONode make(FONode parent) {
- return null;
- }
- }
-}
diff --git a/src/org/apache/fop/fo/EnumProperty.java b/src/org/apache/fop/fo/EnumProperty.java
deleted file mode 100644
index a1f7e4190..000000000
--- a/src/org/apache/fop/fo/EnumProperty.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import org.apache.fop.apps.FOPException;
-
-public class EnumProperty extends Property {
-
- public static class Maker extends Property.Maker {
-
- protected Maker(String propName) {
- super(propName);
- }
-
- /**
- * Called by subclass if no match found.
- */
- public Property checkEnumValues(String value) {
- //log.error("Unknown enumerated value for property '"
- // + getPropName() + "': " + value);
- return null;
- }
-
- protected Property findConstant(String value) {
- return null;
- }
-
- public Property convertProperty(Property p,
- PropertyList propertyList,
- FObj fo) throws FOPException {
- if (p instanceof EnumProperty) {
- return p;
- } else {
- return null;
- }
- }
- }
-
- private int value;
-
- public EnumProperty(int explicitValue) {
- this.value = explicitValue;
- }
-
- public int getEnum() {
- return this.value;
- }
-
- public Object getObject() {
- // FIXME: return String value: property must reference maker
- // return maker.getEnumValue(this.value);
- return new Integer(this.value);
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/FOElementMapping.java b/src/org/apache/fop/fo/FOElementMapping.java
deleted file mode 100644
index 2385781fb..000000000
--- a/src/org/apache/fop/fo/FOElementMapping.java
+++ /dev/null
@@ -1,486 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-// Java
-import java.util.HashMap;
-
-/**
- * Element mapping class for all XSL-FO elements.
- */
-public class FOElementMapping implements ElementMapping {
-
- private static HashMap foObjs = null;
-
- private static synchronized void setupFO() {
- if (foObjs == null) {
- foObjs = new HashMap();
-
- // Declarations and Pagination and Layout Formatting Objects
- foObjs.put("root", new R());
- foObjs.put("declarations", new Dec());
- foObjs.put("color-profile", new CP());
- foObjs.put("page-sequence", new PS());
- foObjs.put("layout-master-set", new LMS());
- foObjs.put("page-sequence-master",
- new PSM());
- foObjs.put("single-page-master-reference",
- new SPMR());
- foObjs.put("repeatable-page-master-reference",
- new RPMR());
- foObjs.put("repeatable-page-master-alternatives",
- new RPMA());
- foObjs.put("conditional-page-master-reference",
- new CPMR());
- foObjs.put("simple-page-master",
- new SPM());
- foObjs.put("region-body", new RB());
- foObjs.put("region-before", new RBefore());
- foObjs.put("region-after", new RA());
- foObjs.put("region-start", new RS());
- foObjs.put("region-end", new RE());
- foObjs.put("flow", new Fl());
- foObjs.put("static-content", new SC());
- foObjs.put("title", new T());
-
- // Block-level Formatting Objects
- foObjs.put("block", new B());
- foObjs.put("block-container", new BC());
-
- // Inline-level Formatting Objects
- foObjs.put("bidi-override", new BO());
- foObjs.put("character",
- new Ch());
- foObjs.put("initial-property-set",
- new IPS());
- foObjs.put("external-graphic", new EG());
- foObjs.put("instream-foreign-object",
- new IFO());
- foObjs.put("inline", new In());
- foObjs.put("inline-container", new IC());
- foObjs.put("leader", new L());
- foObjs.put("page-number", new PN());
- foObjs.put("page-number-citation",
- new PNC());
-
- // Formatting Objects for Tables
- foObjs.put("table-and-caption", new TAC());
- foObjs.put("table", new Ta());
- foObjs.put("table-column", new TC());
- foObjs.put("table-caption", new TCaption());
- foObjs.put("table-header", new TB());
- foObjs.put("table-footer", new TB());
- foObjs.put("table-body", new TB());
- foObjs.put("table-row", new TR());
- foObjs.put("table-cell", new TCell());
-
- // Formatting Objects for Lists
- foObjs.put("list-block", new LB());
- foObjs.put("list-item", new LI());
- foObjs.put("list-item-body", new LIB());
- foObjs.put("list-item-label", new LIL());
-
- // Dynamic Effects: Link and Multi Formatting Objects
- foObjs.put("basic-link", new BL());
- foObjs.put("multi-switch", new MS());
- foObjs.put("multi-case", new MC());
- foObjs.put("multi-toggle", new MT());
- foObjs.put("multi-properties", new MP());
- foObjs.put("multi-property-set",
- new MPS());
-
- // Out-of-Line Formatting Objects
- foObjs.put("float",
- new F());
- foObjs.put("footnote", new Foot());
- foObjs.put("footnote-body", new FB());
-
- // Other Formatting Objects
- foObjs.put("wrapper", new W());
- foObjs.put("marker", new M());
- foObjs.put("retrieve-marker", new RM());
- }
-
- }
-
- /**
- * @see org.apache.fop.fo.ElementMapping#addToBuilder(FOTreeBuilder)
- */
- public void addToBuilder(FOTreeBuilder builder) {
- setupFO();
- String uri = "http://www.w3.org/1999/XSL/Format";
- builder.addMapping(uri, foObjs);
- }
-
- static class R extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.pagination.Root(parent);
- }
- }
-
- static class Dec extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new Declarations(parent);
- }
- }
-
- static class CP extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new ColorProfile(parent);
- }
- }
-
- static class PS extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.pagination.PageSequence(parent);
- }
- }
-
- static class LMS extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.pagination.LayoutMasterSet(parent);
- }
- }
-
- static class PSM extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.pagination.PageSequenceMaster(parent);
- }
- }
-
- static class SPMR extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.pagination.SinglePageMasterReference(parent);
- }
- }
-
- static class RPMR extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.pagination.RepeatablePageMasterReference(parent);
- }
- }
-
- static class RPMA extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.pagination.RepeatablePageMasterAlternatives(parent);
- }
- }
-
- static class CPMR extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.pagination.ConditionalPageMasterReference(parent);
- }
- }
-
- static class SPM extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.pagination.SimplePageMaster(parent);
- }
- }
-
- static class RB extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.pagination.RegionBody(parent);
- }
- }
-
- static class RBefore extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.pagination.RegionBefore(parent);
- }
- }
-
- static class RA extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.pagination.RegionAfter(parent);
- }
- }
-
- static class RS extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.pagination.RegionStart(parent);
- }
- }
-
- static class RE extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.pagination.RegionEnd(parent);
- }
- }
-
- static class Fl extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.Flow(parent);
- }
- }
-
- static class SC extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.StaticContent(parent);
- }
- }
-
- static class T extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new Title(parent);
- }
- }
-
- static class B extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.Block(parent);
- }
- }
-
- static class BC extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.BlockContainer(parent);
- }
- }
-
- static class BO extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.BidiOverride(parent);
- }
- }
-
- static class Ch extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.Character(parent);
- }
- }
-
- static class IPS extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.InitialPropertySet(parent);
- }
- }
-
- static class EG extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.ExternalGraphic(parent);
- }
- }
-
- static class IFO extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.InstreamForeignObject(parent);
- }
- }
-
- static class In extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.Inline(parent);
- }
- }
-
- static class IC extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.InlineContainer(parent);
- }
- }
-
- static class L extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.Leader(parent);
- }
- }
-
- static class PN extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.PageNumber(parent);
- }
- }
-
- static class PNC extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.PageNumberCitation(parent);
- }
- }
-
- static class TAC extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.TableAndCaption(parent);
- }
- }
-
- static class Ta extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.Table(parent);
- }
- }
-
- static class TC extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.TableColumn(parent);
- }
- }
-
- static class TCaption extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.TableCaption(parent);
- }
- }
-
- static class TB extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.TableBody(parent);
- }
- }
-
- static class TR extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.TableRow(parent);
- }
- }
-
- static class TCell extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.TableCell(parent);
- }
- }
-
- static class LB extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.ListBlock(parent);
- }
- }
-
- static class LI extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.ListItem(parent);
- }
- }
-
- static class LIB extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.ListItemBody(parent);
- }
- }
-
- static class LIL extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.ListItemLabel(parent);
- }
- }
-
- static class BL extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.BasicLink(parent);
- }
- }
-
- static class MS extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.MultiSwitch(parent);
- }
- }
-
- static class MC extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.MultiCase(parent);
- }
- }
-
- static class MT extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.MultiToggle(parent);
- }
- }
-
- static class MP extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.MultiProperties(parent);
- }
- }
-
- static class MPS extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.MultiPropertySet(parent);
- }
- }
-
- static class F extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.Float(parent);
- }
- }
-
- static class Foot extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.Footnote(parent);
- }
- }
-
- static class FB extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.FootnoteBody(parent);
- }
- }
-
- static class W extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.Wrapper(parent);
- }
- }
-
- static class M extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.Marker(parent);
- }
- }
-
- static class RM extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new org.apache.fop.fo.flow.RetrieveMarker(parent);
- }
- }
-}
diff --git a/src/org/apache/fop/fo/FONode.java b/src/org/apache/fop/fo/FONode.java
deleted file mode 100644
index e9851875c..000000000
--- a/src/org/apache/fop/fo/FONode.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-// Java
-import java.util.ListIterator;
-
-// XML
-import org.xml.sax.Attributes;
-
-// Avalon
-import org.apache.avalon.framework.logger.Logger;
-
-// FOP
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.apps.StructureHandler;
-import org.apache.fop.util.CharUtilities;
-
-/**
- * base class for nodes in the XML tree
- *
- */
-public abstract class FONode {
-
- /** FO User Agent for this node (for logger etc.)*/
- protected FOUserAgent userAgent;
- /** Parent FO node */
- protected FONode parent;
- /** Name of the node */
- protected String name;
-
- /**
- * Main constructor.
- * @param parent parent of this node
- */
- protected FONode(FONode parent) {
- this.parent = parent;
- }
-
- /**
- * Sets the name of the node.
- * @param str the name
- */
- public void setName(String str) {
- name = str;
- }
-
- /**
- * Returns the logger for the node.
- * @return the logger
- */
- protected Logger getLogger() {
- return userAgent.getLogger();
- }
-
- /**
- * Sets the user agent for the node.
- * @param ua the user agent
- */
- public void setUserAgent(FOUserAgent ua) {
- userAgent = ua;
- }
-
- /**
- * Returns the user agent for the node.
- * @return FOUserAgent
- */
- protected FOUserAgent getUserAgent() {
- return userAgent;
- }
-
- /**
- * Sets the structure handler to send events to.
- * @param st StructureHandler instance
- */
- public void setStructHandler(StructureHandler st) {
- }
-
- public void handleAttrs(Attributes attlist) throws FOPException {
- }
-
- /**
- * Returns the name of the object
- * @return the name of this object
- */
- public String getName() {
- return this.name;
- }
-
- /**
- * Adds characters (does nothing here)
- * @param data text
- * @param start start position
- * @param length length of the text
- */
- protected void addCharacters(char data[], int start, int length) {
- // ignore
- }
-
- /**
- *
- */
- protected void start() {
- // do nothing by default
- }
-
- /**
- *
- */
- protected void end() {
- // do nothing by default
- }
-
- protected void addChild(FONode child) {
- }
-
- public FONode getParent() {
- return this.parent;
- }
-
- /**
- * Return an iterator over all the children of this FObj.
- * @return A ListIterator.
- */
- public ListIterator getChildren() {
- return null;
- }
-
- /**
- * Return an iterator over the object's children starting
- * at the pased node.
- * @param childNode First node in the iterator
- * @return A ListIterator or null if childNode isn't a child of
- * this FObj.
- */
- public ListIterator getChildren(FONode childNode) {
- return null;
- }
-
- public CharIterator charIterator() {
- return new OneCharIterator(CharUtilities.CODE_EOT);
- }
-
- /**
- * This is a quick check to see if it is a marker.
- * This is needed since there is no other quick way of checking
- * for a marker and not adding to the child list.
- *
- * @return true if this is a marker
- */
- protected boolean isMarker() {
- return false;
- }
-}
-
diff --git a/src/org/apache/fop/fo/FOText.java b/src/org/apache/fop/fo/FOText.java
deleted file mode 100644
index 78edbc48f..000000000
--- a/src/org/apache/fop/fo/FOText.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-// Java
-import java.util.NoSuchElementException;
-import java.util.List;
-
-// FOP
-import org.apache.fop.layout.TextState;
-import org.apache.fop.layoutmgr.LayoutManager;
-import org.apache.fop.layoutmgr.TextLayoutManager;
-import org.apache.fop.apps.StructureHandler;
-import org.apache.fop.fo.properties.WhiteSpaceCollapse;
-
-/**
- * A text node in the formatting object tree.
- *
- * Modified by Mark Lillywhite, mark-fop@inomial.com.
- * Unfortunately the BufferManager implementatation holds
- * onto references to the character data in this object
- * longer than the lifetime of the object itself, causing
- * excessive memory consumption and OOM errors.
- */
-public class FOText extends FObj {
-
- protected char[] ca;
- protected int start;
- protected int length;
- TextInfo textInfo;
- TextState ts;
-
- public FOText(char[] chars, int s, int e, TextInfo ti) {
- super(null);
- this.start = 0;
- this.ca = new char[e - s];
- System.arraycopy(chars, s, ca, 0, e - s);
- this.length = e - s;
- textInfo = ti;
- }
-
- public void setStructHandler(StructureHandler st) {
- super.setStructHandler(st);
- structHandler.characters(ca, start, length);
- }
-
- /**
- * Check if this text node will create an area.
- * This means either there is non-whitespace or it is
- * preserved whitespace.
- * Maybe this just needs to check length > 0, since char iterators
- * handle whitespace.
- *
- * @return true if this will create an area in the output
- */
- public boolean willCreateArea() {
- if (textInfo.whiteSpaceCollapse == WhiteSpaceCollapse.FALSE
- && length > 0) {
- return true;
- }
-
- for (int i = start; i < start + length; i++) {
- char ch = ca[i];
- if (!((ch == ' ')
- || (ch == '\n')
- || (ch == '\r')
- || (ch == '\t'))) { // whitespace
- return true;
- }
- }
- return false;
- }
-
- public void addLayoutManager(List list) {
- // if nothing left (length=0)?
- if (length == 0) {
- return;
- }
-
- if (length < ca.length) {
- char[] tmp = ca;
- ca = new char[length];
- System.arraycopy(tmp, 0, ca, 0, length);
- }
- LayoutManager lm = new TextLayoutManager(ca, textInfo);
- lm.setFObj(this);
- list.add(lm);
- }
-
- public CharIterator charIterator() {
- return new TextCharIterator();
- }
-
- private class TextCharIterator extends AbstractCharIterator {
- private int curIndex = 0;
-
- public boolean hasNext() {
- return (curIndex < length);
- }
-
- public char nextChar() {
- if (curIndex < length) {
- // Just a char class? Don't actually care about the value!
- return ca[curIndex++];
- } else {
- throw new NoSuchElementException();
- }
- }
-
- public void remove() {
- if (curIndex > 0 && curIndex < length) {
- // copy from curIndex to end to curIndex-1
- System.arraycopy(ca, curIndex, ca, curIndex - 1,
- length - curIndex);
- length--;
- curIndex--;
- } else if (curIndex == length) {
- curIndex = --length;
- }
- }
-
-
- public void replaceChar(char c) {
- if (curIndex > 0 && curIndex <= length) {
- ca[curIndex - 1] = c;
- }
- }
-
-
- }
-}
-
diff --git a/src/org/apache/fop/fo/FOTreeBuilder.java b/src/org/apache/fop/fo/FOTreeBuilder.java
deleted file mode 100644
index fbe2a57ce..000000000
--- a/src/org/apache/fop/fo/FOTreeBuilder.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-// FOP
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.apps.StructureHandler;
-
-// Java
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-// SAX
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.Attributes;
-
-// Avalon
-import org.apache.avalon.framework.logger.Logger;
-
-/**
- * SAX Handler that builds the formatting object tree.
- *
- * Modified by Mark Lillywhite mark-fop@inomial.com. Now uses
- * StreamRenderer to automagically render the document as
- * soon as it receives a page-sequence end-tag. Also,
- * calls methods to set up and shut down the renderer at
- * the beginning and end of the FO document. Finally,
- * supresses adding the PageSequence object to the Root,
- * since it is parsed immediately.
- */
-public class FOTreeBuilder extends DefaultHandler {
-
- /**
- * Table mapping element names to the makers of objects
- * representing formatting objects.
- */
- protected Map fobjTable = new java.util.HashMap();
-
- /**
- * Set of mapped namespaces.
- */
- protected Set namespaces = new java.util.HashSet();
-
- /**
- * Current formatting object being handled
- */
- protected FONode currentFObj = null;
-
- /**
- * The root of the formatting object tree
- */
- protected FONode rootFObj = null;
-
- /**
- * The class that handles formatting and rendering to a stream
- * (mark-fop@inomial.com)
- */
- private StructureHandler structHandler;
-
- private FOUserAgent userAgent;
-
- /**
- * Default constructor
- */
- public FOTreeBuilder() {
- }
-
- private Logger getLogger() {
- return userAgent.getLogger();
- }
-
- /**
- * Sets the user agent
- * @param ua the user agent
- */
- public void setUserAgent(FOUserAgent ua) {
- userAgent = ua;
- }
-
- private FOUserAgent getUserAgent() {
- return userAgent;
- }
-
- /**
- * Sets the structure handler to receive events.
- * @param sh StructureHandler instance
- */
- public void setStructHandler(StructureHandler sh) {
- this.structHandler = sh;
- }
-
- /**
- * Adds a mapping from a namespace to a table of makers.
- *
- * @param namespaceURI namespace URI of formatting object elements
- * @param table table of makers
- */
- public void addMapping(String namespaceURI, HashMap table) {
- this.fobjTable.put(namespaceURI, table);
- this.namespaces.add(namespaceURI.intern());
- }
-
- /**
- * SAX Handler for characters
- * @see org.xml.sax.ContentHandler#characters(char[], int, int)
- */
- public void characters(char data[], int start, int length) {
- if (currentFObj != null) {
- currentFObj.addCharacters(data, start, start + length);
- }
- }
-
- /**
- * SAX Handler for the end of an element
- * @see org.xml.sax.ContentHandler#endElement(String, String, String)
- */
- public void endElement(String uri, String localName, String rawName)
- throws SAXException {
- currentFObj.end();
- currentFObj = currentFObj.getParent();
- }
-
- /**
- * SAX Handler for the start of the document
- * @see org.xml.sax.ContentHandler#startDocument()
- */
- public void startDocument() throws SAXException {
- rootFObj = null; // allows FOTreeBuilder to be reused
- if (getLogger().isDebugEnabled()) {
- getLogger().debug("Building formatting object tree");
- }
- structHandler.startDocument();
- }
-
- /**
- * SAX Handler for the end of the document
- * @see org.xml.sax.ContentHandler#endDocument()
- */
- public void endDocument() throws SAXException {
- rootFObj = null;
- currentFObj = null;
- if (getLogger().isDebugEnabled()) {
- getLogger().debug("Parsing of document complete");
- }
- structHandler.endDocument();
- }
-
- /**
- * SAX Handler for the start of an element
- * @see org.xml.sax.ContentHandler#startElement(String, String, String, Attributes)
- */
- public void startElement(String uri, String localName, String rawName,
- Attributes attlist) throws SAXException {
- /* the formatting object started */
- FONode fobj;
-
- /* the maker for the formatting object started */
- ElementMapping.Maker fobjMaker = null;
-
- Map table = (Map)fobjTable.get(uri);
- if (table != null) {
- fobjMaker = (ElementMapping.Maker)table.get(localName);
- // try default
- if (fobjMaker == null) {
- fobjMaker = (ElementMapping.Maker)table.get(ElementMapping.DEFAULT);
- }
- }
-
- if (fobjMaker == null) {
- if (getLogger().isWarnEnabled()) {
- getLogger().warn("Unknown formatting object " + uri + "^" + localName);
- }
- if (namespaces.contains(uri.intern())) {
- // fall back
- fobjMaker = new Unknown.Maker();
- } else {
- fobjMaker = new UnknownXMLObj.Maker(uri);
- }
- }
-
- try {
- fobj = fobjMaker.make(currentFObj);
- fobj.setName(localName);
- // set the user agent for resolving user agent values
- fobj.setUserAgent(userAgent);
- // set the structure handler so that appropriate
- // elements can signal structure events
- fobj.setStructHandler(structHandler);
-
- fobj.handleAttrs(attlist);
- } catch (FOPException e) {
- throw new SAXException(e);
- }
-
- if (rootFObj == null) {
- if (!fobj.getName().equals("fo:root")) {
- throw new SAXException(new FOPException("Root element must"
- + " be fo:root, not "
- + fobj.getName()));
- }
- rootFObj = fobj;
- } else {
- currentFObj.addChild(fobj);
- }
-
- currentFObj = fobj;
- }
-
- /**
- * Resets this object for another run.
- */
- public void reset() {
- currentFObj = null;
- rootFObj = null;
- structHandler = null;
- }
-
- /**
- * Indicates if data has been processed.
- * @return True if data has been processed
- */
- public boolean hasData() {
- return (rootFObj != null);
- }
-}
diff --git a/src/org/apache/fop/fo/FOUserAgent.java b/src/org/apache/fop/fo/FOUserAgent.java
deleted file mode 100644
index 24574a81a..000000000
--- a/src/org/apache/fop/fo/FOUserAgent.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-// Java
-import java.util.Map;
-import java.io.IOException;
-import java.io.InputStream;
-
-// XML
-import org.w3c.dom.Document;
-
-// Avalon
-import org.apache.avalon.framework.logger.LogEnabled;
-import org.apache.avalon.framework.logger.Logger;
-
-// FOP
-import org.apache.fop.render.XMLHandler;
-import org.apache.fop.render.RendererContext;
-
-/**
- * The User Agent for fo.
- * This user agent is used by the processing to obtain user configurable
- * options.
- * <p>
- * Renderer specific extensions (that do not produce normal areas on
- * the output) will be done like so:
- * <br>
- * The extension will create an area, custom if necessary
- * <br>
- * this area will be added to the user agent with a key
- * <br>
- * the renderer will know keys for particular extensions
- * <br>
- * eg. bookmarks will be held in a special hierarchical area representing
- * the title and bookmark structure
- * <br>
- * These areas may contain resolveable areas that will be processed
- * with other resolveable areas
- */
-public class FOUserAgent implements LogEnabled {
-
- private Logger log;
- private Map defaults = new java.util.HashMap();
- private Map handlers = new java.util.HashMap();
- private String baseURL;
-
- /**
- * Sets the logger.
- * @param log Logger to use
- * @see org.apache.avalon.framework.logger.LogEnabled#enableLogging(Logger)
- */
- public void enableLogging(Logger log) {
- this.log = log;
- }
-
- /**
- * Returns the logger to use.
- * @see org.apache.avalon.framework.logger.AbstractLogEnabled#getLogger()
- * @todo This breaks IoC/SoC. Should be improved.
- */
- public Logger getLogger() {
- return this.log;
- }
-
- /**
- * Sets the base URL.
- * @param baseURL base URL
- */
- public void setBaseURL(String baseURL) {
- this.baseURL = baseURL;
- }
-
- /**
- * Returns the base URL.
- * @return the base URL
- */
- public String getBaseURL() {
- if ((this.baseURL == null) || (this.baseURL.trim().equals(""))) {
- return "file:.";
- } else {
- return this.baseURL;
- }
- }
-
- /**
- * Get an input stream for a reference.
- * Temporary solution until API better.
- * @param uri URI to access
- * @return InputStream for accessing the resource.
- * @throws IOException in case of an I/O problem
- */
- public InputStream getStream(String uri) throws IOException {
- return null;
- }
-
- /**
- * Returns the conversion factor from pixel units to millimeters. This
- * depends on the desired reolution.
- * @return float conversion factor
- */
- public float getPixelUnitToMillimeter() {
- return 0.35277777777777777778f;
- }
-
- /**
- * If to create hot links to footnotes and before floats.
- * @return True if hot links dhould be created
- */
- public boolean linkToFootnotes() {
- return true;
- }
-
- /**
- * Set the default xml handler for the given mime type.
- * @param mime MIME type
- * @param handler XMLHandler to use
- */
- public void setDefaultXMLHandler(String mime, XMLHandler handler) {
- defaults.put(mime, handler);
- }
-
- /**
- * Add an xml handler for the given mime type and xml namespace.
- * @param mime MIME type
- * @param ns Namespace URI
- * @param handler XMLHandler to use
- */
- public void addXMLHandler(String mime, String ns, XMLHandler handler) {
- Map mh = (Map) handlers.get(mime);
- if (mh == null) {
- mh = new java.util.HashMap();
- handlers.put(mime, mh);
- }
- mh.put(ns, handler);
- }
-
- /**
- * Render the xml document with the given xml namespace.
- * The Render Context is by the handle to render into the current
- * rendering target.
- * @param ctx rendering context
- * @param doc DOM Document containing the source document
- * @param namespace Namespace URI of the document
- */
- public void renderXML(RendererContext ctx, Document doc,
- String namespace) {
- String mime = ctx.getMimeType();
- Map mh = (Map) handlers.get(mime);
- XMLHandler handler = null;
- if (mh != null) {
- handler = (XMLHandler) mh.get(namespace);
- }
- if (handler == null) {
- handler = (XMLHandler) defaults.get(mime);
- }
- if (handler != null) {
- try {
- handler.handleXML(ctx, doc, namespace);
- } catch (Throwable t) {
- // could not handle document
- getLogger().error("Some XML content will be ignored. "
- + "Could not render XML", t);
- }
- } else {
- // no handler found for document
- getLogger().warn("Some XML content will be ignored. "
- + "No handler defined for XML: " + namespace);
- }
- }
-}
-
diff --git a/src/org/apache/fop/fo/FObj.java b/src/org/apache/fop/fo/FObj.java
deleted file mode 100644
index dd5f74921..000000000
--- a/src/org/apache/fop/fo/FObj.java
+++ /dev/null
@@ -1,376 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-// Java
-import java.util.Iterator;
-import java.util.ListIterator;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.HashMap;
-import java.util.Set;
-import java.util.Map;
-import org.xml.sax.Attributes;
-
-// FOP
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.apps.StructureHandler;
-import org.apache.fop.fo.properties.FOPropertyMapping;
-import org.apache.fop.fo.flow.Marker;
-
-/**
- * base class for representation of formatting objects and their processing
- */
-public class FObj extends FONode {
- private static final String FO_URI = "http://www.w3.org/1999/XSL/Format";
-
- /**
- * Static property list builder that converts xml attributes
- * into fo properties. This is static since the underlying
- * property mappings for fo are also static.
- */
- protected static PropertyListBuilder plb = null;
-
- /**
- * Structure handler used to notify structure events
- * such as start end element.
- */
- protected StructureHandler structHandler;
-
- /**
- * Formatting properties for this fo element.
- */
- public PropertyList properties;
-
- /**
- * Property manager for handler some common properties.
- */
- protected PropertyManager propMgr;
-
- /**
- * Id of this fo element of null if no id.
- */
- protected String id = null;
-
- /**
- * The children of this node.
- */
- protected ArrayList children = null;
-
- /**
- * Markers added to this element.
- */
- protected Map markers = null;
-
- /**
- * Create a new formatting object.
- * All formatting object classes extend this class.
- *
- * @param parent the parent node
- */
- public FObj(FONode parent) {
- super(parent);
- }
-
- /**
- * Set the name of this element.
- * The prepends "fo:" to the name to indicate it is in the fo namespace.
- *
- * @param str the xml element name
- */
- public void setName(String str) {
- name = "fo:" + str;
- }
-
- protected PropertyListBuilder getListBuilder() {
- if (plb == null) {
- plb = new PropertyListBuilder();
- plb.addList(FOPropertyMapping.getGenericMappings());
-
- for (Iterator iter =
- FOPropertyMapping.getElementMappings().iterator();
- iter.hasNext();) {
- String elem = (String) iter.next();
- plb.addElementList(elem,
- FOPropertyMapping.getElementMapping(elem));
- }
- }
- return plb;
- }
-
- /**
- * Handle the attributes for this element.
- * The attributes must be used immediately as the sax attributes
- * will be altered for the next element.
- */
- public void handleAttrs(Attributes attlist) throws FOPException {
- FONode par = parent;
- while (par != null && !(par instanceof FObj)) {
- par = par.parent;
- }
- PropertyList props = null;
- if (par != null) {
- props = ((FObj) par).properties;
- }
- properties = getListBuilder().makeList(FO_URI, name, attlist, props,
- (FObj) par);
- properties.setFObj(this);
- this.propMgr = makePropertyManager(properties);
- setWritingMode();
- }
-
- protected PropertyManager makePropertyManager(
- PropertyList propertyList) {
- return new PropertyManager(propertyList);
- }
-
- /**
- * Add the child to this object.
- *
- * @param child the child node to add
- */
- protected void addChild(FONode child) {
- if (containsMarkers() && child.isMarker()) {
- addMarker((Marker)child);
- } else {
- if (children == null) {
- children = new ArrayList();
- }
- children.add(child);
- }
- }
-
- /**
- * Set the structure handler for handling structure events.
- *
- * @param st the structure handler
- */
- public void setStructHandler(StructureHandler st) {
- structHandler = st;
- }
-
- /**
- * lets outside sources access the property list
- * first used by PageNumberCitation to find the "id" property
- * @param name - the name of the desired property to obtain
- * @return the property
- */
- public Property getProperty(String name) {
- return (properties.get(name));
- }
-
- /**
- * Setup the id for this formatting object.
- * Most formatting objects can have an id that can be referenced.
- * This methods checks that the id isn't already used by another
- * fo and sets the id attribute of this object.
- */
- protected void setupID() {
- Property prop = this.properties.get("id");
- if (prop != null) {
- String str = prop.getString();
- if (str != null && !str.equals("")) {
- Set idrefs = structHandler.getIDReferences();
- if (!idrefs.contains(str)) {
- id = str;
- idrefs.add(id);
- } else {
- getLogger().warn("duplicate id:" + str + " ignored");
- }
- }
- }
- }
-
- /**
- * Get the id string for this formatting object.
- * This will be unique for the fo document.
- *
- * @return the id string or null if not set
- */
- public String getID() {
- return id;
- }
-
- /**
- * Check if this formatting object generates reference areas.
- *
- * @return true if generates reference areas
- */
- public boolean generatesReferenceAreas() {
- return false;
- }
-
- /**
- * Check if this formatting object generates inline areas.
- *
- * @return true if generates inline areas
- */
- public boolean generatesInlineAreas() {
- return true;
- }
-
- /**
- * Check if this formatting object may contain markers.
- *
- * @return true if this can contian markers
- */
- protected boolean containsMarkers() {
- return false;
- }
-
- /**
- * Set writing mode for this FO.
- * Find nearest ancestor, including self, which generates
- * reference areas and use the value of its writing-mode property.
- * If no such ancestor is found, use the value on the root FO.
- */
- protected void setWritingMode() {
- FObj p;
- FONode parent;
- for (p = this; !p.generatesReferenceAreas()
- && (parent = p.getParent()) != null
- && (parent instanceof FObj); p = (FObj) parent) {
- }
- this.properties.setWritingMode(
- p.getProperty("writing-mode").getEnum());
- }
-
- /**
- * Return a LayoutManager responsible for laying out this FObj's content.
- * Must override in subclasses if their content can be laid out.
- * @param list the list to add the layout manager(s) to
- */
- public void addLayoutManager(List list) {
- }
-
- /**
- * Return an iterator over all the children of this FObj.
- * @return A ListIterator.
- */
- public ListIterator getChildren() {
- if (children != null) {
- return children.listIterator();
- }
- return null;
- }
-
- /**
- * Return an iterator over the object's children starting
- * at the pased node.
- * @param childNode First node in the iterator
- * @return A ListIterator or null if childNode isn't a child of
- * this FObj.
- */
- public ListIterator getChildren(FONode childNode) {
- if (children != null) {
- int i = children.indexOf(childNode);
- if (i >= 0) {
- return children.listIterator(i);
- }
- }
- return null;
- }
-
- /**
- * Add the marker to this formatting object.
- * If this object can contain markers it checks that the marker
- * has a unique class-name for this object and that it is
- * the first child.
- */
- public void addMarker(Marker marker) {
- String mcname = marker.getMarkerClassName();
- if (children != null) {
- // check for empty children
- for (Iterator iter = children.iterator(); iter.hasNext();) {
- FONode node = (FONode)iter.next();
- if (node instanceof FOText) {
- FOText text = (FOText)node;
- if (text.willCreateArea()) {
- getLogger().error("fo:marker must be an initial child: " + mcname);
- return;
- } else {
- iter.remove();
- }
- } else {
- getLogger().error("fo:marker must be an initial child: " + mcname);
- return;
- }
- }
- }
- if (markers == null) {
- markers = new HashMap();
- }
- if (!markers.containsKey(mcname)) {
- markers.put(mcname, marker);
- } else {
- getLogger().error("fo:marker 'marker-class-name' "
- + "must be unique for same parent: " + mcname);
- }
- }
-
- public boolean hasMarkers() {
- return markers != null && !markers.isEmpty();
- }
-
- public Map getMarkers() {
- return markers;
- }
-
- /**
- * lets layout managers access FO properties via PropertyManager
- * @return the property manager for this FO
- */
- public PropertyManager getPropertyManager() {
- return this.propMgr;
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/FObjMixed.java b/src/org/apache/fop/fo/FObjMixed.java
deleted file mode 100644
index c1c91b88c..000000000
--- a/src/org/apache/fop/fo/FObjMixed.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import org.apache.fop.layout.FontInfo;
-import org.apache.fop.apps.StructureHandler;
-import org.apache.fop.layoutmgr.InlineStackingLayoutManager;
-import org.apache.fop.layoutmgr.LMiter;
-
-import java.util.List;
-
-/**
- * base class for representation of mixed content formatting objects
- * and their processing
- */
-public class FObjMixed extends FObj {
- protected TextInfo textInfo = null;
- protected FontInfo fontInfo = null;
-
- public FObjMixed(FONode parent) {
- super(parent);
- }
-
- public void setStructHandler(StructureHandler st) {
- super.setStructHandler(st);
- fontInfo = st.getFontInfo();
- }
-
- public void addLayoutManager(List lms) {
- if (children != null) {
- InlineStackingLayoutManager lm;
- lm = new InlineStackingLayoutManager();
- lm.setUserAgent(getUserAgent());
- lm.setFObj(this);
- lm.setLMiter(new LMiter(children.listIterator()));
- lms.add(lm);
- }
- }
-
- protected void addCharacters(char data[], int start, int length) {
- if (textInfo == null) {
- // Really only need one of these, but need to get fontInfo
- // stored in propMgr for later use.
- propMgr.setFontInfo(fontInfo);
- textInfo = propMgr.getTextLayoutProps(fontInfo);
- }
-
- FOText ft = new FOText(data, start, length, textInfo);
- ft.setUserAgent(userAgent);
- ft.setStructHandler(structHandler);
- addChild(ft);
- }
-
- public void setup() {
- if (this.properties != null) {
- setupID();
- }
- }
-
- public CharIterator charIterator() {
- return new RecursiveCharIterator(this);
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/GenericShorthandParser.java b/src/org/apache/fop/fo/GenericShorthandParser.java
deleted file mode 100644
index 54c2da6f1..000000000
--- a/src/org/apache/fop/fo/GenericShorthandParser.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import java.util.Vector;
-import java.util.Enumeration;
-
-public class GenericShorthandParser implements ShorthandParser {
-
- protected Vector list; // Vector of Property objects
-
- public GenericShorthandParser(ListProperty listprop) {
- this.list = listprop.getList();
- }
-
- protected Property getElement(int index) {
- if (list.size() > index) {
- return (Property)list.elementAt(index);
- } else {
- return null;
- }
- }
-
- protected int count() {
- return list.size();
- }
-
- // Stores 1 to 3 values for border width, style, color
- // Used for: border, border-top, border-right etc
- public Property getValueForProperty(String propName,
- Property.Maker maker,
- PropertyList propertyList) {
- Property prop = null;
- // Check for keyword "inherit"
- if (count() == 1) {
- String sval = ((Property)list.elementAt(0)).getString();
- if (sval != null && sval.equals("inherit")) {
- return propertyList.getFromParent(propName);
- }
- }
- return convertValueForProperty(propName, maker, propertyList);
- }
-
-
- protected Property convertValueForProperty(String propName,
- Property.Maker maker,
- PropertyList propertyList) {
- Property prop = null;
- // Try each of the stored values in turn
- Enumeration eprop = list.elements();
- while (eprop.hasMoreElements() && prop == null) {
- Property p = (Property)eprop.nextElement();
- prop = maker.convertShorthandProperty(propertyList, p, null);
- }
- return prop;
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/InlineCharIterator.java b/src/org/apache/fop/fo/InlineCharIterator.java
deleted file mode 100644
index 78eb78d4d..000000000
--- a/src/org/apache/fop/fo/InlineCharIterator.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.util.CharUtilities;
-import java.util.NoSuchElementException;
-
-
-public class InlineCharIterator extends RecursiveCharIterator {
- private boolean bStartBoundary = false;
- private boolean bEndBoundary = false;
-
- public InlineCharIterator(FObj fobj, BorderAndPadding bap) {
- super(fobj);
- checkBoundaries(bap);
- }
-
-
- private void checkBoundaries(BorderAndPadding bap) {
- // TODO! use start and end in BAP!!
- bStartBoundary = (bap.getBorderLeftWidth(false) > 0
- || bap.getPaddingLeft(false) > 0);
- bEndBoundary = (bap.getBorderRightWidth(false) > 0
- || bap.getPaddingRight(false) > 0);
- }
-
- public boolean hasNext() {
- if (bStartBoundary) {
- return true;
- }
- return (super.hasNext() || bEndBoundary);
- /* If super.hasNext() returns false,
- * we return true if we are going to return a "boundary" signal
- * else false.
- */
- }
-
- public char nextChar() throws NoSuchElementException {
- if (bStartBoundary) {
- bStartBoundary = false;
- return CharUtilities.CODE_EOT;
- }
- try {
- return super.nextChar();
- } catch (NoSuchElementException e) {
- // Underlying has nothing more to return
- // Check end boundary char
- if (bEndBoundary) {
- bEndBoundary = false;
- return CharUtilities.CODE_EOT;
- } else {
- throw e;
- }
- }
- }
-}
-
diff --git a/src/org/apache/fop/fo/KeepProperty.java b/src/org/apache/fop/fo/KeepProperty.java
deleted file mode 100644
index c2099e051..000000000
--- a/src/org/apache/fop/fo/KeepProperty.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import org.apache.fop.datatypes.Keep;
-
-public class KeepProperty extends Property {
-
- public static class Maker extends Property.Maker {
-
- protected Maker(String name) {
- super(name);
- }
-
- }
-
- private Keep keep;
-
- public KeepProperty(Keep keep) {
- this.keep = keep;
- }
-
- public Keep getKeep() {
- return this.keep;
- }
-
- public Object getObject() {
- return this.keep;
- }
-
-}
diff --git a/src/org/apache/fop/fo/LengthPairProperty.java b/src/org/apache/fop/fo/LengthPairProperty.java
deleted file mode 100644
index d978fef99..000000000
--- a/src/org/apache/fop/fo/LengthPairProperty.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import org.apache.fop.datatypes.LengthPair;
-
-public class LengthPairProperty extends Property {
-
- public static class Maker extends LengthProperty.Maker {
-
- protected Maker(String name) {
- super(name);
- }
-
- }
-
- private LengthPair lengthPair;
-
- public LengthPairProperty(LengthPair lengthPair) {
- this.lengthPair = lengthPair;
- }
-
- public LengthPair getLengthPair() {
- return this.lengthPair;
- }
-
- public Object getObject() {
- return this.lengthPair;
- }
-
-}
diff --git a/src/org/apache/fop/fo/LengthProperty.java b/src/org/apache/fop/fo/LengthProperty.java
deleted file mode 100644
index 22c458ce4..000000000
--- a/src/org/apache/fop/fo/LengthProperty.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import org.apache.fop.datatypes.Length;
-import org.apache.fop.datatypes.AutoLength;
-import org.apache.fop.fo.expr.Numeric;
-import org.apache.fop.apps.FOPException;
-
-public class LengthProperty extends Property {
-
- public static class Maker extends Property.Maker {
-
- public /* protected */ Maker(String name) {
- super(name);
- }
-
- /**
- * protected Property checkPropertyKeywords(String value) {
- * if (isAutoLengthAllowed() && value.equals("auto")) {
- * return new LengthProperty(Length.AUTO);
- * }
- * return null;
- * }
- */
-
- protected boolean isAutoLengthAllowed() {
- return false;
- }
-
- public Property convertProperty(Property p,
- PropertyList propertyList,
- FObj fo) throws FOPException {
- if (isAutoLengthAllowed()) {
- String pval = p.getString();
- if (pval != null && pval.equals("auto")) {
- return new LengthProperty(new AutoLength());
- }
- }
- if (p instanceof LengthProperty) {
- return p;
- }
- Length val = p.getLength();
- if (val != null) {
- return new LengthProperty(val);
- }
- return convertPropertyDatatype(p, propertyList, fo);
- }
-
- }
-
- /*
- * public static Property.Maker maker(String prop) {
- * return new Maker(prop);
- * }
- */
-
- /**
- * This object may be also be a subclass of Length, such
- * as PercentLength, TableColLength.
- */
- private Length length;
-
- public LengthProperty(Length length) {
- this.length = length;
- // System.err.println("Set LengthProperty: " + length.toString());
- }
-
- public Numeric getNumeric() {
- return length.asNumeric() ;
- }
-
- public Length getLength() {
- return this.length;
- }
-
- public Object getObject() {
- return this.length;
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/LengthRangeProperty.java b/src/org/apache/fop/fo/LengthRangeProperty.java
deleted file mode 100644
index 0b6a02b28..000000000
--- a/src/org/apache/fop/fo/LengthRangeProperty.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import org.apache.fop.datatypes.LengthRange;
-
-public class LengthRangeProperty extends Property {
-
- public static class Maker extends LengthProperty.Maker {
-
- protected Maker(String name) {
- super(name);
- }
-
- }
-
- private LengthRange lengthRange;
-
- public LengthRangeProperty(LengthRange lengthRange) {
- this.lengthRange = lengthRange;
- }
-
- public LengthRange getLengthRange() {
- return this.lengthRange;
- }
-
- public Object getObject() {
- return this.lengthRange;
- }
-
-}
diff --git a/src/org/apache/fop/fo/ListProperty.java b/src/org/apache/fop/fo/ListProperty.java
deleted file mode 100644
index 32c67f7fe..000000000
--- a/src/org/apache/fop/fo/ListProperty.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import java.util.Vector;
-
-public class ListProperty extends Property {
-
- public static class Maker extends Property.Maker {
-
- public Maker(String name) {
- super(name);
- }
-
- public Property convertProperty(Property p,
- PropertyList propertyList, FObj fo) {
- if (p instanceof ListProperty) {
- return p;
- } else {
- return new ListProperty(p);
- }
- }
-
- }
-
- protected Vector list;
-
- public ListProperty(Property prop) {
- list = new Vector();
- list.addElement(prop);
- }
-
- public void addProperty(Property prop) {
- list.addElement(prop);
- }
-
- public Vector getList() {
- return list;
- }
-
- public Object getObject() {
- return list;
- }
-
-}
diff --git a/src/org/apache/fop/fo/NumberProperty.java b/src/org/apache/fop/fo/NumberProperty.java
deleted file mode 100644
index 70e887901..000000000
--- a/src/org/apache/fop/fo/NumberProperty.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.fo.expr.Numeric;
-
-public class NumberProperty extends Property {
-
- public static class Maker extends Property.Maker {
-
- public Maker(String propName) {
- super(propName);
- }
-
- public Property convertProperty(Property p,
- PropertyList propertyList, FObj fo) {
- if (p instanceof NumberProperty) {
- return p;
- }
- Number val = p.getNumber();
- if (val != null) {
- return new NumberProperty(val);
- }
- return convertPropertyDatatype(p, propertyList, fo);
- }
-
- }
-
- private Number number;
-
- public NumberProperty(Number num) {
- this.number = num;
- }
-
- public NumberProperty(double num) {
- this.number = new Double(num);
- }
-
- public NumberProperty(int num) {
- this.number = new Integer(num);
- }
-
- public Number getNumber() {
- return this.number;
- }
-
- /**
- * public Double getDouble() {
- * return new Double(this.number.doubleValue());
- * }
- * public Integer getInteger() {
- * return new Integer(this.number.intValue());
- * }
- */
-
- public Object getObject() {
- return this.number;
- }
-
- public Numeric getNumeric() {
- return new Numeric(this.number);
- }
-
- public ColorType getColorType() {
- // Convert numeric value to color ???
- // Convert to hexadecimal and then try to make it into a color?
- return new ColorType((float)0.0, (float)0.0, (float)0.0);
- }
-
-}
diff --git a/src/org/apache/fop/fo/OneCharIterator.java b/src/org/apache/fop/fo/OneCharIterator.java
deleted file mode 100644
index 5aec5701d..000000000
--- a/src/org/apache/fop/fo/OneCharIterator.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import java.util.NoSuchElementException;
-
-
-public class OneCharIterator extends AbstractCharIterator {
-
- private boolean bFirst = true;
- private char charCode;
-
- public OneCharIterator(char c) {
- this.charCode = c;
- }
-
- public boolean hasNext() {
- return bFirst;
- }
-
- public char nextChar() throws NoSuchElementException {
- if (bFirst) {
- bFirst = false;
- return charCode;
- } else {
- throw new NoSuchElementException();
- }
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/Property.java b/src/org/apache/fop/fo/Property.java
deleted file mode 100644
index 8b3fc078b..000000000
--- a/src/org/apache/fop/fo/Property.java
+++ /dev/null
@@ -1,490 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.datatypes.CondLength;
-import org.apache.fop.datatypes.Keep;
-import org.apache.fop.datatypes.Length;
-import org.apache.fop.datatypes.LengthPair;
-import org.apache.fop.datatypes.LengthRange;
-import org.apache.fop.datatypes.PercentBase;
-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.apps.FOPException;
-import java.util.Vector;
-
-public class Property {
-
- public static class Maker {
- private static final String UNKNOWN = "UNKNOWN";
- private String propName;
-
- /**
- * Return the name of the property whose value is being set.
- */
- protected String getPropName() {
- return propName;
- }
-
- /**
- * Construct an instance of a Property.Maker for the given property.
- * @param propName The name of the property to be made.
- */
- protected Maker(String propName) {
- this.propName = propName;
- }
-
- /**
- * Construct an instance of a Property.Maker.
- * Note: the property name is set to "UNKNOWN".
- */
- protected Maker() {
- this.propName = UNKNOWN;
- }
-
-
- /**
- * Default implementation of isInherited.
- * @return A boolean indicating whether this property is inherited.
- */
- public boolean isInherited() {
- return false;
- }
-
- /**
- * Return a boolean indicating whether this property inherits the
- * "specified" value rather than the "computed" value. The default is
- * to inherit the "computed" value.
- * @return If true, property inherits the value specified.
- */
- public boolean inheritsSpecified() {
- return false;
- }
-
-
- /**
- * Return an object implementing the PercentBase interface.
- * This is used to handle properties specified as a percentage of
- * some "base length", such as the content width of their containing
- * box.
- * Overridden by subclasses which allow percent specifications. See
- * the documentation on properties.xsl for details.
- */
- public PercentBase getPercentBase(FObj fo, PropertyList pl) {
- return null;
- }
-
- /**
- * Return a Maker object which is used to set the values on components
- * of compound property types, such as "space".
- * Overridden by property maker subclasses which handle
- * compound properties.
- * @param subprop The name of the component for which a Maker is to
- * returned, for example "optimum", if the FO attribute is
- * space.optimum='10pt'.
- */
- protected Maker getSubpropMaker(String subprop) {
- return null;
- }
-
- /**
- * Return a property value for the given component of a compound
- * property.
- * @param p A property value for a compound property type such as
- * SpaceProperty.
- * @param subprop The name of the component whose value is to be
- * returned.
- * NOTE: this is only to ease porting when calls are made to
- * PropertyList.get() using a component name of a compound property,
- * such as get("space.optimum"). The recommended technique is:
- * get("space").getOptimum().
- * Overridden by property maker subclasses which handle
- * compound properties.
- */
- public Property getSubpropValue(Property p, String subprop) {
- return null;
- }
-
- /**
- * Return a property value for a compound property. If the property
- * value is already partially initialized, this method will modify it.
- * @param baseProp The Property object representing the compound property,
- * such as SpaceProperty.
- * @param partName The name of the component whose value is specified.
- * @param propertyList The propertyList being built.
- * @param fo The FO whose properties are being set.
- * @return A compound property object.
- */
- public Property make(Property baseProp, String partName,
- PropertyList propertyList, String value,
- FObj fo) throws FOPException {
- if (baseProp == null) {
- baseProp = makeCompound(propertyList, fo);
- }
- Maker spMaker = getSubpropMaker(partName);
- if (spMaker != null) {
- Property p = spMaker.make(propertyList, value, fo);
- if (p != null) {
- return setSubprop(baseProp, partName, p);
- }
- } else {
- //getLogger().error("compound property component "
- // + partName + " unknown.");
- }
- return baseProp;
- }
-
- /**
- * Set a component in a compound property and return the modified
- * compound property object.
- * This default implementation returns the original base property
- * without modifying it.
- * It is overridden by property maker subclasses which handle
- * compound properties.
- * @param baseProp The Property object representing the compound property,
- * such as SpaceProperty.
- * @param partName The name of the component whose value is specified.
- * @param subProp A Property object holding the specified value of the
- * component to be set.
- * @return The modified compound property object.
- */
- protected Property setSubprop(Property baseProp, String partName,
- Property subProp) {
- return baseProp;
- }
-
- /**
- * Create a Property object from an attribute specification.
- * @param propertyList The PropertyList object being built for this FO.
- * @param value The attribute value.
- * @param fo The current FO whose properties are being set.
- * @return The initialized Property object.
- */
- public Property make(PropertyList propertyList, String value,
- FObj fo) throws FOPException {
- try {
- Property pret = null;
- String pvalue = value;
- pret = checkEnumValues(value);
- if (pret == null) {
- /* Check for keyword shorthand values to be substituted. */
- pvalue = checkValueKeywords(value);
- // Override parsePropertyValue in each subclass of Property.Maker
- Property p = PropertyParser.parse(pvalue,
- new PropertyInfo(this,
- propertyList, fo));
- pret = convertProperty(p, propertyList, fo);
- } else if (isCompoundMaker()) {
- pret = convertProperty(pret, propertyList, fo);
- }
- if (pret == null) {
- throw new org.apache.fop.fo.expr.PropertyException("No conversion defined");
- } else if (inheritsSpecified()) {
- pret.setSpecifiedValue(pvalue);
- }
- return pret;
- } catch (org.apache.fop.fo.expr.PropertyException propEx) {
- throw new FOPException("Error in " + propName
- + " property value '" + value + "': "
- + propEx);
- }
- }
-
- public Property convertShorthandProperty(PropertyList propertyList,
- Property prop, FObj fo) {
- Property pret = null;
- try {
- pret = convertProperty(prop, propertyList, fo);
- if (pret == null) {
- // If value is a name token, may be keyword or Enum
- String sval = prop.getNCname();
- if (sval != null) {
- // System.err.println("Convert shorthand ncname " + sval);
- pret = checkEnumValues(sval);
- if (pret == null) {
- /* Check for keyword shorthand values to be substituted. */
- String pvalue = checkValueKeywords(sval);
- if (!pvalue.equals(sval)) {
- // System.err.println("Convert shorthand keyword" + pvalue);
- // Substituted a value: must parse it
- Property p =
- PropertyParser.parse(pvalue,
- new PropertyInfo(this,
- propertyList,
- fo));
- pret = convertProperty(p, propertyList, fo);
- }
- }
- }
- }
- } catch (FOPException e) {
-
- //getLogger().error("convertShorthandProperty caught FOPException "
- // + e);
- } catch (org.apache.fop.fo.expr.PropertyException propEx) {
- //getLogger().error("convertShorthandProperty caught PropertyException "
- // + propEx);
- }
- if (pret != null) {
- /*
- * System.err.println("Return shorthand value " + pret.getString() +
- * " for " + getPropName());
- */
- }
- return pret;
- }
-
- protected boolean isCompoundMaker() {
- return false;
- }
-
- public Property checkEnumValues(String value) {
- return null;
- }
-
- /**
- * Return a String to be parsed if the passed value corresponds to
- * a keyword which can be parsed and used to initialize the property.
- * For example, the border-width family of properties can have the
- * initializers "thin", "medium", or "thick". The foproperties.xml
- * file specifies a length value equivalent for these keywords,
- * such as "0.5pt" for "thin". These values are considered parseable,
- * since the Length object is no longer responsible for parsing
- * unit expresssions.
- * @param value The string value of property attribute.
- * @return A String containging a parseable equivalent or null if
- * the passed value isn't a keyword initializer for this Property.
- */
- protected String checkValueKeywords(String value) {
- return value;
- }
-
- /**
- * Return a Property object based on the passed Property object.
- * This method is called if the Property object built by the parser
- * isn't the right type for this property.
- * It is overridden by subclasses when the property specification in
- * foproperties.xml specifies conversion rules.
- * @param p The Property object return by the expression parser
- * @param propertyList The PropertyList object being built for this FO.
- * @param fo The current FO whose properties are being set.
- * @return A Property of the correct type or null if the parsed value
- * can't be converted to the correct type.
- */
- public Property convertProperty(Property p,
- PropertyList propertyList,
- FObj fo) throws FOPException {
- return null;
- }
-
- protected Property convertPropertyDatatype(Property p,
- PropertyList propertyList,
- FObj fo) {
- return null;
- }
-
- /**
- * Return a Property object representing the initial value.
- * @param propertyList The PropertyList object being built for this FO.
- */
- public Property make(PropertyList propertyList) throws FOPException {
- return null;
- }
-
- /**
- * Return a Property object representing the initial value.
- * @param propertyList The PropertyList object being built for this FO.
- * @param parentFO The parent FO for the FO whose property is being made.
- * @return a Property subclass object holding a "compound" property object
- * initialized to the default values for each component.
- */
- protected Property makeCompound(PropertyList propertyList,
- FObj parentFO) throws FOPException {
- return null;
- }
-
- /**
- * Return a Property object representing the value of this property,
- * based on other property values for this FO.
- * A special case is properties which inherit the specified value,
- * rather than the computed value.
- * @param propertyList The PropertyList for the FO.
- * @return Property A computed Property value or null if no rules
- * are specified (in foproperties.xml) to compute the value.
- */
- public Property compute(PropertyList propertyList)
- throws FOPException {
- if (inheritsSpecified()) {
- // recalculate based on last specified value
- // Climb up propertylist and find last spec'd value
- // NEED PROPNAME!!! get from Maker
- Property specProp =
- propertyList.getNearestSpecified(propName);
- if (specProp != null) {
- // Only need to do this if the value is relative!!!
- String specVal = specProp.getSpecifiedValue();
- if (specVal != null) {
- try {
- return make(propertyList, specVal,
- propertyList.getParentFObj());
- } catch (FOPException e) {
- //getLogger()error("Error computing property value for "
- // + propName + " from "
- // + specVal);
- return null;
- }
- }
- }
- }
- return null; // standard
- }
-
- public boolean isCorrespondingForced(PropertyList propertyList) {
- return false;
- }
-
- public Property getShorthand(PropertyList propertyList) {
- return null;
- }
-
- } // end of nested Maker class
-
- /**
- * The original specified value for properties which inherit
- * specified values.
- */
- private String specVal;
-
- /**
- * Set the original value specified for the property attribute.
- * @param specVal The specified value.
- */
- public void setSpecifiedValue(String specVal) {
- this.specVal = specVal;
- }
-
- /**
- * Return the original value specified for the property attribute.
- * @return The specified value as a String.
- */
- public String getSpecifiedValue() {
- return specVal;
- }
-
- /**
- * Accessor functions for all possible Property datatypes
- */
- public Length getLength() {
- return null;
- }
-
- public ColorType getColorType() {
- return null;
- }
-
- public CondLength getCondLength() {
- return null;
- }
-
- public LengthRange getLengthRange() {
- return null;
- }
-
- public LengthPair getLengthPair() {
- return null;
- }
-
- public Space getSpace() {
- return null;
- }
-
- public Keep getKeep() {
- return null;
- }
-
- public int getEnum() {
- return 0;
- }
-
- public char getCharacter() {
- return 0;
- }
-
- public Vector getList() {
- return null;
- } // List of Property objects
-
- public Number getNumber() {
- return null;
- }
-
- // Classes used when evaluating property expressions
- public Numeric getNumeric() {
- return null;
- }
-
- public String getNCname() {
- return null;
- }
-
- public Object getObject() {
- return null;
- }
-
- public String getString() {
- Object o = getObject();
- return (o == null) ? null : o.toString();
- }
-
-}
diff --git a/src/org/apache/fop/fo/PropertyList.java b/src/org/apache/fop/fo/PropertyList.java
deleted file mode 100644
index 83e289c44..000000000
--- a/src/org/apache/fop/fo/PropertyList.java
+++ /dev/null
@@ -1,416 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import java.util.HashMap;
-import org.apache.fop.fo.properties.WritingMode;
-import org.apache.fop.apps.FOPException;
-
-public class PropertyList extends HashMap {
-
- private byte[] wmtable = null; // writing-mode values
- public static final int LEFT = 0;
- public static final int RIGHT = 1;
- public static final int TOP = 2;
- public static final int BOTTOM = 3;
- public static final int HEIGHT = 4;
- public static final int WIDTH = 5;
-
- public static final int START = 0;
- public static final int END = 1;
- public static final int BEFORE = 2;
- public static final int AFTER = 3;
- public static final int BLOCKPROGDIM = 4;
- public static final int INLINEPROGDIM = 5;
-
- private static final String[] ABS_NAMES = new String[] {
- "left", "right", "top", "bottom", "height", "width"
- };
-
- private static final String[] REL_NAMES = new String[] {
- "start", "end", "before", "after", "block-progression-dimension",
- "inline-progression-dimension"
- };
-
- private static final HashMap WRITING_MODE_TABLES = new HashMap(4);
- {
- WRITING_MODE_TABLES.put(new Integer(WritingMode.LR_TB), /* lr-tb */
- new byte[] {
- START, END, BEFORE, AFTER, BLOCKPROGDIM, INLINEPROGDIM
- });
- WRITING_MODE_TABLES.put(new Integer(WritingMode.RL_TB), /* rl-tb */
- new byte[] {
- END, START, BEFORE, AFTER, BLOCKPROGDIM, INLINEPROGDIM
- });
- WRITING_MODE_TABLES.put(new Integer(WritingMode.TB_RL), /* tb-rl */
- new byte[] {
- AFTER, BEFORE, START, END, INLINEPROGDIM, BLOCKPROGDIM
- });
- }
-
- private PropertyListBuilder builder;
- private PropertyList parentPropertyList = null;
- private String namespace = "";
- private String element = "";
- private FObj fobj = null;
-
- public PropertyList(PropertyList parentPropertyList, String space,
- String el) {
- this.parentPropertyList = parentPropertyList;
- this.namespace = space;
- this.element = el;
- }
-
- public void setFObj(FObj fobj) {
- this.fobj = fobj;
- }
-
- public FObj getFObj() {
- return this.fobj;
- }
-
- public FObj getParentFObj() {
- if (parentPropertyList != null) {
- return parentPropertyList.getFObj();
- } else {
- return null;
- }
- }
-
- /**
- * Return the value explicitly specified on this FO.
- * @param propertyName The name of the property whose value is desired.
- * It may be a compound name, such as space-before.optimum.
- * @return The value if the property is explicitly set or set by
- * a shorthand property, otherwise null.
- */
- public Property getExplicitOrShorthand(String propertyName) {
- /* Handle request for one part of a compound property */
- int sepchar = propertyName.indexOf('.');
- String baseName;
- if (sepchar > -1) {
- baseName = propertyName.substring(0, sepchar);
- } else {
- baseName = propertyName;
- }
- Property p = getExplicitBaseProp(baseName);
- if (p == null) {
- p = builder.getShorthand(this, namespace, element, baseName);
- }
- if (p != null && sepchar > -1) {
- return builder.getSubpropValue(namespace, element, baseName, p,
- propertyName.substring(sepchar
- + 1));
- }
- return p;
- }
-
- /**
- * Return the value explicitly specified on this FO.
- * @param propertyName The name of the property whose value is desired.
- * It may be a compound name, such as space-before.optimum.
- * @return The value if the property is explicitly set, otherwise null.
- */
- public Property getExplicit(String propertyName) {
- /* Handle request for one part of a compound property */
- int sepchar = propertyName.indexOf('.');
- if (sepchar > -1) {
- String baseName = propertyName.substring(0, sepchar);
- Property p = getExplicitBaseProp(baseName);
- if (p != null) {
- return this.builder.getSubpropValue(namespace, element,
- baseName, p,
- propertyName.substring(sepchar
- + 1));
- } else {
- return null;
- }
- }
- return (Property)super.get(propertyName);
- }
-
- /**
- * Return the value explicitly specified on this FO.
- * @param propertyName The name of the base property whose value is desired.
- * @return The value if the property is explicitly set, otherwise null.
- */
- public Property getExplicitBaseProp(String propertyName) {
- return (Property)super.get(propertyName);
- }
-
- /**
- * Return the value of this property inherited by this FO.
- * Implements the inherited-property-value function.
- * The property must be inheritable!
- * @param propertyName The name of the property whose value is desired.
- * @return The inherited value, otherwise null.
- */
- public Property getInherited(String propertyName) {
- if (builder != null) {
- if (parentPropertyList != null
- && builder.isInherited(namespace, element,
- propertyName)) {
- return parentPropertyList.get(propertyName);
- } else {
- // return the "initial" value
- try {
- return builder.makeProperty(this, namespace, element,
- propertyName);
- } catch (org.apache.fop.apps.FOPException e) {
- //log.error("Exception in getInherited(): property="
- // + propertyName + " : " + e);
- }
- }
- }
- return null; // No builder or exception in makeProperty!
- }
-
- /*
- * If the property is a relative property with a corresponding absolute
- * value specified, the absolute value is used. This is also true of
- * the inheritance priority (I think...)
- * If the property is an "absolute" property and it isn't specified, then
- * we try to compute it from the corresponding relative property: this
- * happends in computeProperty.
- */
- private Property findProperty(String propertyName, boolean bTryInherit) {
- Property p = null;
- if (builder.isCorrespondingForced(this, namespace, element,
- propertyName)) {
- p = builder.computeProperty(this, namespace, element,
- propertyName);
- } else {
- p = getExplicitBaseProp(propertyName);
- if (p == null) {
- p = this.builder.computeProperty(this, namespace, element,
- propertyName);
- }
- if (p == null) { // check for shorthand specification
- p = builder.getShorthand(this, namespace, element,
- propertyName);
- }
- if (p == null
- && bTryInherit) { // else inherit (if has parent and is inheritable)
- if (this.parentPropertyList != null
- && builder.isInherited(namespace, element,
- propertyName)) {
- p = parentPropertyList.findProperty(propertyName, true);
- }
- }
- }
- return p;
- }
-
-
- /**
- * Return the property on the current FlowObject if it is specified, or if a
- * corresponding property is specified. If neither is specified, it returns null.
- */
- public Property getSpecified(String propertyName) {
- return get(propertyName, false, false);
- }
-
-
- /**
- * Return the property on the current FlowObject. If it isn't set explicitly,
- * this will try to compute it based on other properties, or if it is
- * inheritable, to return the inherited value. If all else fails, it returns
- * the default value.
- */
- public Property get(String propertyName) {
- return get(propertyName, true, true);
- }
-
- /**
- * Return the property on the current FlowObject. Depending on the passed flags,
- * this will try to compute it based on other properties, or if it is
- * inheritable, to return the inherited value. If all else fails, it returns
- * the default value.
- */
- private Property get(String propertyName, boolean bTryInherit,
- boolean bTryDefault) {
-
- if (builder == null) {
- //log.error("OH OH, builder has not been set");
- }
- /* Handle request for one part of a compound property */
- int sepchar = propertyName.indexOf('.');
- String subpropName = null;
- if (sepchar > -1) {
- subpropName = propertyName.substring(sepchar + 1);
- propertyName = propertyName.substring(0, sepchar);
- }
-
- Property p = findProperty(propertyName, bTryInherit);
- if (p == null && bTryDefault) { // default value for this FO!
- try {
- p = this.builder.makeProperty(this, namespace, element,
- propertyName);
- } catch (FOPException e) {
- // don't know what to do here
- }
- }
-
- // if value is inherit then get computed value from
- // parent
- if (p != null && "inherit".equals(p.getSpecifiedValue())) {
- if (this.parentPropertyList != null) {
- p = parentPropertyList.get(propertyName, true, false);
- }
- }
-
- if (subpropName != null && p != null) {
- return this.builder.getSubpropValue(namespace, element,
- propertyName, p, subpropName);
- } else {
- return p;
- }
- }
-
- public void setBuilder(PropertyListBuilder builder) {
- this.builder = builder;
- }
-
- public String getNameSpace() {
- return namespace;
- }
-
- public String getElement() {
- return element;
- }
-
- /**
- * Return the "nearest" specified value for the given property.
- * Implements the from-nearest-specified-value function.
- * @param propertyName The name of the property whose value is desired.
- * @return The computed value if the property is explicitly set on some
- * ancestor of the current FO, else the initial value.
- */
- public Property getNearestSpecified(String propertyName) {
- Property p = null;
- for (PropertyList plist = this; p == null && plist != null;
- plist = plist.parentPropertyList) {
- p = plist.getExplicit(propertyName);
- }
- if (p == null) {
- // If no explicit setting found, return initial (default) value.
- try {
- p = this.builder.makeProperty(this, namespace, element,
- propertyName);
- } catch (FOPException e) {
- //log.error("Exception in getNearestSpecified(): property="
- // + propertyName + " : " + e);
- }
- }
- return p;
- }
-
- /**
- * Return the value of this property on the parent of this FO.
- * Implements the from-parent function.
- * @param propertyName The name of the property whose value is desired.
- * @return The computed value on the parent or the initial value if this
- * FO is the root or is in a different namespace from its parent.
- */
- public Property getFromParent(String propertyName) {
- if (parentPropertyList != null) {
- return parentPropertyList.get(propertyName);
- } else if (builder != null) {
- // return the "initial" value
- try {
- return builder.makeProperty(this, namespace, element,
- propertyName);
- } catch (org.apache.fop.apps.FOPException e) {
- //log.error("Exception in getFromParent(): property="
- // + propertyName + " : " + e);
- }
- }
- return null; // No builder or exception in makeProperty!
- }
-
- /**
- * Given an absolute direction (top, bottom, left, right),
- * return the corresponding writing model relative direction name
- * for the flow object. Uses the stored writingMode.
- */
- public String wmAbsToRel(int absdir) {
- if (wmtable != null) {
- return REL_NAMES[wmtable[absdir]];
- } else {
- return "";
- }
- }
-
- /**
- * Given a writing mode relative direction (start, end, before, after)
- * return the corresponding absolute direction name
- * for the flow object. Uses the stored writingMode.
- */
- public String wmRelToAbs(int reldir) {
- if (wmtable != null) {
- for (int i = 0; i < wmtable.length; i++) {
- if (wmtable[i] == reldir) {
- return ABS_NAMES[i];
- }
- }
- }
- return "";
- }
-
- /**
- * Set the writing mode traits for the FO with this property list.
- */
- public void setWritingMode(int writingMode) {
- this.wmtable = (byte[])WRITING_MODE_TABLES.get(new Integer(writingMode));
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/PropertyListBuilder.java b/src/org/apache/fop/fo/PropertyListBuilder.java
deleted file mode 100644
index 43015b5ee..000000000
--- a/src/org/apache/fop/fo/PropertyListBuilder.java
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-// Java
-import java.util.HashMap;
-import org.xml.sax.Attributes;
-
-// FOP
-import org.apache.fop.apps.FOPException;
-
-public class PropertyListBuilder {
-
- /**
- * Name of font-size property attribute to set first.
- */
- private static final String FONTSIZEATTR = "font-size";
-
- private HashMap propertyListTable;
- private HashMap elementTable;
-
- public PropertyListBuilder() {
- this.propertyListTable = new HashMap();
- this.elementTable = new HashMap();
- }
-
- public void addList(HashMap list) {
- propertyListTable.putAll(list);
- }
-
- public void addElementList(String element, HashMap list) {
- elementTable.put(element, list);
- }
-
- public Property computeProperty(PropertyList propertyList, String space,
- String element, String propertyName) {
-
- Property p = null;
- Property.Maker propertyMaker = findMaker(space, element,
- propertyName);
- if (propertyMaker != null) {
- try {
- p = propertyMaker.compute(propertyList);
- } catch (FOPException e) {
- //log.error("exception occurred while computing"
- // + " value of property '"
- // + propertyName + "': "
- // + e.getMessage());
- }
- } else {
- //log.error("property " + propertyName
- // + " ignored");
- }
- return p;
- }
-
- public boolean isInherited(String space, String element,
- String propertyName) {
- boolean b;
-
- Property.Maker propertyMaker = findMaker(space, element,
- propertyName);
- if (propertyMaker != null) {
- b = propertyMaker.isInherited();
- } else {
- // log.error("Unknown property " + propertyName);
- b = true;
- }
- return b;
- }
-
- public PropertyList makeList(String ns, String elementName, Attributes attributes,
- PropertyList parentPropertyList,
- FObj parentFO) throws FOPException {
- String space = "http://www.w3.org/TR/1999/XSL/Format";
- if (ns != null) {
- space = ns;
- }
-
- PropertyList par = null;
- if (parentPropertyList != null
- && space.equals(parentPropertyList.getNameSpace())) {
- par = parentPropertyList;
- }
- PropertyList p = new PropertyList(par, space,
- elementName);
- p.setBuilder(this);
- HashMap table;
- table = (HashMap)elementTable.get(elementName);
-
- /* Store names of properties already set. */
- StringBuffer propsDone = new StringBuffer(256);
- propsDone.append(' ');
-
- /*
- * If font-size is set on this FO, must set it first, since
- * other attributes specified in terms of "ems" depend on it.
- * When we do "shorthand" properties, must handle the "font"
- * property as well to see if font-size is set.
- */
- String fontsizeval = attributes.getValue(FONTSIZEATTR);
- if (fontsizeval != null) {
- Property.Maker propertyMaker = findMaker(table, FONTSIZEATTR);
- if (propertyMaker != null) {
- try {
- p.put(FONTSIZEATTR,
- propertyMaker.make(p, fontsizeval, parentFO));
- } catch (FOPException e) {
- /**@todo log this exception */
- }
- }
- // Put in the "done" list even if error or no Maker.
- propsDone.append(FONTSIZEATTR + ' ');
- }
-
- for (int i = 0; i < attributes.getLength(); i++) {
- String attributeName = attributes.getQName(i);
- /* Handle "compound" properties, ex. space-before.minimum */
- int sepchar = attributeName.indexOf('.');
- String propName = attributeName;
- String subpropName = null;
- Property propVal = null;
- if (sepchar > -1) {
- propName = attributeName.substring(0, sepchar);
- subpropName = attributeName.substring(sepchar + 1);
- } else if (propsDone.toString().indexOf(' ' + propName + ' ')
- != -1) {
- // Already processed this property (base property
- // for a property with sub-components or font-size)
- continue;
- }
-
- Property.Maker propertyMaker = findMaker(table, propName);
-
- if (propertyMaker != null) {
- try {
- if (subpropName != null) {
- Property baseProp = p.getExplicitBaseProp(propName);
- if (baseProp == null) {
- // See if it is specified later in this list
- String baseValue = attributes.getValue(propName);
- if (baseValue != null) {
- baseProp = propertyMaker.make(p, baseValue,
- parentFO);
- propsDone.append(propName + ' ');
- }
- // else baseProp = propertyMaker.makeCompound(p, parentFO);
- }
- propVal = propertyMaker.make(baseProp, subpropName,
- p,
- attributes.getValue(i),
- parentFO);
- } else {
- propVal = propertyMaker.make(p,
- attributes.getValue(i),
- parentFO);
- }
- if (propVal != null) {
- p.put(propName, propVal);
- }
- } catch (FOPException e) { /* Do other props. */
- //log.error(e.getMessage());
- }
- } else {
- if (!attributeName.startsWith("xmlns")) {
- //log.error("property '"
- // + attributeName + "' ignored");
- }
- }
- }
-
- return p;
- }
-
- public Property getSubpropValue(String space, String element,
- String propertyName, Property p,
- String subpropName) {
- Property.Maker maker = findMaker(space, element, propertyName);
- if (maker != null) {
- return maker.getSubpropValue(p, subpropName);
- } else {
- return null;
- }
- }
-
-
- public boolean isCorrespondingForced(PropertyList propertyList,
- String space, String element,
- String propertyName) {
- Property.Maker propertyMaker = findMaker(space, element,
- propertyName);
- if (propertyMaker != null) {
- return propertyMaker.isCorrespondingForced(propertyList);
- } else {
- //log.error("no Maker for " + propertyName);
- }
- return false;
- }
-
- public Property getShorthand(PropertyList propertyList, String space,
- String element, String propertyName) {
- Property.Maker propertyMaker = findMaker(space, element,
- propertyName);
- if (propertyMaker != null) {
- return propertyMaker.getShorthand(propertyList);
- } else {
- //log.error("no Maker for " + propertyName);
- return null;
- }
- }
-
-
- public Property makeProperty(PropertyList propertyList, String space,
- String element,
- String propertyName) throws FOPException {
-
- Property p = null;
-
- Property.Maker propertyMaker = findMaker(space, element,
- propertyName);
- if (propertyMaker != null) {
- p = propertyMaker.make(propertyList);
- } else {
- //log.error("property " + propertyName
- // + " ignored");
- }
- return p;
- }
-
- protected Property.Maker findMaker(String space, String elementName,
- String propertyName) {
- return findMaker((HashMap)elementTable.get(elementName),
- propertyName);
- }
-
- /**
- * Convenience function to return the Maker for a given property
- * given the HashMap containing properties specific to this element.
- * If table is non-null and
- * @param elemTable Element-specific properties or null if none.
- * @param propertyName Name of property.
- * @return A Maker for this property.
- */
- private Property.Maker findMaker(HashMap elemTable,
- String propertyName) {
- Property.Maker propertyMaker = null;
- if (elemTable != null) {
- propertyMaker = (Property.Maker)elemTable.get(propertyName);
- }
- if (propertyMaker == null) {
- propertyMaker =
- (Property.Maker)propertyListTable.get(propertyName);
- }
- return propertyMaker;
- }
-
-}
diff --git a/src/org/apache/fop/fo/PropertyManager.java b/src/org/apache/fop/fo/PropertyManager.java
deleted file mode 100644
index d09d1dfbe..000000000
--- a/src/org/apache/fop/fo/PropertyManager.java
+++ /dev/null
@@ -1,582 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-// Java
-import java.text.MessageFormat;
-import java.awt.geom.Rectangle2D;
-
-// FOP
-import org.apache.fop.area.CTM;
-import org.apache.fop.datatypes.FODimension;
-import org.apache.fop.layout.FontState;
-import org.apache.fop.layout.FontInfo;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.MarginProps;
-import org.apache.fop.layout.MarginInlineProps;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.RelativePositionProps;
-import org.apache.fop.layout.AbsolutePositionProps;
-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.properties.Constants;
-import org.apache.fop.fo.properties.WritingMode;
-import org.apache.fop.fo.properties.Span;
-import org.apache.fop.fonts.FontMetrics;
-import org.apache.fop.layout.HyphenationProps;
-
-/**
- * Helper class for managing groups of properties.
- */
-public class PropertyManager {
-
- private PropertyList properties;
- private FontInfo fontInfo = null;
- private FontState fontState = null;
- private BorderAndPadding borderAndPadding = null;
- private HyphenationProps hyphProps = null;
- private TextInfo textInfo = null;
-
- private static final String[] SA_BEFORE = new String[]{"before"};
- private static final String[] SA_AFTER = new String[]{"after"};
- private static final String[] SA_START = new String[]{"start"};
- private static final String[] SA_END = new String[]{"end"};
-
- private static final MessageFormat MSGFMT_COLOR = new MessageFormat("border-{0}-color");
- private static final MessageFormat MSGFMT_STYLE = new MessageFormat("border-{0}-style");
- private static final MessageFormat MSGFMT_WIDTH = new MessageFormat("border-{0}-width");
- private static final MessageFormat MSGFMT_PADDING = new MessageFormat("padding-{0}");
-
- private static final String NONE = "none";
-
- /**
- * Main constructor
- * @param pList property list
- */
- public PropertyManager(PropertyList pList) {
- this.properties = pList;
- }
-
- /**
- * Returns the property list that is used for lookup.
- * @return the property list
- */
- public PropertyList getProperties() {
- return properties;
- }
-
- /**
- * Sets the FontInfo object telling the property manager which fonts are
- * available.
- * @param fontInfo available fonts
- */
- public void setFontInfo(FontInfo fontInfo) {
- this.fontInfo = fontInfo;
- }
-
-
- /**
- * Constructs a FontState object. If it was constructed before it is
- * reused.
- * @param fontInfo FontInfo to work with
- * @return a FontState object
- */
- public FontState getFontState(FontInfo fontInfo) {
- if (fontState == null) {
- if (fontInfo == null) {
- fontInfo = this.fontInfo;
- } else if (this.fontInfo == null) {
- this.fontInfo = fontInfo;
- }
- /**@todo this is ugly. need to improve. */
-
- String fontFamily = properties.get("font-family").getString();
- String fontStyle = properties.get("font-style").getString();
- String fw = properties.get("font-weight").getString();
- int fontWeight = 400;
- if (fw.equals("bolder")) {
- // +100 from inherited
- } else if (fw.equals("lighter")) {
- // -100 from inherited
- } else {
- try {
- fontWeight = Integer.parseInt(fw);
- } catch (NumberFormatException nfe) {
- } /**@todo log that exception */
- }
- fontWeight = ((int) fontWeight / 100) * 100;
- if (fontWeight < 100) {
- fontWeight = 100;
- } else if (fontWeight > 900) {
- fontWeight = 900;
- }
-
- // NOTE: this is incomplete. font-size may be specified with
- // various kinds of keywords too
- int fontSize = properties.get("font-size").getLength().getValue();
- //int fontVariant = properties.get("font-variant").getEnum();
- String fname = fontInfo.fontLookup(fontFamily, fontStyle,
- fontWeight);
- FontMetrics metrics = fontInfo.getMetricsFor(fname);
- fontState = new FontState(fname, metrics, fontSize);
- }
- return fontState;
- }
-
-
- /**
- * Constructs a BorderAndPadding object. If it was constructed before it is
- * reused.
- * @return a BorderAndPadding object
- */
- public BorderAndPadding getBorderAndPadding() {
- if (borderAndPadding == null) {
- this.borderAndPadding = new BorderAndPadding();
-
- initBorderInfo(BorderAndPadding.BEFORE, SA_BEFORE);
- initBorderInfo(BorderAndPadding.AFTER, SA_AFTER);
- initBorderInfo(BorderAndPadding.START, SA_START);
- initBorderInfo(BorderAndPadding.END, SA_END);
- }
- return borderAndPadding;
- }
-
- private void initBorderInfo(int whichSide, String[] saSide) {
- borderAndPadding.setPadding(whichSide,
- properties.get(
- MSGFMT_PADDING.format(saSide)).getCondLength());
- // If style = none, force width to 0, don't get Color
- int style = properties.get(MSGFMT_STYLE.format(saSide)).getEnum();
- if (style != Constants.NONE) {
- borderAndPadding.setBorder(whichSide, style,
- properties.get(
- MSGFMT_WIDTH.format(saSide)).getCondLength(),
- properties.get(
- MSGFMT_COLOR.format(saSide)).getColorType());
- }
- }
-
- /**
- * Constructs a HyphenationProps objects. If it was constructed before it is
- * reused.
- * @return a HyphenationProps object
- */
- public HyphenationProps getHyphenationProps() {
- if (hyphProps == null) {
- this.hyphProps = new HyphenationProps();
- hyphProps.hyphenate =
- this.properties.get("hyphenate").getEnum();
- hyphProps.hyphenationChar = this.properties.get(
- "hyphenation-character").getCharacter();
- hyphProps.hyphenationPushCharacterCount = this.properties.get(
- "hyphenation-push-character-count").getNumber().
- intValue();
- hyphProps.hyphenationRemainCharacterCount = this.properties.get(
- "hyphenation-remain-character-count").getNumber().
- intValue();
- hyphProps.language =
- this.properties.get("language").getString();
- hyphProps.country = this.properties.get("country").getString();
- }
- return hyphProps;
- }
-
- /*public int checkBreakBefore(Area area) {
- if (!(area instanceof ColumnArea)) {
- switch (properties.get("break-before").getEnum()) {
- case BreakBefore.PAGE:
- return Status.FORCE_PAGE_BREAK;
- case BreakBefore.ODD_PAGE:
- return Status.FORCE_PAGE_BREAK_ODD;
- case BreakBefore.EVEN_PAGE:
- return Status.FORCE_PAGE_BREAK_EVEN;
- case BreakBefore.COLUMN:
- return Status.FORCE_COLUMN_BREAK;
- default:
- return Status.OK;
- }
- } else {
- ColumnArea colArea = (ColumnArea)area;
- switch (properties.get("break-before").getEnum()) {
- case BreakBefore.PAGE:
- // if first ColumnArea, and empty, return OK
- if (!colArea.hasChildren() && (colArea.getColumnIndex() == 1))
- return Status.OK;
- else
- return Status.FORCE_PAGE_BREAK;
- case BreakBefore.ODD_PAGE:
- // if first ColumnArea, empty, _and_ in odd page,
- // return OK
- if (!colArea.hasChildren() && (colArea.getColumnIndex() == 1)
- && (colArea.getPage().getNumber() % 2 != 0))
- return Status.OK;
- else
- return Status.FORCE_PAGE_BREAK_ODD;
- case BreakBefore.EVEN_PAGE:
- // if first ColumnArea, empty, _and_ in even page,
- // return OK
- if (!colArea.hasChildren() && (colArea.getColumnIndex() == 1)
- && (colArea.getPage().getNumber() % 2 == 0))
- return Status.OK;
- else
- return Status.FORCE_PAGE_BREAK_EVEN;
- case BreakBefore.COLUMN:
- // if ColumnArea is empty return OK
- if (!area.hasChildren())
- return Status.OK;
- else
- return Status.FORCE_COLUMN_BREAK;
- default:
- return Status.OK;
- }
- }
- }
-
- public int checkBreakAfter(Area area) {
- switch (properties.get("break-after").getEnum()) {
- case BreakAfter.PAGE:
- return Status.FORCE_PAGE_BREAK;
- case BreakAfter.ODD_PAGE:
- return Status.FORCE_PAGE_BREAK_ODD;
- case BreakAfter.EVEN_PAGE:
- return Status.FORCE_PAGE_BREAK_EVEN;
- case BreakAfter.COLUMN:
- return Status.FORCE_COLUMN_BREAK;
- default:
- return Status.OK;
- }
- }*/
-
-
- /**
- * Constructs a MarginProps objects. If it was constructed before it is
- * reused.
- * @return a MarginProps object
- */
- public MarginProps getMarginProps() {
- MarginProps props = new MarginProps();
-
- // Common Margin Properties-Block
- props.marginTop =
- this.properties.get("margin-top").getLength().getValue();
- props.marginBottom =
- this.properties.get("margin-bottom").getLength().getValue();
- props.marginLeft =
- this.properties.get("margin-left").getLength().getValue();
- props.marginRight =
- this.properties.get("margin-right").getLength().getValue();
-
- // For now, we only get the optimum value for space-before and after
- props.spaceBefore = this.properties.get("space-before").
- getSpace().getOptimum().getLength().getValue();
- props.spaceAfter = this.properties.get("space-after").
- getSpace().getOptimum().getLength().getValue();
- props.startIndent = this.properties.get("start-indent").
- getLength().getValue();
- props.endIndent = this.properties.get("end-indent").
- getLength().getValue();
-
- return props;
- }
-
- /**
- * Constructs a BackgroundProps objects. If it was constructed before it is
- * reused.
- * @return a BackgroundProps object
- */
- public BackgroundProps getBackgroundProps() {
- BackgroundProps bp = new BackgroundProps();
- bp.backAttachment = properties.get("background-attachment").getEnum();
- bp.backColor = properties.get("background-color").getColorType();
- if (bp.backColor.alpha() == 1) {
- bp.backColor = null;
- }
-
- bp.backImage = properties.get("background-image").getString();
- if (bp.backImage == null || NONE.equals(bp.backImage)) {
- bp.backImage = null;
- } else {
- bp.backRepeat = properties.get("background-repeat").getEnum();
- Property prop = properties.get("background-position-horizontal");
- if (prop != null) {
- bp.backPosHorizontal = prop.getLength();
- }
- prop = properties.get("background-position-vertical");
- if (prop != null) {
- bp.backPosVertical = prop.getLength();
- }
- }
-
- return bp;
- }
-
- /**
- * Constructs a MarginInlineProps objects. If it was constructed before it is
- * reused.
- * @return a MarginInlineProps object
- */
- public MarginInlineProps getMarginInlineProps() {
- MarginInlineProps props = new MarginInlineProps();
- return props;
- }
-
- /**
- * Constructs a InlineProps objects. If it was constructed before it is
- * reused.
- * @return a InlineProps object
- */
- public InlineProps getInlineProps() {
- InlineProps props = new InlineProps();
- props.spaceStart = new SpaceVal(properties.get("space-start").getSpace());
- props.spaceEnd = new SpaceVal(properties.get("space-end").getSpace());
- return props;
- }
-
- /**
- * Constructs a AccessibilityProps objects. If it was constructed before it is
- * reused.
- * @return a AccessibilityProps object
- */
- public AccessibilityProps getAccessibilityProps() {
- AccessibilityProps props = new AccessibilityProps();
- String str;
- str = this.properties.get("source-document").getString();
- if (!NONE.equals(str)) {
- props.sourceDoc = str;
- }
- str = this.properties.get("role").getString();
- if (!NONE.equals(str)) {
- props.role = str;
- }
- return props;
- }
-
- /**
- * Constructs a AuralProps objects. If it was constructed before it is
- * reused.
- * @return a AuralProps object
- */
- public AuralProps getAuralProps() {
- AuralProps props = new AuralProps();
- return props;
- }
-
- /**
- * Constructs a RelativePositionProps objects. If it was constructed before it is
- * reused.
- * @return a RelativePositionProps object
- */
- public RelativePositionProps getRelativePositionProps() {
- RelativePositionProps props = new RelativePositionProps();
- return props;
- }
-
- /**
- * Constructs a AbsolutePositionProps objects. If it was constructed before
- * it is reused.
- * @return a AbsolutePositionProps object
- */
- public AbsolutePositionProps getAbsolutePositionProps() {
- AbsolutePositionProps props = new AbsolutePositionProps();
- props.absolutePosition =
- this.properties.get("absolute-position").getEnum();
- props.top = this.properties.get("top").getLength().getValue();
- props.bottom = this.properties.get("bottom").getLength().getValue();
- props.left = this.properties.get("left").getLength().getValue();
- props.right = this.properties.get("right").getLength().getValue();
- return props;
- }
-
- /**
- * Constructs a BlockProps objects. If it was constructed before it is
- * reused.
- * @return a BlockProps object
- */
- public BlockProps getBlockProps() {
- BlockProps props = new BlockProps();
- props.firstIndent = this.properties.get("text-indent").getLength().getValue();
- props.lastIndent = 0;
- /*this.properties.get("last-line-end-indent").getLength().mvalue(); */
- props.textAlign = this.properties.get("text-align").getEnum();
- props.textAlignLast = this.properties.get("text-align-last").getEnum();
- props.lineStackType = this.properties.get("line-stacking-strategy").getEnum();
-
- return props;
- }
-
- /**
- * Constructs a LayoutProps objects. If it was constructed before it is
- * reused.
- * @return a LayoutProps object
- */
- public LayoutProps getLayoutProps() {
- LayoutProps props = new LayoutProps();
- props.breakBefore = this.properties.get("break-before").getEnum();
- props.breakAfter = this.properties.get("break-after").getEnum();
- props.bIsSpan = (this.properties.get("span").getEnum() == Span.ALL);
- props.spaceBefore = new SpaceVal(
- this.properties.get("space-before").getSpace());
- props.spaceAfter = new SpaceVal(
- this.properties.get("space-after").getSpace());
- return props;
- }
-
- /**
- * Constructs a TextInfo objects. If it was constructed before it is
- * reused.
- * @param fontInfo available fonts
- * @return a TextInfo object
- */
- public TextInfo getTextLayoutProps(FontInfo fontInfo) {
- if (textInfo == null) {
- textInfo = new TextInfo();
- textInfo.fs = getFontState(fontInfo);
- textInfo.color = properties.get("color").getColorType();
-
- textInfo.verticalAlign =
- properties.get("vertical-align").getEnum();
-
- textInfo.wrapOption = properties.get("wrap-option").getEnum();
- textInfo.bWrap = (textInfo.wrapOption == Constants.WRAP);
-
- textInfo.wordSpacing = new SpaceVal(
- properties.get("word-spacing").getSpace());
-
- /* textInfo.letterSpacing =
- new SpaceVal(properties.get("letter-spacing").getSpace());*/
-
- textInfo.whiteSpaceCollapse =
- properties.get("white-space-collapse").getEnum();
-
- textInfo.lineHeight = this.properties.get(
- "line-height").getLength().getValue();
- }
- return textInfo;
- }
-
- /**
- * Construct a coordinate transformation matrix (CTM).
- * @param absVPrect absolute viewpoint rectangle
- * @param reldims relative dimensions
- * @return CTM the coordinate transformation matrix (CTM)
- */
- public CTM getCTMandRelDims(Rectangle2D absVPrect,
- FODimension reldims) {
- int width, height;
- // We will use the absolute reference-orientation to set up the CTM.
- // The value here is relative to its ancestor reference area.
- int absRefOrient = getAbsRefOrient(
- this.properties.get("reference-orientation").getNumber().intValue());
- if (absRefOrient % 180 == 0) {
- width = (int) absVPrect.getWidth();
- height = (int) absVPrect.getHeight();
- } else {
- // invert width and height since top left are rotated by 90 (cl or ccl)
- height = (int) absVPrect.getWidth();
- width = (int) absVPrect.getHeight();
- }
- /* Set up the CTM for the content of this reference area.
- * This will transform region content coordinates in
- * writing-mode relative into absolute page-relative
- * which will then be translated based on the position of
- * the region viewport.
- * (Note: scrolling between region vp and ref area when
- * doing online content!)
- */
- CTM ctm = new CTM(absVPrect.getX(), absVPrect.getY());
-
- // First transform for rotation
- if (absRefOrient != 0) {
- // Rotation implies translation to keep the drawing area in the
- // first quadrant. Note: rotation is counter-clockwise
- switch (absRefOrient) {
- case 90:
- ctm = ctm.translate(0, width); // width = absVPrect.height
- break;
- case 180:
- ctm = ctm.translate(width, height);
- break;
- case 270:
- ctm = ctm.translate(height, 0); // height = absVPrect.width
- break;
- }
- ctm = ctm.rotate(absRefOrient);
- }
- int wm = this.properties.get("writing-mode").getEnum();
- /* Since we've already put adjusted width and height values for the
- * top and left positions implied by the reference-orientation, we
- * can set ipd and bpd appropriately based on the writing mode.
- */
-
- if (wm == WritingMode.LR_TB || wm == WritingMode.RL_TB) {
- reldims.ipd = width;
- reldims.bpd = height;
- } else {
- reldims.ipd = height;
- reldims.bpd = width;
- }
- // Set a rectangle to be the writing-mode relative version???
- // Now transform for writing mode
- return ctm.multiply(CTM.getWMctm(wm, reldims.ipd, reldims.bpd));
- }
-
- /**
- * Calculate absolute reference-orientation relative to media orientation.
- */
- private int getAbsRefOrient(int myRefOrient) {
- return myRefOrient;
- }
-}
-
diff --git a/src/org/apache/fop/fo/RecursiveCharIterator.java b/src/org/apache/fop/fo/RecursiveCharIterator.java
deleted file mode 100644
index 26ad26d7b..000000000
--- a/src/org/apache/fop/fo/RecursiveCharIterator.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-
-public class RecursiveCharIterator extends AbstractCharIterator {
- private Iterator childIter = null; // Child flow objects
- private CharIterator curCharIter = null; // Children's characters
- private FONode fobj;
- private FONode curChild;
-
- public RecursiveCharIterator(FObj fobj) {
- // Set up first child iterator
- this.fobj = fobj;
- this.childIter = fobj.getChildren();
- getNextCharIter();
- }
-
- public RecursiveCharIterator(FObj fobj, FONode child) {
- // Set up first child iterator
- this.fobj = fobj;
- this.childIter = fobj.getChildren(child);
- getNextCharIter();
- }
-
- public CharIterator mark() {
- return (CharIterator) this.clone();
- }
-
- public Object clone() {
- RecursiveCharIterator ci = (RecursiveCharIterator) super.clone();
- ci.childIter = fobj.getChildren(ci.curChild);
- // Need to advance to the next child, else we get the same one!!!
- ci.childIter.next();
- ci.curCharIter = (CharIterator) curCharIter.clone();
- return ci;
- }
-
-
- public void replaceChar(char c) {
- if (curCharIter != null) {
- curCharIter.replaceChar(c);
- }
- }
-
-
- private void getNextCharIter() {
- if (childIter != null && childIter.hasNext()) {
- this.curChild = (FONode) childIter.next();
- this.curCharIter = curChild.charIterator();
- } else {
- curChild = null;
- curCharIter = null;
- }
- }
-
- public boolean hasNext() {
- while (curCharIter != null) {
- if (curCharIter.hasNext() == false) {
- getNextCharIter();
- } else {
- return true;
- }
- }
- return false;
- }
-
- public char nextChar() throws NoSuchElementException {
- if (curCharIter != null) {
- return curCharIter.nextChar();
- } else {
- throw new NoSuchElementException();
- }
- }
-
-
- public void remove() {
- if (curCharIter != null) {
- curCharIter.remove();
- }
- }
-}
-
diff --git a/src/org/apache/fop/fo/ShorthandParser.java b/src/org/apache/fop/fo/ShorthandParser.java
deleted file mode 100644
index 1b06e72ba..000000000
--- a/src/org/apache/fop/fo/ShorthandParser.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-public interface ShorthandParser {
- Property getValueForProperty(String propName,
- Property.Maker maker,
- PropertyList propertyList);
-}
diff --git a/src/org/apache/fop/fo/SpaceProperty.java b/src/org/apache/fop/fo/SpaceProperty.java
deleted file mode 100644
index e06428760..000000000
--- a/src/org/apache/fop/fo/SpaceProperty.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-import org.apache.fop.datatypes.Space;
-import org.apache.fop.datatypes.LengthRange;
-
-public class SpaceProperty extends Property {
-
- public static class Maker extends LengthRangeProperty.Maker {
- protected Maker(String name) {
- super(name);
- }
-
- }
-
- private Space space;
-
- public SpaceProperty(Space space) {
- this.space = space;
- }
-
- public Space getSpace() {
- return this.space;
- }
-
- /* Space extends LengthRange */
- public LengthRange getLengthRange() {
- return this.space;
- }
-
- public Object getObject() {
- return this.space;
- }
-
-}
diff --git a/src/org/apache/fop/fo/StringProperty.java b/src/org/apache/fop/fo/StringProperty.java
deleted file mode 100644
index c552fb278..000000000
--- a/src/org/apache/fop/fo/StringProperty.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-
-public class StringProperty extends Property {
-
- public static class Maker extends Property.Maker {
-
- public Maker(String propName) {
- super(propName);
- }
-
- public Property make(PropertyList propertyList, String value,
- FObj fo) {
- // Work around the fact that most String properties are not
- // specified as actual String literals (with "" or '') since
- // the attribute values themselves are Strings!
- // If the value starts with ' or ", make sure it also ends with
- // this character
- // Otherwise, just take the whole value as the String
- int vlen = value.length() - 1;
- if (vlen > 0) {
- char q1 = value.charAt(0);
- if (q1 == '"' || q1 == '\'') {
- if (value.charAt(vlen) == q1) {
- return new StringProperty(value.substring(1, vlen));
- }
- System.err.println("Warning String-valued property starts with quote"
- + " but doesn't end with quote: "
- + value);
- // fall through and use the entire value, including first quote
- }
- String str = checkValueKeywords(value);
- if (str != null) {
- value = str;
- }
- }
- return new StringProperty(value);
- }
-
- } // end String.Maker
-
- private String str;
-
- public StringProperty(String str) {
- this.str = str;
- // System.err.println("Set StringProperty: " + str);
- }
-
- public Object getObject() {
- return this.str;
- }
-
- public String getString() {
- return this.str;
- }
-
-}
diff --git a/src/org/apache/fop/fo/TextInfo.java b/src/org/apache/fop/fo/TextInfo.java
deleted file mode 100644
index e51c548ee..000000000
--- a/src/org/apache/fop/fo/TextInfo.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-// FOP
-import org.apache.fop.layout.FontState;
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.traits.SpaceVal;
-
-/**
- * Collection of properties used in
- */
-public class TextInfo {
- public FontState fs;
- public ColorType color;
- public int wrapOption;
- public boolean bWrap ; // True if wrap-option = WRAP
- public int whiteSpaceCollapse;
- public int verticalAlign;
- public int lineHeight;
-
- // Props used for calculating inline-progression-dimension
- public SpaceVal wordSpacing;
- public SpaceVal letterSpacing;
-
- // Add hyphenation props too
- public boolean bCanHyphenate = true;
-
- // Textdecoration
- public boolean underlined = false;
- public boolean overlined = false;
- public boolean lineThrough = false;
-}
-
diff --git a/src/org/apache/fop/fo/Title.java b/src/org/apache/fop/fo/Title.java
deleted file mode 100644
index b3dc5347b..000000000
--- a/src/org/apache/fop/fo/Title.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-// FOP
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.datatypes.Length;
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.FontState;
-import org.apache.fop.layout.MarginInlineProps;
-import org.apache.fop.layoutmgr.ContentLayoutManager;
-import org.apache.fop.layoutmgr.InlineStackingLayoutManager;
-import org.apache.fop.layoutmgr.LMiter;
-
-/**
- */
-public class Title extends FObjMixed {
-
- public Title(FONode parent) {
- super(parent);
- }
-
- public org.apache.fop.area.Title getTitleArea() {
- org.apache.fop.area.Title title =
- new org.apache.fop.area.Title();
- // use special layout manager to add the inline areas
- // to the Title.
- InlineStackingLayoutManager lm;
- lm = new InlineStackingLayoutManager();
- lm.setUserAgent(getUserAgent());
- lm.setFObj(this);
- lm.setLMiter(new LMiter(children.listIterator()));
- lm.init();
-
- // get breaks then add areas to title
-
- ContentLayoutManager clm = new ContentLayoutManager(title);
- clm.setUserAgent(getUserAgent());
- lm.setParent(clm);
-
- clm.fillArea(lm);
-
- return title;
- }
-
- public void setup() {
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Font Properties
- FontState fontState = propMgr.getFontState(structHandler.getFontInfo());
-
- // Common Margin Properties-Inline
- MarginInlineProps mProps = propMgr.getMarginInlineProps();
-
- Property prop;
- prop = this.properties.get("baseline-shift");
- if (prop instanceof LengthProperty) {
- Length bShift = prop.getLength();
- } else if (prop instanceof EnumProperty) {
- int bShift = prop.getEnum();
- }
- ColorType col = this.properties.get("color").getColorType();
- Length lHeight = this.properties.get("line-height").getLength();
- int lShiftAdj = this.properties.get(
- "line-height-shift-adjustment").getEnum();
- int vis = this.properties.get("visibility").getEnum();
- Length zIndex = this.properties.get("z-index").getLength();
-
- }
-}
-
diff --git a/src/org/apache/fop/fo/ToBeImplementedElement.java b/src/org/apache/fop/fo/ToBeImplementedElement.java
deleted file mode 100644
index feb2e40e2..000000000
--- a/src/org/apache/fop/fo/ToBeImplementedElement.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-/**
- * This class is a placeholder for elements that have not been implemented.
- */
-public class ToBeImplementedElement extends FObj {
-
- protected ToBeImplementedElement(FONode parent) {
- super(parent);
- }
-
- public void setup() {
- getLogger().debug("This element \"" + this.name
- + "\" is not yet implemented.");
- }
-
-}
diff --git a/src/org/apache/fop/fo/Unknown.java b/src/org/apache/fop/fo/Unknown.java
deleted file mode 100644
index 2936ee9c7..000000000
--- a/src/org/apache/fop/fo/Unknown.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-/**
- * This represents an unknown element.
- * For example with unsupported namespaces.
- * This prevents any further problems arising from the unknown
- * data.
- */
-public class Unknown extends FONode {
-
- public static class Maker extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new Unknown(parent);
- }
- }
-
- public Unknown(FONode parent) {
- super(parent);
- }
-
- public void setup() {
- getLogger().debug("Layout Unknown element");
- }
-}
diff --git a/src/org/apache/fop/fo/UnknownXMLObj.java b/src/org/apache/fop/fo/UnknownXMLObj.java
deleted file mode 100644
index eea01a5a2..000000000
--- a/src/org/apache/fop/fo/UnknownXMLObj.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-public class UnknownXMLObj extends XMLObj {
- private String namespace;
-
- public static class Maker extends ElementMapping.Maker {
- private String space;
-
- public Maker(String sp) {
- space = sp;
- }
-
- public FONode make(FONode parent) {
- return new UnknownXMLObj(parent, space);
- }
- }
-
- /**
- * constructs an unknown xml object (called by Maker).
- *
- * @param parent the parent formatting object
- * @param propertyList the explicit properties of this object
- */
- protected UnknownXMLObj(FONode parent, String space) {
- super(parent);
- this.namespace = space;
- }
-
- public String getNameSpace() {
- return this.namespace;
- }
-
- protected void addChild(FONode child) {
- if (doc == null) {
- createBasicDocument();
- }
- super.addChild(child);
- }
-
- protected void addCharacters(char data[], int start, int length) {
- if (doc == null) {
- createBasicDocument();
- }
- super.addCharacters(data, start, length);
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/XMLElement.java b/src/org/apache/fop/fo/XMLElement.java
deleted file mode 100644
index 4f64bd7db..000000000
--- a/src/org/apache/fop/fo/XMLElement.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-// XML
-import org.xml.sax.Attributes;
-
-// FOP
-import org.apache.fop.apps.FOPException;
-
-/**
- * class representing svg:svg pseudo flow object.
- */
-public class XMLElement extends XMLObj {
-
- private String namespace = "";
-
- /**
- * constructs an XML object (called by Maker).
- *
- * @param parent the parent formatting object
- * @param propertyList the explicit properties of this object
- */
- public XMLElement(FONode parent) {
- super(parent);
- }
-
- public void handleAttrs(Attributes attlist) throws FOPException {
- super.handleAttrs(attlist);
- init();
- }
-
- private void init() {
- createBasicDocument();
- }
-
- public String getNameSpace() {
- return namespace;
- }
-}
diff --git a/src/org/apache/fop/fo/XMLObj.java b/src/org/apache/fop/fo/XMLObj.java
deleted file mode 100644
index 3638e4732..000000000
--- a/src/org/apache/fop/fo/XMLObj.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo;
-
-// Java
-import java.awt.geom.Point2D;
-import java.util.HashMap;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.xml.sax.Attributes;
-import javax.xml.parsers.DocumentBuilderFactory;
-
-// FOP
-import org.apache.fop.apps.FOPException;
-
-/**
- * Generic XML object.
- * This is used by xml objects (other than fo) than will build a DOM
- * with each element.
- */
-public abstract class XMLObj extends FONode {
-
- // temp reference for attributes
- private Attributes attr = null;
-
- protected Element element;
- protected Document doc;
-
- /**
- *
- * @param parent the parent formatting object
- * @param propertyList the explicit properties of this object
- */
- public XMLObj(FONode parent) {
- super(parent);
- }
-
- public void setName(String str) {
- name = str;
- }
-
- public void handleAttrs(Attributes attlist) throws FOPException {
- attr = attlist;
- }
-
- public Document getDocument() {
- return doc;
- }
-
- public Point2D getDimension(Point2D view) {
- return null;
- }
-
- public abstract String getNameSpace();
-
- public String getDocumentNamespace() {
- return getNameSpace();
- }
-
- protected static HashMap ns = new HashMap();
- static {
- ns.put("xlink", "http://www.w3.org/1999/xlink");
- }
-
- public void addElement(Document doc, Element parent) {
- this.doc = doc;
- element = doc.createElementNS(getNameSpace(), name);
-
- for (int count = 0; count < attr.getLength(); count++) {
- String rf = attr.getValue(count);
- String qname = attr.getQName(count);
- int idx = qname.indexOf(":");
- if (idx == -1) {
- element.setAttribute(qname, rf);
- } else {
- String pref = qname.substring(0, idx);
- String tail = qname.substring(idx + 1);
- if (pref.equals("xmlns")) {
- ns.put(tail, rf);
- } else {
- element.setAttributeNS((String)ns.get(pref), tail, rf);
- }
- }
- }
- attr = null;
- parent.appendChild(element);
- }
-
- public void buildTopLevel(Document doc, Element svgRoot) {
- // build up the info for the top level element
- for (int count = 0; count < attr.getLength(); count++) {
- String rf = attr.getValue(count);
- String qname = attr.getQName(count);
- int idx = qname.indexOf(":");
- if (idx == -1) {
- element.setAttribute(qname, rf);
- } else {
- String pref = qname.substring(0, idx);
- String tail = qname.substring(idx + 1);
- if (pref.equals("xmlns")) {
- ns.put(tail, rf);
- } else {
- element.setAttributeNS((String)ns.get(pref), tail, rf);
- }
- }
- }
- }
-
- public Document createBasicDocument() {
- doc = null;
-
- element = null;
- try {
- DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance();
- fact.setNamespaceAware(true);
- doc = fact.newDocumentBuilder().newDocument();
- Element el = doc.createElement(name);
- doc.appendChild(el);
-
- element = doc.getDocumentElement();
- buildTopLevel(doc, element);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return doc;
- }
-
- protected void addChild(FONode child) {
- if (child instanceof XMLObj) {
- ((XMLObj)child).addElement(doc, element);
- } else {
- // in theory someone might want to embed some defined
- // xml (eg. fo) inside the foreign xml
- // they could use a different namespace
- getLogger().debug("Invalid element: " + child.getName() + " inside foreign xml markup");
- }
- }
-
- protected void addCharacters(char data[], int start, int length) {
- String str = new String(data, start, length - start);
- org.w3c.dom.Text text = doc.createTextNode(str);
- element.appendChild(text);
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/expr/AbsFunction.java b/src/org/apache/fop/fo/expr/AbsFunction.java
deleted file mode 100644
index b7c44e1ee..000000000
--- a/src/org/apache/fop/fo/expr/AbsFunction.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import org.apache.fop.fo.Property;
-
-public class AbsFunction extends FunctionBase {
-
- public int nbArgs() {
- return 1;
- }
-
- public Property eval(Property[] args,
- PropertyInfo propInfo) throws PropertyException {
- Numeric num = args[0].getNumeric();
- if (num == null) {
- throw new PropertyException("Non numeric operand to abs function");
- }
- // What if has relative composants (percent, table-col units)?
- return new NumericProperty(num.abs());
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/expr/BodyStartFunction.java b/src/org/apache/fop/fo/expr/BodyStartFunction.java
deleted file mode 100644
index c46a06745..000000000
--- a/src/org/apache/fop/fo/expr/BodyStartFunction.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import org.apache.fop.fo.Property;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.flow.ListItem;
-
-public class BodyStartFunction extends FunctionBase {
-
- public int nbArgs() {
- return 0;
- }
-
- public Property eval(Property[] args,
- PropertyInfo pInfo) throws PropertyException {
- Numeric distance =
- pInfo.getPropertyList().get("provisional-distance-between-starts").getNumeric();
-
- FONode item = pInfo.getFO();
- while (item != null && !(item instanceof ListItem)) {
- item = item.getParent();
- }
- if (item == null) {
- throw new PropertyException("body-start() called from outside an fo:list-item");
- }
-
- Numeric startIndent =
- ((ListItem)item).properties.get("start-indent").getNumeric();
-
- return new NumericProperty(distance.add(startIndent));
- }
-
-}
diff --git a/src/org/apache/fop/fo/expr/CeilingFunction.java b/src/org/apache/fop/fo/expr/CeilingFunction.java
deleted file mode 100644
index a9e0e75d0..000000000
--- a/src/org/apache/fop/fo/expr/CeilingFunction.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import org.apache.fop.fo.Property;
-import org.apache.fop.fo.NumberProperty;
-
-class CeilingFunction extends FunctionBase {
-
- public int nbArgs() {
- return 1;
- }
-
- public Property eval(Property[] args,
- PropertyInfo pInfo) throws PropertyException {
- Number dbl = args[0].getNumber();
- if (dbl == null) {
- throw new PropertyException("Non number operand to ceiling function");
- }
- return new NumberProperty(Math.ceil(dbl.doubleValue()));
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/expr/FloorFunction.java b/src/org/apache/fop/fo/expr/FloorFunction.java
deleted file mode 100644
index c08737141..000000000
--- a/src/org/apache/fop/fo/expr/FloorFunction.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import org.apache.fop.fo.Property;
-import org.apache.fop.fo.NumberProperty;
-
-
-class FloorFunction extends FunctionBase {
-
- public int nbArgs() {
- return 1;
- }
-
- public Property eval(Property[] args,
- PropertyInfo pInfo) throws PropertyException {
- Number dbl = args[0].getNumber();
- if (dbl == null) {
- throw new PropertyException("Non number operand to floor function");
- }
- return new NumberProperty(Math.floor(dbl.doubleValue()));
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/expr/FopPropValFunction.java b/src/org/apache/fop/fo/expr/FopPropValFunction.java
deleted file mode 100644
index 51b258fbe..000000000
--- a/src/org/apache/fop/fo/expr/FopPropValFunction.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import org.apache.fop.fo.Property;
-
-
-/**
- * Return the specified or initial value of the property on this object.
- */
-public class FopPropValFunction extends FunctionBase {
-
- public int nbArgs() {
- return 1;
- }
-
- public Property eval(Property[] args,
- PropertyInfo pInfo) throws PropertyException {
- String propName = args[0].getString();
- if (propName == null) {
- throw new PropertyException("Incorrect parameter to _int-property-value function");
- }
- // System.err.println("Get property-value for " + propName);
- return pInfo.getPropertyList().get(propName);
- }
-
-}
diff --git a/src/org/apache/fop/fo/expr/FromParentFunction.java b/src/org/apache/fop/fo/expr/FromParentFunction.java
deleted file mode 100644
index 5acc93a43..000000000
--- a/src/org/apache/fop/fo/expr/FromParentFunction.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import org.apache.fop.fo.Property;
-
-
-public class FromParentFunction extends FunctionBase {
-
- public int nbArgs() {
- return 1;
- }
-
- public Property eval(Property[] args,
- PropertyInfo pInfo) throws PropertyException {
- String propName = args[0].getString();
- if (propName == null) {
- throw new PropertyException("Incorrect parameter to from-parent function");
- }
- // NOTE: special cases for shorthand property
- // Should return COMPUTED VALUE
- /*
- * For now, this is the same as inherited-property-value(propName)
- * (The only difference I can see is that this could work for
- * non-inherited properties too. Perhaps the result is different for
- * a property line line-height which "inherits specified"???
- */
- return pInfo.getPropertyList().getFromParent(propName);
- }
-
-}
diff --git a/src/org/apache/fop/fo/expr/FromTableColumnFunction.java b/src/org/apache/fop/fo/expr/FromTableColumnFunction.java
deleted file mode 100644
index b6bcc8d70..000000000
--- a/src/org/apache/fop/fo/expr/FromTableColumnFunction.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import org.apache.fop.fo.Property;
-
-
-public class FromTableColumnFunction extends FunctionBase {
-
- public int nbArgs() {
- return 1;
- }
-
- public Property eval(Property[] args,
- PropertyInfo pInfo) throws PropertyException {
- String propName = args[0].getString();
- if (propName == null) {
- throw new PropertyException("Incorrect parameter to from-table-column function");
- }
- throw new PropertyException("from-table-column unimplemented!");
- }
-
-}
diff --git a/src/org/apache/fop/fo/expr/Function.java b/src/org/apache/fop/fo/expr/Function.java
deleted file mode 100644
index 4970c0519..000000000
--- a/src/org/apache/fop/fo/expr/Function.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import org.apache.fop.fo.Property;
-import org.apache.fop.datatypes.PercentBase;
-
-public interface Function {
- int nbArgs();
- PercentBase getPercentBase();
- Property eval(Property[] args,
- PropertyInfo propInfo) throws PropertyException;
-}
-
diff --git a/src/org/apache/fop/fo/expr/FunctionBase.java b/src/org/apache/fop/fo/expr/FunctionBase.java
deleted file mode 100644
index fb1ce4b8f..000000000
--- a/src/org/apache/fop/fo/expr/FunctionBase.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import org.apache.fop.datatypes.PercentBase;
-
-public abstract class FunctionBase implements Function {
- // abstract int nbArgs() ;
-
- /**
- * By default, functions have no percent-based arguments.
- */
- public PercentBase getPercentBase() {
- return null;
- }
-
- /*
- * abstract Property eval(Property[] args, PropertyInfo propInfo)
- * throws PropertyException;
- */
-}
-
diff --git a/src/org/apache/fop/fo/expr/InheritedPropFunction.java b/src/org/apache/fop/fo/expr/InheritedPropFunction.java
deleted file mode 100644
index f6adeb852..000000000
--- a/src/org/apache/fop/fo/expr/InheritedPropFunction.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import org.apache.fop.fo.Property;
-
-
-public class InheritedPropFunction extends FunctionBase {
-
- public int nbArgs() {
- return 1;
- }
-
- public Property eval(Property[] args,
- PropertyInfo pInfo) throws PropertyException {
- String propName = args[0].getString();
- if (propName == null) {
- throw new PropertyException("Incorrect parameter to inherited-property-value function");
- }
- return pInfo.getPropertyList().getInherited(propName);
- }
-
-}
diff --git a/src/org/apache/fop/fo/expr/LabelEndFunction.java b/src/org/apache/fop/fo/expr/LabelEndFunction.java
deleted file mode 100644
index c6f4dc756..000000000
--- a/src/org/apache/fop/fo/expr/LabelEndFunction.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import org.apache.fop.datatypes.Length;
-import org.apache.fop.datatypes.LengthBase;
-import org.apache.fop.datatypes.LinearCombinationLength;
-import org.apache.fop.datatypes.PercentLength;
-import org.apache.fop.fo.Property;
-import org.apache.fop.fo.LengthProperty;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.flow.ListItem;
-
-public class LabelEndFunction extends FunctionBase {
-
- public int nbArgs() {
- return 0;
- }
-
- public Property eval(Property[] args,
- PropertyInfo pInfo) throws PropertyException {
-
- Length distance =
- pInfo.getPropertyList().get("provisional-distance-between-starts").getLength();
- Length separation =
- pInfo.getPropertyList().getNearestSpecified("provisional-label-separation").getLength();
-
- FONode item = pInfo.getFO();
- while (item != null && !(item instanceof ListItem)) {
- item = item.getParent();
- }
- if (item == null) {
- throw new PropertyException("label-end() called from outside an fo:list-item");
- }
- Length startIndent = ((ListItem)item).properties.get("start-indent").getLength();
-
- LinearCombinationLength labelEnd = new LinearCombinationLength();
-
- // Should be CONTAINING_REFAREA but that doesn't work
- LengthBase base = new LengthBase((ListItem)item, pInfo.getPropertyList(),
- LengthBase.CONTAINING_BOX);
- PercentLength refWidth = new PercentLength(1.0, base);
-
- labelEnd.addTerm(1.0, refWidth);
- labelEnd.addTerm(-1.0, distance);
- labelEnd.addTerm(-1.0, startIndent);
- labelEnd.addTerm(1.0, separation);
-
- return new LengthProperty(labelEnd);
- }
-
-}
diff --git a/src/org/apache/fop/fo/expr/MaxFunction.java b/src/org/apache/fop/fo/expr/MaxFunction.java
deleted file mode 100644
index 10b1905e0..000000000
--- a/src/org/apache/fop/fo/expr/MaxFunction.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import org.apache.fop.fo.Property;
-
-
-public class MaxFunction extends FunctionBase {
- public int nbArgs() {
- return 2;
- }
-
- // Handle "numerics" if no proportional/percent parts!
- public Property eval(Property[] args,
- PropertyInfo pInfo) throws PropertyException {
- Numeric n1 = args[0].getNumeric();
- Numeric n2 = args[1].getNumeric();
- if (n1 == null || n2 == null) {
- throw new PropertyException("Non numeric operands to max function");
- }
- return new NumericProperty(n1.max(n2));
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/expr/MinFunction.java b/src/org/apache/fop/fo/expr/MinFunction.java
deleted file mode 100644
index 443e9973e..000000000
--- a/src/org/apache/fop/fo/expr/MinFunction.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import org.apache.fop.fo.Property;
-
-
-public class MinFunction extends FunctionBase {
- public int nbArgs() {
- return 2;
- }
-
- // Handle "numerics" if no proportional/percent parts!
- public Property eval(Property[] args,
- PropertyInfo pInfo) throws PropertyException {
- Numeric n1 = args[0].getNumeric();
- Numeric n2 = args[1].getNumeric();
- if (n1 == null || n2 == null) {
- throw new PropertyException("Non numeric operands to min function");
- }
- return new NumericProperty(n1.min(n2));
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/expr/NCnameProperty.java b/src/org/apache/fop/fo/expr/NCnameProperty.java
deleted file mode 100644
index 689001e2e..000000000
--- a/src/org/apache/fop/fo/expr/NCnameProperty.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import org.apache.fop.fo.Property;
-import org.apache.fop.datatypes.ColorType;
-
-public class NCnameProperty extends Property {
-
- private final String ncName;
-
- public NCnameProperty(String ncName) {
- this.ncName = ncName;
- }
-
- public ColorType getColor() throws PropertyException {
- // If a system color, return the corresponding value
- throw new PropertyException("Not a Color");
- }
-
- /**
- * Return the name as a String (should be specified with quotes!)
- */
- public String getString() {
- return this.ncName;
- }
-
- public String getNCname() {
- return this.ncName;
- }
-
-}
diff --git a/src/org/apache/fop/fo/expr/NearestSpecPropFunction.java b/src/org/apache/fop/fo/expr/NearestSpecPropFunction.java
deleted file mode 100644
index 2bf74c3ed..000000000
--- a/src/org/apache/fop/fo/expr/NearestSpecPropFunction.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import org.apache.fop.fo.Property;
-
-public class NearestSpecPropFunction extends FunctionBase {
-
- public int nbArgs() {
- return 1;
- }
-
- public Property eval(Property[] args,
- PropertyInfo pInfo) throws PropertyException {
- String propName = args[0].getString();
- if (propName == null) {
- throw new PropertyException(
- "Incorrect parameter to from-nearest-specified-value function");
- }
- // NOTE: special cases for shorthand property
- // Should return COMPUTED VALUE
- return pInfo.getPropertyList().getNearestSpecified(propName);
- }
-
-}
diff --git a/src/org/apache/fop/fo/expr/Numeric.java b/src/org/apache/fop/fo/expr/Numeric.java
deleted file mode 100644
index 7373d5f4c..000000000
--- a/src/org/apache/fop/fo/expr/Numeric.java
+++ /dev/null
@@ -1,420 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import java.util.Vector;
-
-import org.apache.fop.datatypes.Length;
-import org.apache.fop.datatypes.FixedLength;
-import org.apache.fop.datatypes.PercentLength;
-import org.apache.fop.datatypes.MixedLength;
-import org.apache.fop.datatypes.TableColLength;
-import org.apache.fop.datatypes.PercentBase;
-
-/**
- * Represents a "numeric" value as defined by the XSL FO Specification.
- * This consists of one or more kinds of value specifications, from
- * absolute numbers (units power of 0) to lengths (unit power of 1),
- * relative lengths (ems), percentage lengths.
- * A Numeric can be constructed from other Property types representing
- * Numbers or Length-type values.
- * Numeric provides methods to return Number and Length values based on
- * its current value.
- * It supports basic arithmetic operations involving Numerics.
- */
-public class Numeric {
- // Bit fields
- public static final int ABS_LENGTH = 1; // abs units (or number)
- public static final int PC_LENGTH = 2; // Percentage
- public static final int TCOL_LENGTH = 4; // Table units
-
- private int valType;
- private double absValue;
- private double pcValue;
- private PercentBase pcBase = null; // base value for PC_LENGTH component
- private double tcolValue;
- private int dim;
-
-
- /**
- * Construct a Numeric object by specifying one or more components,
- * including absolute length, percent length, table units.
- * @param valType A combination of bits representing the value types.
- * @param absValue The value of a Number or resolved Length value if
- * the ABS_LENGTH flag is set.
- * @param pcValue The decimal percent value if the PC_LENGTH flag is set
- * @param tcolValue The decimal table unit value if the TCOL_LENGTH flag
- * is set.
- * @param dim The dimension of the value. 0 for a Number, 1 for a Length
- * (any type), >1, <0 if Lengths have been multiplied or divided.
- * @pcBase The PercentBase object used to calculate an actual value for
- * a PC_LENGTH.
- */
- protected Numeric(int valType, double absValue, double pcValue,
- double tcolValue, int dim, PercentBase pcBase) {
- this.valType = valType;
- this.absValue = absValue;
- this.pcValue = pcValue;
- this.tcolValue = tcolValue;
- this.dim = dim;
- this.pcBase = pcBase;
- }
-
- /**
- * Construct a Numeric object of dimension 0 from a double.
- * @param valType A combination of bits representing the value types.
- * @param absValue The value of a Number or resolved Length value.
- */
-
- /**
- * *
- * protected Numeric(int valType, double absValue) {
- * this.valType = valType;
- * this.absValue = absValue;
- * }
- */
-
- /**
- * Construct a Numeric object from a Number.
- * @param num The number.
- */
- public Numeric(Number num) {
- this(ABS_LENGTH, num.doubleValue(), 0.0, 0.0, 0, null);
- }
-
- /**
- * Construct a Numeric object from a Length.
- * @param l The Length.
- */
- public Numeric(FixedLength l) {
- this(ABS_LENGTH, (double)l.getValue(), 0.0, 0.0, 1, null);
- }
-
- /**
- * Construct a Numeric object from a PercentLength.
- * @param pclen The PercentLength.
- */
- public Numeric(PercentLength pclen) {
- this(PC_LENGTH, 0.0, pclen.value(), 0.0, 1, pclen.getBaseLength());
- }
-
- /**
- * Construct a Numeric object from a TableColLength.
- * @param tclen The TableColLength.
- */
- public Numeric(TableColLength tclen) {
- this(TCOL_LENGTH, 0.0, 0.0, tclen.getTableUnits(), 1, null);
- }
-
-
- /**
- * Return the current value as a Length if possible. This constructs
- * a new Length or Length subclass based on the current value type
- * of the Numeric.
- * If the stored value has a unit dimension other than 1, null
- * is returned.
- */
- public Length asLength() {
- if (dim == 1) {
- Vector len = new Vector(3);
- if ((valType & ABS_LENGTH) != 0) {
- len.add(new FixedLength((int)absValue));
- }
- if ((valType & PC_LENGTH) != 0) {
- len.add(new PercentLength(pcValue, pcBase));
- }
- if ((valType & TCOL_LENGTH) != 0) {
- len.add(new TableColLength(tcolValue));
- }
- if (len.size() == 1) {
- return (Length)len.elementAt(0);
- } else {
- return new MixedLength(len);
- }
- } else {
- // or throw exception???
- // can't make Length if dimension != 1
- return null;
- }
- }
-
- /**
- * Return the current value as a Number if possible.
- * Calls asDouble().
- */
- public Number asNumber() {
- return asDouble();
- }
-
- public Double asDouble() {
- if (dim == 0 && valType == ABS_LENGTH) {
- return new Double(absValue);
- } else {
- // or throw exception???
- // can't make Number if dimension != 0
- return null;
- }
- }
-
- /**
- * Return the current value as a Integer if possible.
- * If the unit dimension is 0 and the value type is ABSOLUTE, an Integer
- * is returned. Otherwise null is returned. Note: the current value is
- * truncated if necessary to make an integer value.
- */
-
- /**
- * public Integer asInteger() {
- * if (dim == 0 && valType==ABS_LENGTH) {
- * return new Integer((int)absValue);
- * }
- * else {
- * // or throw exception???
- * // can't make Number if dimension != 0
- * return null;
- * }
- * }
- */
-
- /**
- * Return a boolean value indiciating whether the currently stored
- * value consists of different "types" of values (absolute, percent,
- * and/or table-unit.)
- */
- private boolean isMixedType() {
- int ntype = 0;
- for (int t = valType; t != 0; t = t >> 1) {
- if ((t & 1) != 0) {
- ++ntype;
- }
- }
- return ntype > 1;
- }
-
- /**
- * Subtract the operand from the current value and return a new Numeric
- * representing the result.
- * @param op The value to subtract.
- * @return A Numeric representing the result.
- * @throws PropertyException If the dimension of the operand is different
- * from the dimension of this Numeric.
- */
- public Numeric subtract(Numeric op) throws PropertyException {
- // Check of same dimension
- // Add together absolute and table units
- // What about percentages??? Treat as colUnits if they can't be
- // in same property!
- if (dim == op.dim) {
- PercentBase npcBase = ((valType & PC_LENGTH) != 0) ? pcBase
- : op.pcBase;
- // Subtract each type of value
- return new Numeric(valType | op.valType, absValue - op.absValue,
- pcValue - op.pcValue,
- tcolValue - op.tcolValue, dim, npcBase);
- } else {
- throw new PropertyException("Can't add Numerics of different dimensions");
- }
- }
-
- /**
- * Add the operand from the current value and return a new Numeric
- * representing the result.
- * @param op The value to add.
- * @return A Numeric representing the result.
- * @throws PropertyException If the dimension of the operand is different
- * from the dimension of this Numeric.
- */
- public Numeric add(Numeric op) throws PropertyException {
- // Check of same dimension
- // Add together absolute and table units
- // What about percentages??? Treat as colUnits if they can't be
- // in same property!
- if (dim == op.dim) {
- PercentBase npcBase = ((valType & PC_LENGTH) != 0) ? pcBase
- : op.pcBase;
- // Add each type of value
- return new Numeric(valType | op.valType, absValue + op.absValue,
- pcValue + op.pcValue,
- tcolValue + op.tcolValue, dim, npcBase);
- } else {
- throw new PropertyException("Can't add Numerics of different dimensions");
- }
- }
-
- /**
- * Multiply the the current value by the operand and return a new Numeric
- * representing the result.
- * @param op The multiplier.
- * @return A Numeric representing the result.
- * @throws PropertyException If both Numerics have "mixed" type.
- */
- public Numeric multiply(Numeric op) throws PropertyException {
- // Multiply together absolute units and add dimensions (exponents)
- // What about percentages??? Treat as colUnits if they can't be
- // in same property!
- if (dim == 0) {
- // This is a dimensionless quantity, ie. a "Number"
- return new Numeric(op.valType, absValue * op.absValue,
- absValue * op.pcValue,
- absValue * op.tcolValue, op.dim, op.pcBase);
- } else if (op.dim == 0) {
- double opval = op.absValue;
- return new Numeric(valType, opval * absValue, opval * pcValue,
- opval * tcolValue, dim, pcBase);
- } else if (valType == op.valType && !isMixedType()) {
- // Check same relbase and pcbase ???
- PercentBase npcBase = ((valType & PC_LENGTH) != 0) ? pcBase
- : op.pcBase;
- return new Numeric(valType, absValue * op.absValue,
- pcValue * op.pcValue,
- tcolValue * op.tcolValue, dim + op.dim,
- npcBase);
- } else {
- throw new PropertyException("Can't multiply mixed Numerics");
- }
- }
-
- /**
- * Divide the the current value by the operand and return a new Numeric
- * representing the result.
- * @param op The divisor.
- * @return A Numeric representing the result.
- * @throws PropertyException If both Numerics have "mixed" type.
- */
- public Numeric divide(Numeric op) throws PropertyException {
- // Multiply together absolute units and add dimensions (exponents)
- // What about percentages??? Treat as colUnits if they can't be
- // in same property!
- if (dim == 0) {
- // This is a dimensionless quantity, ie. a "Number"
- return new Numeric(op.valType, absValue / op.absValue,
- absValue / op.pcValue,
- absValue / op.tcolValue, -op.dim, op.pcBase);
- } else if (op.dim == 0) {
- double opval = op.absValue;
- return new Numeric(valType, absValue / opval, pcValue / opval,
- tcolValue / opval, dim, pcBase);
- } else if (valType == op.valType && !isMixedType()) {
- PercentBase npcBase = ((valType & PC_LENGTH) != 0) ? pcBase
- : op.pcBase;
- return new Numeric(valType,
- (valType == ABS_LENGTH ? absValue / op.absValue : 0.0),
- (valType == PC_LENGTH ? pcValue / op.pcValue : 0.0),
- (valType == TCOL_LENGTH ? tcolValue / op.tcolValue : 0.0),
- dim - op.dim, npcBase);
- } else {
- throw new PropertyException("Can't divide mixed Numerics.");
- }
- }
-
- /**
- * Return the absolute value of this Numeric.
- * @return A new Numeric object representing the absolute value.
- */
- public Numeric abs() {
- return new Numeric(valType, Math.abs(absValue), Math.abs(pcValue),
- Math.abs(tcolValue), dim, pcBase);
- }
-
- /**
- * Return a Numeric which is the maximum of the current value and the
- * operand.
- * @throws PropertyException If the dimensions or value types of the
- * object and the operand are different.
- */
- public Numeric max(Numeric op) throws PropertyException {
- double rslt = 0.0;
- // Only compare if have same dimension and value type!
- if (dim == op.dim && valType == op.valType && !isMixedType()) {
- if (valType == ABS_LENGTH) {
- rslt = absValue - op.absValue;
- } else if (valType == PC_LENGTH) {
- rslt = pcValue - op.pcValue;
- } else if (valType == TCOL_LENGTH) {
- rslt = tcolValue - op.tcolValue;
- }
- if (rslt > 0.0) {
- return this;
- } else {
- return op;
- }
- }
- throw new PropertyException("Arguments to max() must have same dimension and value type.");
- }
-
- /**
- * Return a Numeric which is the minimum of the current value and the
- * operand.
- * @throws PropertyException If the dimensions or value types of the
- * object and the operand are different.
- */
- public Numeric min(Numeric op) throws PropertyException {
- double rslt = 0.0;
- // Only compare if have same dimension and value type!
- if (dim == op.dim && valType == op.valType && !isMixedType()) {
- if (valType == ABS_LENGTH) {
- rslt = absValue - op.absValue;
- } else if (valType == PC_LENGTH) {
- rslt = pcValue - op.pcValue;
- } else if (valType == TCOL_LENGTH) {
- rslt = tcolValue - op.tcolValue;
- }
- if (rslt > 0.0) {
- return op;
- } else {
- return this;
- }
- }
- throw new PropertyException("Arguments to min() must have same dimension and value type.");
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/expr/NumericProperty.java b/src/org/apache/fop/fo/expr/NumericProperty.java
deleted file mode 100644
index 901adab63..000000000
--- a/src/org/apache/fop/fo/expr/NumericProperty.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import org.apache.fop.fo.Property;
-import org.apache.fop.datatypes.Length;
-import org.apache.fop.datatypes.ColorType;
-
-class NumericProperty extends Property {
- private Numeric numeric;
-
- NumericProperty(Numeric value) {
- this.numeric = value;
- }
-
- public Numeric getNumeric() {
- return this.numeric;
- }
-
- public Number getNumber() {
- return numeric.asNumber();
- }
-
- public Length getLength() {
- return numeric.asLength();
- }
-
- public ColorType getColorType() {
- // try converting to numeric number and then to color
- return null;
- }
-
- public Object getObject() {
- return this.numeric;
- }
-
-}
diff --git a/src/org/apache/fop/fo/expr/PPColWidthFunction.java b/src/org/apache/fop/fo/expr/PPColWidthFunction.java
deleted file mode 100644
index e6941ae70..000000000
--- a/src/org/apache/fop/fo/expr/PPColWidthFunction.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-
-import org.apache.fop.fo.Property;
-import org.apache.fop.fo.LengthProperty;
-import org.apache.fop.datatypes.TableColLength;
-
-public class PPColWidthFunction extends FunctionBase {
-
- public int nbArgs() {
- return 1;
- }
-
- public Property eval(Property[] args,
- PropertyInfo pInfo) throws PropertyException {
- Number d = args[0].getNumber();
- if (d == null) {
- throw new PropertyException("Non number operand to proportional-column-width function");
- }
- if (!pInfo.getPropertyList().getElement().equals("table-column")) {
- throw new PropertyException("proportional-column-width function "
- + "may only be used on table-column FO");
- }
- // Check if table-layout is "fixed"...
- return new LengthProperty(new TableColLength(d.doubleValue()));
- }
-
-}
diff --git a/src/org/apache/fop/fo/expr/PropertyException.java b/src/org/apache/fop/fo/expr/PropertyException.java
deleted file mode 100644
index 7245b7b1c..000000000
--- a/src/org/apache/fop/fo/expr/PropertyException.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-public class PropertyException extends Exception {
- public PropertyException(String detail) {
- super(detail);
- }
-
-}
diff --git a/src/org/apache/fop/fo/expr/PropertyInfo.java b/src/org/apache/fop/fo/expr/PropertyInfo.java
deleted file mode 100644
index 0afc0051e..000000000
--- a/src/org/apache/fop/fo/expr/PropertyInfo.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import java.util.Stack;
-
-import org.apache.fop.fo.Property;
-import org.apache.fop.fo.PropertyList;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.datatypes.PercentBase;
-
-
-/**
- * This class holds context information needed during property expression
- * evaluation.
- * It holds the Maker object for the property, the PropertyList being
- * built, and the FObj parent of the FObj for which the property is being set.
- */
-public class PropertyInfo {
- private Property.Maker maker;
- private PropertyList plist;
- private FObj fo;
- private Stack stkFunction; // Stack of functions being evaluated
-
- public PropertyInfo(Property.Maker maker, PropertyList plist, FObj fo) {
- this.maker = maker;
- this.plist = plist;
- this.fo = fo;
- }
-
- /**
- * Return whether this property inherits specified values.
- * Propagates to the Maker.
- * @return true if the property inherits specified values, false if it
- * inherits computed values.
- */
- public boolean inheritsSpecified() {
- return maker.inheritsSpecified();
- }
-
- /**
- * Return the PercentBase object used to calculate the absolute value from
- * a percent specification.
- * Propagates to the Maker.
- * @return The PercentBase object or null if percentLengthOK()=false.
- */
- public PercentBase getPercentBase() {
- PercentBase pcbase = getFunctionPercentBase();
- return (pcbase != null) ? pcbase : maker.getPercentBase(fo, plist);
- }
-
- /**
- * Return the current font-size value as base units (milli-points).
- */
- public int currentFontSize() {
- return plist.get("font-size").getLength().getValue();
- }
-
- public FObj getFO() {
- return fo;
- }
-
- public PropertyList getPropertyList() {
- return plist;
- }
-
- public void pushFunction(Function func) {
- if (stkFunction == null) {
- stkFunction = new Stack();
- }
- stkFunction.push(func);
- }
-
- public void popFunction() {
- if (stkFunction != null) {
- stkFunction.pop();
- }
- }
-
- private PercentBase getFunctionPercentBase() {
- if (stkFunction != null) {
- Function f = (Function)stkFunction.peek();
- if (f != null) {
- return f.getPercentBase();
- }
- }
- return null;
- }
-
-}
diff --git a/src/org/apache/fop/fo/expr/PropertyParser.java b/src/org/apache/fop/fo/expr/PropertyParser.java
deleted file mode 100644
index 9214ec47b..000000000
--- a/src/org/apache/fop/fo/expr/PropertyParser.java
+++ /dev/null
@@ -1,499 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.datatypes.FixedLength;
-import org.apache.fop.datatypes.Length;
-import org.apache.fop.datatypes.PercentBase;
-import org.apache.fop.datatypes.PercentLength;
-import org.apache.fop.fo.Property;
-import org.apache.fop.fo.ListProperty;
-import org.apache.fop.fo.LengthProperty;
-import org.apache.fop.fo.NumberProperty;
-import org.apache.fop.fo.StringProperty;
-import org.apache.fop.fo.ColorTypeProperty;
-
-import java.util.HashMap;
-
-/**
- * Class to parse XSL FO property expression.
- * This class is heavily based on the epxression parser in James Clark's
- * XT, an XSLT processor.
- */
-public class PropertyParser extends PropertyTokenizer {
- private PropertyInfo propInfo; // Maker and propertyList related info
-
- private static final String RELUNIT = "em";
- private static final Numeric NEGATIVE_ONE = new Numeric(new Double(-1.0));
- private static final HashMap FUNCTION_TABLE = new HashMap();
-
- static {
- // Initialize the HashMap of XSL-defined functions
- FUNCTION_TABLE.put("ceiling", new CeilingFunction());
- FUNCTION_TABLE.put("floor", new FloorFunction());
- FUNCTION_TABLE.put("round", new RoundFunction());
- FUNCTION_TABLE.put("min", new MinFunction());
- FUNCTION_TABLE.put("max", new MaxFunction());
- FUNCTION_TABLE.put("abs", new AbsFunction());
- FUNCTION_TABLE.put("rgb", new RGBColorFunction());
- FUNCTION_TABLE.put("from-table-column", new FromTableColumnFunction());
- FUNCTION_TABLE.put("inherited-property-value",
- new InheritedPropFunction());
- FUNCTION_TABLE.put("from-parent", new FromParentFunction());
- FUNCTION_TABLE.put("from-nearest-specified-value",
- new NearestSpecPropFunction());
- FUNCTION_TABLE.put("proportional-column-width",
- new PPColWidthFunction());
- FUNCTION_TABLE.put("label-end", new LabelEndFunction());
- FUNCTION_TABLE.put("body-start", new BodyStartFunction());
- // NOTE: used from code generated for corresponding properties
- FUNCTION_TABLE.put("_fop-property-value", new FopPropValFunction());
-
- /**
- * * NOT YET IMPLEMENTED!!!
- * FUNCTION_TABLE.put("icc-color", new ICCcolorFunction());
- * FUNCTION_TABLE.put("system-color", new SystemColorFunction());
- * FUNCTION_TABLE.put("system-font", new SystemFontFunction());
- *
- * FUNCTION_TABLE.put("merge-property-values", new MergePropsFunction());
- */
- }
-
-
- /**
- * Public entrypoint to the Property expression parser.
- * @param expr The specified value (attribute on the xml element).
- * @param propInfo A PropertyInfo object representing the context in
- * which the property expression is to be evaluated.
- * @return A Property object holding the parsed result.
- * @throws PropertyException If the "expr" cannot be parsed as a Property.
- */
- public static Property parse(String expr, PropertyInfo propInfo)
- throws PropertyException {
- return new PropertyParser(expr, propInfo).parseProperty();
- }
-
-
- /**
- * Private constructor. Called by the static parse() method.
- * @param propExpr The specified value (attribute on the xml element).
- * @param propInfo A PropertyInfo object representing the context in
- * which the property expression is to be evaluated.
- */
- private PropertyParser(String propExpr, PropertyInfo pInfo) {
- super(propExpr);
- this.propInfo = pInfo;
- }
-
- /**
- * Parse the property expression described in the instance variables.
- * Note: If the property expression String is empty, a StringProperty
- * object holding an empty String is returned.
- * @return A Property object holding the parsed result.
- * @throws PropertyException If the "expr" cannot be parsed as a Property.
- */
- private Property parseProperty() throws PropertyException {
- next();
- if (currentToken == TOK_EOF) {
- // if prop value is empty string, force to StringProperty
- return new StringProperty("");
- }
- ListProperty propList = null;
- while (true) {
- Property prop = parseAdditiveExpr();
- if (currentToken == TOK_EOF) {
- if (propList != null) {
- propList.addProperty(prop);
- return propList;
- } else {
- return prop;
- }
- } else {
- if (propList == null) {
- propList = new ListProperty(prop);
- } else {
- propList.addProperty(prop);
- }
- }
- // throw new PropertyException("unexpected token");
- }
- // return prop;
- }
-
- /**
- * Try to parse an addition or subtraction expression and return the
- * resulting Property.
- */
- private Property parseAdditiveExpr() throws PropertyException {
- // Evaluate and put result on the operand stack
- Property prop = parseMultiplicativeExpr();
- loop:
- while (true) {
- switch (currentToken) {
- case TOK_PLUS:
- next();
- prop = evalAddition(prop.getNumeric(),
- parseMultiplicativeExpr().getNumeric());
- break;
- case TOK_MINUS:
- next();
- prop =
- evalSubtraction(prop.getNumeric(),
- parseMultiplicativeExpr().getNumeric());
- break;
- default:
- break loop;
- }
- }
- return prop;
- }
-
- /**
- * Try to parse a multiply, divide or modulo expression and return
- * the resulting Property.
- */
- private Property parseMultiplicativeExpr() throws PropertyException {
- Property prop = parseUnaryExpr();
- loop:
- while (true) {
- switch (currentToken) {
- case TOK_DIV:
- next();
- prop = evalDivide(prop.getNumeric(),
- parseUnaryExpr().getNumeric());
- break;
- case TOK_MOD:
- next();
- prop = evalModulo(prop.getNumber(),
- parseUnaryExpr().getNumber());
- break;
- case TOK_MULTIPLY:
- next();
- prop = evalMultiply(prop.getNumeric(),
- parseUnaryExpr().getNumeric());
- break;
- default:
- break loop;
- }
- }
- return prop;
- }
-
- /**
- * Try to parse a unary minus expression and return the
- * resulting Property.
- */
- private Property parseUnaryExpr() throws PropertyException {
- if (currentToken == TOK_MINUS) {
- next();
- return evalNegate(parseUnaryExpr().getNumeric());
- }
- return parsePrimaryExpr();
- }
-
-
- /**
- * Checks that the current token is a right parenthesis
- * and throws an exception if this isn't the case.
- */
- private final void expectRpar() throws PropertyException {
- if (currentToken != TOK_RPAR) {
- throw new PropertyException("expected )");
- }
- next();
- }
-
- /**
- * Try to parse a primary expression and return the
- * resulting Property.
- * A primary expression is either a parenthesized expression or an
- * expression representing a primitive Property datatype, such as a
- * string literal, an NCname, a number or a unit expression, or a
- * function call expression.
- */
- private Property parsePrimaryExpr() throws PropertyException {
- Property prop;
- switch (currentToken) {
- case TOK_LPAR:
- next();
- prop = parseAdditiveExpr();
- expectRpar();
- return prop;
-
- case TOK_LITERAL:
- prop = new StringProperty(currentTokenValue);
- break;
-
- case TOK_NCNAME:
- // Interpret this in context of the property or do it later?
- prop = new NCnameProperty(currentTokenValue);
- break;
-
- case TOK_FLOAT:
- prop = new NumberProperty(new Double(currentTokenValue));
- break;
-
- case TOK_INTEGER:
- prop = new NumberProperty(new Integer(currentTokenValue));
- break;
-
- case TOK_PERCENT:
- /*
- * Get the length base value object from the Maker. If null, then
- * this property can't have % values. Treat it as a real number.
- */
- double pcval = new Double(currentTokenValue.substring(0,
- currentTokenValue.length() - 1)).doubleValue() / 100.0;
- // LengthBase lbase = this.propInfo.getPercentLengthBase();
- PercentBase pcBase = this.propInfo.getPercentBase();
- if (pcBase != null) {
- if (pcBase.getDimension() == 0) {
- prop = new NumberProperty(pcval * pcBase.getBaseValue());
- } else if (pcBase.getDimension() == 1) {
- prop = new LengthProperty(new PercentLength(pcval,
- pcBase));
- } else {
- throw new PropertyException("Illegal percent dimension value");
- }
- } else {
- // WARNING? Interpret as a decimal fraction, eg. 50% = .5
- prop = new NumberProperty(pcval);
- }
- break;
-
- case TOK_NUMERIC:
- // A number plus a valid unit name.
- int numLen = currentTokenValue.length() - currentUnitLength;
- String unitPart = currentTokenValue.substring(numLen);
- Double numPart = new Double(currentTokenValue.substring(0,
- numLen));
- Length length = null;
- if (unitPart.equals(RELUNIT)) {
- length = new FixedLength(numPart.doubleValue(),
- propInfo.currentFontSize());
- } else {
- length = new FixedLength(numPart.doubleValue(), unitPart);
- }
- if (length == null) {
- throw new PropertyException("unrecognized unit name: "
- + currentTokenValue);
- } else {
- prop = new LengthProperty(length);
- }
- break;
-
- case TOK_COLORSPEC:
- prop = new ColorTypeProperty(new ColorType(currentTokenValue));
- break;
-
- case TOK_FUNCTION_LPAR: {
- Function function =
- (Function)FUNCTION_TABLE.get(currentTokenValue);
- if (function == null) {
- throw new PropertyException("no such function: "
- + currentTokenValue);
- }
- next();
- // Push new function (for function context: getPercentBase())
- propInfo.pushFunction(function);
- prop = function.eval(parseArgs(function.nbArgs()), propInfo);
- propInfo.popFunction();
- return prop;
- }
- default:
- throw new PropertyException("syntax error");
- }
- next();
- return prop;
- }
-
- /**
- * Parse a comma separated list of function arguments. Each argument
- * may itself be an expression. This method consumes the closing right
- * parenthesis of the argument list.
- * @param nbArgs The number of arguments expected by the function.
- * @return An array of Property objects representing the arguments
- * found.
- * @throws PropertyException If the number of arguments found isn't equal
- * to the number expected.
- */
- Property[] parseArgs(int nbArgs) throws PropertyException {
- Property[] args = new Property[nbArgs];
- Property prop;
- int i = 0;
- if (currentToken == TOK_RPAR) {
- // No args: func()
- next();
- } else {
- while (true) {
-
- prop = parseAdditiveExpr();
- if (i < nbArgs) {
- args[i++] = prop;
- }
- // ignore extra args
- if (currentToken != TOK_COMMA) {
- break;
- }
- next();
- }
- expectRpar();
- }
- if (nbArgs != i) {
- throw new PropertyException("Wrong number of args for function");
- }
- return args;
- }
-
-
- /**
- * Evaluate an addition operation. If either of the arguments is null,
- * this means that it wasn't convertible to a Numeric value.
- * @param op1 A Numeric object (Number or Length-type object)
- * @param op2 A Numeric object (Number or Length-type object)
- * @return A new NumericProperty object holding an object which represents
- * the sum of the two operands.
- * @throws PropertyException If either operand is null.
- */
- private Property evalAddition(Numeric op1,
- Numeric op2) throws PropertyException {
- if (op1 == null || op2 == null) {
- throw new PropertyException("Non numeric operand in addition");
- }
- return new NumericProperty(op1.add(op2));
- }
-
- /**
- * Evaluate a subtraction operation. If either of the arguments is null,
- * this means that it wasn't convertible to a Numeric value.
- * @param op1 A Numeric object (Number or Length-type object)
- * @param op2 A Numeric object (Number or Length-type object)
- * @return A new NumericProperty object holding an object which represents
- * the difference of the two operands.
- * @throws PropertyException If either operand is null.
- */
- private Property evalSubtraction(Numeric op1,
- Numeric op2) throws PropertyException {
- if (op1 == null || op2 == null) {
- throw new PropertyException("Non numeric operand in subtraction");
- }
- return new NumericProperty(op1.subtract(op2));
- }
-
- /**
- * Evaluate a unary minus operation. If the argument is null,
- * this means that it wasn't convertible to a Numeric value.
- * @param op A Numeric object (Number or Length-type object)
- * @return A new NumericProperty object holding an object which represents
- * the negative of the operand (multiplication by *1).
- * @throws PropertyException If the operand is null.
- */
- private Property evalNegate(Numeric op) throws PropertyException {
- if (op == null) {
- throw new PropertyException("Non numeric operand to unary minus");
- }
- return new NumericProperty(op.multiply(NEGATIVE_ONE));
- }
-
- /**
- * Evaluate a multiplication operation. If either of the arguments is null,
- * this means that it wasn't convertible to a Numeric value.
- * @param op1 A Numeric object (Number or Length-type object)
- * @param op2 A Numeric object (Number or Length-type object)
- * @return A new NumericProperty object holding an object which represents
- * the product of the two operands.
- * @throws PropertyException If either operand is null.
- */
- private Property evalMultiply(Numeric op1,
- Numeric op2) throws PropertyException {
- if (op1 == null || op2 == null) {
- throw new PropertyException("Non numeric operand in multiplication");
- }
- return new NumericProperty(op1.multiply(op2));
- }
-
-
- /**
- * Evaluate a division operation. If either of the arguments is null,
- * this means that it wasn't convertible to a Numeric value.
- * @param op1 A Numeric object (Number or Length-type object)
- * @param op2 A Numeric object (Number or Length-type object)
- * @return A new NumericProperty object holding an object which represents
- * op1 divided by op2.
- * @throws PropertyException If either operand is null.
- */
- private Property evalDivide(Numeric op1,
- Numeric op2) throws PropertyException {
- if (op1 == null || op2 == null) {
- throw new PropertyException("Non numeric operand in division");
- }
- return new NumericProperty(op1.divide(op2));
- }
-
- /**
- * Evaluate a modulo operation. If either of the arguments is null,
- * this means that it wasn't convertible to a Number value.
- * @param op1 A Number object
- * @param op2 A Number object
- * @return A new NumberProperty object holding an object which represents
- * op1 mod op2.
- * @throws PropertyException If either operand is null.
- */
- private Property evalModulo(Number op1,
- Number op2) throws PropertyException {
- if (op1 == null || op2 == null) {
- throw new PropertyException("Non number operand to modulo");
- }
- return new NumberProperty(op1.doubleValue() % op2.doubleValue());
- }
-
-}
diff --git a/src/org/apache/fop/fo/expr/PropertyTokenizer.java b/src/org/apache/fop/fo/expr/PropertyTokenizer.java
deleted file mode 100644
index 40302b45c..000000000
--- a/src/org/apache/fop/fo/expr/PropertyTokenizer.java
+++ /dev/null
@@ -1,394 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-
-
-/**
- * Class to tokenize XSL FO property expression.
- * This class is heavily based on the epxression tokenizer in James Clark's
- * XT, an XSLT processor.
- */
-class PropertyTokenizer {
-
- static final int TOK_EOF = 0;
- static final int TOK_NCNAME = TOK_EOF + 1;
- static final int TOK_MULTIPLY = TOK_NCNAME + 1;
- static final int TOK_LPAR = TOK_MULTIPLY + 1;
- static final int TOK_RPAR = TOK_LPAR + 1;
- static final int TOK_LITERAL = TOK_RPAR + 1;
- static final int TOK_NUMBER = TOK_LITERAL + 1;
- static final int TOK_FUNCTION_LPAR = TOK_NUMBER + 1;
- static final int TOK_PLUS = TOK_FUNCTION_LPAR + 1;
- static final int TOK_MINUS = TOK_PLUS + 1;
- static final int TOK_MOD = TOK_MINUS + 1;
- static final int TOK_DIV = TOK_MOD + 1;
- static final int TOK_NUMERIC = TOK_DIV + 1;
- static final int TOK_COMMA = TOK_NUMERIC + 1;
- static final int TOK_PERCENT = TOK_COMMA + 1;
- static final int TOK_COLORSPEC = TOK_PERCENT + 1;
- static final int TOK_FLOAT = TOK_COLORSPEC + 1;
- static final int TOK_INTEGER = TOK_FLOAT + 1;
-
- protected int currentToken = TOK_EOF;
- protected String currentTokenValue = null;
- protected int currentUnitLength = 0;
-
- private int currentTokenStartIndex = 0;
- private /* final */ String expr;
- private int exprIndex = 0;
- private int exprLength;
- private boolean recognizeOperator = false;
-
-
- /**
- * Construct a new PropertyTokenizer object to tokenize the passed
- * String.
- * @param s The Property expressio to tokenize.
- */
- PropertyTokenizer(String s) {
- this.expr = s;
- this.exprLength = s.length();
- }
-
- /**
- * Return the next token in the expression string.
- * This sets the following package visible variables:
- * currentToken An enumerated value identifying the recognized token
- * currentTokenValue A String containing the token contents
- * currentUnitLength If currentToken = TOK_NUMERIC, the number of
- * characters in the unit name.
- * @throws PropertyException If un unrecognized token is encountered.
- */
- void next() throws PropertyException {
- currentTokenValue = null;
- currentTokenStartIndex = exprIndex;
- boolean currentMaybeOperator = recognizeOperator;
- boolean bSawDecimal;
- recognizeOperator = true;
- for (; ;) {
- if (exprIndex >= exprLength) {
- currentToken = TOK_EOF;
- return;
- }
- char c = expr.charAt(exprIndex++);
- switch (c) {
- case ' ':
- case '\t':
- case '\r':
- case '\n':
- currentTokenStartIndex = exprIndex;
- break;
- case ',':
- recognizeOperator = false;
- currentToken = TOK_COMMA;
- return;
- case '+':
- recognizeOperator = false;
- currentToken = TOK_PLUS;
- return;
- case '-':
- recognizeOperator = false;
- currentToken = TOK_MINUS;
- return;
- case '(':
- currentToken = TOK_LPAR;
- recognizeOperator = false;
- return;
- case ')':
- currentToken = TOK_RPAR;
- return;
- case '"':
- case '\'':
- exprIndex = expr.indexOf(c, exprIndex);
- if (exprIndex < 0) {
- exprIndex = currentTokenStartIndex + 1;
- throw new PropertyException("missing quote");
- }
- currentTokenValue = expr.substring(currentTokenStartIndex
- + 1, exprIndex++);
- currentToken = TOK_LITERAL;
- return;
- case '*':
- /*
- * if (currentMaybeOperator) {
- * recognizeOperator = false;
- */
- currentToken = TOK_MULTIPLY;
- /*
- * }
- * else
- * throw new PropertyException("illegal operator *");
- */
- return;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- scanDigits();
- if (exprIndex < exprLength && expr.charAt(exprIndex) == '.') {
- exprIndex++;
- bSawDecimal = true;
- if (exprIndex < exprLength
- && isDigit(expr.charAt(exprIndex))) {
- exprIndex++;
- scanDigits();
- }
- } else {
- bSawDecimal = false;
- }
- if (exprIndex < exprLength && expr.charAt(exprIndex) == '%') {
- exprIndex++;
- currentToken = TOK_PERCENT;
- } else {
- // Check for possible unit name following number
- currentUnitLength = exprIndex;
- scanName();
- currentUnitLength = exprIndex - currentUnitLength;
- currentToken = (currentUnitLength > 0) ? TOK_NUMERIC
- : (bSawDecimal ? TOK_FLOAT : TOK_INTEGER);
- }
- currentTokenValue = expr.substring(currentTokenStartIndex,
- exprIndex);
- return;
-
- case '.':
- if (exprIndex < exprLength
- && isDigit(expr.charAt(exprIndex))) {
- ++exprIndex;
- scanDigits();
- if (exprIndex < exprLength
- && expr.charAt(exprIndex) == '%') {
- exprIndex++;
- currentToken = TOK_PERCENT;
- } else {
- // Check for possible unit name following number
- currentUnitLength = exprIndex;
- scanName();
- currentUnitLength = exprIndex - currentUnitLength;
- currentToken = (currentUnitLength > 0) ? TOK_NUMERIC
- : TOK_FLOAT;
- }
- currentTokenValue = expr.substring(currentTokenStartIndex,
- exprIndex);
- return;
- }
- throw new PropertyException("illegal character '.'");
-
- case '#': // Start of color value
- if (exprIndex < exprLength
- && isHexDigit(expr.charAt(exprIndex))) {
- ++exprIndex;
- scanHexDigits();
- currentToken = TOK_COLORSPEC;
- currentTokenValue = expr.substring(currentTokenStartIndex,
- exprIndex);
- // Probably should have some multiple of 3 for length!
- return;
- } else {
- throw new PropertyException("illegal character '#'");
- }
-
- default:
- --exprIndex;
- scanName();
- if (exprIndex == currentTokenStartIndex) {
- throw new PropertyException("illegal character");
- }
- currentTokenValue = expr.substring(currentTokenStartIndex,
- exprIndex);
- // if (currentMaybeOperator) {
- if (currentTokenValue.equals("mod")) {
- currentToken = TOK_MOD;
- return;
- } else if (currentTokenValue.equals("div")) {
- currentToken = TOK_DIV;
- return;
- }
- /*
- * else
- * throw new PropertyException("unrecognized operator name");
- * recognizeOperator = false;
- * return;
- * }
- */
- if (followingParen()) {
- currentToken = TOK_FUNCTION_LPAR;
- recognizeOperator = false;
- } else {
- currentToken = TOK_NCNAME;
- recognizeOperator = false;
- }
- return;
- }
- }
- }
-
- /**
- * Attempt to recognize a valid NAME token in the input expression.
- */
- private void scanName() {
- if (exprIndex < exprLength && isNameStartChar(expr.charAt(exprIndex))) {
- while (++exprIndex < exprLength
- && isNameChar(expr.charAt(exprIndex))) { }
- }
- }
-
- /**
- * Attempt to recognize a valid sequence of decimal DIGITS in the
- * input expression.
- */
- private void scanDigits() {
- while (exprIndex < exprLength && isDigit(expr.charAt(exprIndex))) {
- exprIndex++;
- }
- }
-
- /**
- * Attempt to recognize a valid sequence of hexadecimal DIGITS in the
- * input expression.
- */
- private void scanHexDigits() {
- while (exprIndex < exprLength && isHexDigit(expr.charAt(exprIndex))) {
- exprIndex++;
- }
- }
-
- /**
- * Return a boolean value indicating whether the following non-whitespace
- * character is an opening parenthesis.
- */
- private boolean followingParen() {
- for (int i = exprIndex; i < exprLength; i++) {
- switch (expr.charAt(i)) {
- case '(':
- exprIndex = i + 1;
- return true;
- case ' ':
- case '\r':
- case '\n':
- case '\t':
- break;
- default:
- return false;
- }
- }
- return false;
- }
-
-
- private static final String NAME_START_CHARS =
- "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
- private static final String NAME_CHARS = ".-0123456789";
- private static final String DIGITS = "0123456789";
- private static final String HEX_CHARS = DIGITS + "abcdefABCDEF";
-
- /**
- * Return a boolean value indicating whether the argument is a
- * decimal digit (0-9).
- * @param c The character to check
- */
- private static final boolean isDigit(char c) {
- return DIGITS.indexOf(c) >= 0;
- }
-
- /**
- * Return a boolean value indicating whether the argument is a
- * hexadecimal digit (0-9, A-F, a-f).
- * @param c The character to check
- */
- private static final boolean isHexDigit(char c) {
- return HEX_CHARS.indexOf(c) >= 0;
- }
-
- /**
- * Return a boolean value indicating whether the argument is whitespace
- * as defined by XSL (space, newline, CR, tab).
- * @param c The character to check
- */
- private static final boolean isSpace(char c) {
- switch (c) {
- case ' ':
- case '\r':
- case '\n':
- case '\t':
- return true;
- }
- return false;
- }
-
- /**
- * Return a boolean value indicating whether the argument is a valid name
- * start character, ie. can start a NAME as defined by XSL.
- * @param c The character to check
- */
- private static final boolean isNameStartChar(char c) {
- return NAME_START_CHARS.indexOf(c) >= 0 || c >= 0x80;
- }
-
- /**
- * Return a boolean value indicating whether the argument is a valid name
- * character, ie. can occur in a NAME as defined by XSL.
- * @param c The character to check
- */
- private static final boolean isNameChar(char c) {
- return NAME_START_CHARS.indexOf(c) >= 0 || NAME_CHARS.indexOf(c) >= 0
- || c >= 0x80;
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/expr/RGBColorFunction.java b/src/org/apache/fop/fo/expr/RGBColorFunction.java
deleted file mode 100644
index 28cc4a90f..000000000
--- a/src/org/apache/fop/fo/expr/RGBColorFunction.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-
-import org.apache.fop.fo.Property;
-import org.apache.fop.fo.ColorTypeProperty;
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.datatypes.PercentBase;
-
-class RGBColorFunction extends FunctionBase {
- public int nbArgs() {
- return 3;
- }
-
- /**
- * Return an object which implements the PercentBase interface.
- * Percents in arguments to this function are interpreted relative
- * to 255.
- */
- public PercentBase getPercentBase() {
- return new RGBPercentBase();
- }
-
- public Property eval(Property[] args,
- PropertyInfo pInfo) throws PropertyException {
- // Using CSS rules, numbers are either supposed to be 0-255
- // or percentage values. If percentages value, they've already
- // been converted to reals.
- float[] cfvals = new float[3]; // RGB
- for (int i = 0; i < 3; i++) {
- Number cval = args[i].getNumber();
- if (cval == null) {
- throw new PropertyException("Argument to rgb() must be a Number");
- }
- float colorVal = cval.floatValue() / 255f;
- if (colorVal < 0.0 || colorVal > 255.0) {
- throw new PropertyException(
- "Arguments to rgb() must normalize to the range 0 to 1");
- }
- cfvals[i] = colorVal;
- }
- return new ColorTypeProperty(new ColorType(cfvals[0], cfvals[1],
- cfvals[2]));
-
- }
-
- static class RGBPercentBase implements PercentBase {
- public int getDimension() {
- return 0;
- }
-
- public double getBaseValue() {
- return 255f;
- }
-
- public int getBaseLength() {
- return 0;
- }
-
- }
-}
diff --git a/src/org/apache/fop/fo/expr/RoundFunction.java b/src/org/apache/fop/fo/expr/RoundFunction.java
deleted file mode 100644
index 7242f2267..000000000
--- a/src/org/apache/fop/fo/expr/RoundFunction.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.expr;
-
-
-import org.apache.fop.fo.Property;
-import org.apache.fop.fo.NumberProperty;
-
-class RoundFunction extends FunctionBase {
- public int nbArgs() {
- return 1;
- }
-
- public Property eval(Property[] args,
- PropertyInfo pInfo) throws PropertyException {
- Number dbl = args[0].getNumber();
- if (dbl == null) {
- throw new PropertyException("Non number operand to round function");
- }
- double n = dbl.doubleValue();
- double r = Math.floor(n + 0.5);
- if (r == 0.0 && n < 0.0) {
- r = -r; // round(-0.2) returns -0 not 0
- }
- return new NumberProperty(r);
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/flow/BasicLink.java b/src/org/apache/fop/fo/flow/BasicLink.java
deleted file mode 100644
index 90fa5be35..000000000
--- a/src/org/apache/fop/fo/flow/BasicLink.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// Java
-import java.util.List;
-import java.io.Serializable;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.MarginInlineProps;
-import org.apache.fop.layout.RelativePositionProps;
-import org.apache.fop.area.inline.InlineParent;
-import org.apache.fop.area.Trait;
-import org.apache.fop.area.Resolveable;
-import org.apache.fop.area.PageViewport;
-import org.apache.fop.area.Area;
-import org.apache.fop.layoutmgr.InlineStackingLayoutManager;
-import org.apache.fop.layoutmgr.LMiter;
-import org.apache.fop.layoutmgr.LayoutProcessor;
-
-/**
- * The basic link.
- * This sets the basic link trait on the inline parent areas
- * that are created by the fo element.
- */
-public class BasicLink extends Inline {
-
- private String link = null;
- private boolean external = false;
-
- public BasicLink(FONode parent) {
- super(parent);
- }
-
- // add start and end properties for the link
- public void addLayoutManager(List lms) {
- setup();
- InlineStackingLayoutManager lm;
- lm = new InlineStackingLayoutManager() {
- protected InlineParent createArea() {
- InlineParent area = super.createArea();
- setupLinkArea(parentLM, area);
- return area;
- }
- };
- lm.setUserAgent(getUserAgent());
- lm.setFObj(this);
- lm.setLMiter(new LMiter(children.listIterator()));
- lms.add(lm);
- }
-
- protected void setupLinkArea(LayoutProcessor parentLM, InlineParent area) {
- if (link == null) {
- return;
- }
- if (external) {
- area.addTrait(Trait.EXTERNAL_LINK, link);
- } else {
- PageViewport page = parentLM.resolveRefID(link);
- if (page != null) {
- area.addTrait(Trait.INTERNAL_LINK, page.getKey());
- } else {
- LinkResolver res = new LinkResolver(link, area);
- parentLM.addUnresolvedArea(link, res);
- }
- }
- }
-
- public void setup() {
- String destination;
- int linkType;
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Margin Properties-Inline
- MarginInlineProps mProps = propMgr.getMarginInlineProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
- // this.properties.get("alignment-adjust");
- // this.properties.get("alignment-baseline");
- // this.properties.get("baseline-shift");
- // this.properties.get("destination-place-offset");
- // this.properties.get("dominant-baseline");
- String ext = properties.get("external-destination").getString();
- setupID();
- // this.properties.get("indicate-destination");
- String internal = properties.get("internal-destination").getString();
- if (ext.length() > 0) {
- link = ext;
- external = true;
- } else if (internal.length() > 0) {
- link = internal;
- } else {
- getLogger().error("basic-link requires an internal or external destination");
- }
- // this.properties.get("keep-together");
- // this.properties.get("keep-with-next");
- // this.properties.get("keep-with-previous");
- // this.properties.get("line-height");
- // this.properties.get("line-height-shift-adjustment");
- // this.properties.get("show-destination");
- // this.properties.get("target-processing-context");
- // this.properties.get("target-presentation-context");
- // this.properties.get("target-stylesheet");
-
- }
-
- protected boolean containsMarkers() {
- return true;
- }
-
- /**
- * Link resolving for resolving internal links.
- * This is static since it is independant of the link fo.
- */
- protected static class LinkResolver implements Resolveable, Serializable {
- private boolean resolved = false;
- private String idRef;
- private Area area;
-
- /**
- * Create a new link resolver.
- *
- * @param id the id to resolve
- * @param a the area that will have the link attribute
- */
- public LinkResolver(String id, Area a) {
- idRef = id;
- area = a;
- }
-
- public boolean isResolved() {
- return resolved;
- }
-
- public String[] getIDs() {
- return new String[] {idRef};
- }
-
- /**
- * Resolve by adding an internal link.
- */
- public void resolve(String id, List pages) {
- resolved = true;
- if (idRef.equals(id) && pages != null) {
- PageViewport page = (PageViewport)pages.get(0);
- area.addTrait(Trait.INTERNAL_LINK, page.getKey());
- }
- }
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/flow/BidiOverride.java b/src/org/apache/fop/fo/flow/BidiOverride.java
deleted file mode 100644
index bad4864fc..000000000
--- a/src/org/apache/fop/fo/flow/BidiOverride.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObjMixed;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.RelativePositionProps;
-
-import org.apache.fop.layoutmgr.LeafNodeLayoutManager;
-import org.apache.fop.layoutmgr.LayoutProcessor;
-import org.apache.fop.area.inline.InlineArea;
-
-import java.util.List;
-import java.util.ArrayList;
-
-/**
- * fo:bidi-override element.
- */
-public class BidiOverride extends FObjMixed {
-
- public BidiOverride(FONode parent) {
- super(parent);
- }
-
- public void addLayoutManager(List list) {
- if (false) {
- super.addLayoutManager(list);
- } else {
- ArrayList childList = new ArrayList();
- super.addLayoutManager(childList);
- for (int count = childList.size() - 1; count >= 0; count--) {
- LayoutProcessor lm = (LayoutProcessor) childList.get(count);
- if (lm.generatesInlineAreas()) {
- LayoutProcessor blm = new BidiLayoutManager((LeafNodeLayoutManager) lm);
- blm.setFObj(this);
- list.add(blm);
- } else {
- list.add(lm);
- }
- }
- }
- }
-
- public void setup() {
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Font Properties
- //this.fontState = propMgr.getFontState(area.getFontInfo());
-
- // Common Margin Properties-Inline
- RelativePositionProps mProps = propMgr.getRelativePositionProps();
-
- // this.properties.get("color");
- // this.properties.get("direction");
- setupID();
- // this.properties.get("letter-spacing");
- // this.properties.get("line-height");
- // this.properties.get("line-height-shift-adjustment");
- // this.properties.get("score-spaces");
- // this.properties.get("text-shadow");
- // this.properties.get("text-transform");
- // this.properties.get("unicode-bidi");
- // this.properties.get("word-spacing");
-
- }
-
- protected boolean containsMarkers() {
- return true;
- }
-
- /**
- * If this bidi has a different writing mode direction
- * ltr or rtl than its parent writing mode then this
- * reverses the inline areas (at the character level).
- */
- class BidiLayoutManager extends LeafNodeLayoutManager {
-
- private List children;
-
- BidiLayoutManager(LeafNodeLayoutManager cLM) {
- children = new ArrayList();
-/* for (int count = cLM.size() - 1; count >= 0; count--) {
- InlineArea ia = cLM.get(count);
- if (ia instanceof Word) {
- // reverse word
- Word word = (Word) ia;
- StringBuffer sb = new StringBuffer(word.getWord());
- word.setWord(sb.reverse().toString());
- }
- children.add(ia);
- }
-*/ }
-
- public int size() {
- return children.size();
- }
-
- public InlineArea get(int index) {
- return (InlineArea) children.get(index);
- }
- }
-}
diff --git a/src/org/apache/fop/fo/flow/Block.java b/src/org/apache/fop/fo/flow/Block.java
deleted file mode 100644
index a03c4c5d1..000000000
--- a/src/org/apache/fop/fo/flow/Block.java
+++ /dev/null
@@ -1,385 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// Java
-import java.util.List;
-
-// XML
-import org.xml.sax.Attributes;
-
-// FOP
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.fo.CharIterator;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.fo.FObjMixed;
-import org.apache.fop.fo.RecursiveCharIterator;
-import org.apache.fop.fo.TextInfo;
-import org.apache.fop.fo.properties.Constants;
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.HyphenationProps;
-import org.apache.fop.layout.MarginProps;
-import org.apache.fop.layout.RelativePositionProps;
-import org.apache.fop.layoutmgr.BlockLayoutManager;
-import org.apache.fop.util.CharUtilities;
-
-/*
- Modified by Mark Lillywhite mark-fop@inomial.com. The changes
- here are based on memory profiling and do not change functionality.
- Essentially, the Block object had a pointer to a BlockArea object
- that it created. The BlockArea was not referenced after the Block
- was finished except to determine the size of the BlockArea, however
- a reference to the BlockArea was maintained and this caused a lot of
- GC problems, and was a major reason for FOP memory leaks. So,
- the reference to BlockArea was made local, the required information
- is now stored (instead of a reference to the complex BlockArea object)
- and it appears that there are a lot of changes in this file, in fact
- there are only a few sematic changes; mostly I just got rid of
- "this." from blockArea since BlockArea is now local.
- */
-public class Block extends FObjMixed {
-
- private int align;
- private int alignLast;
- private int breakAfter;
- private int lineHeight;
- private int startIndent;
- private int endIndent;
- private int spaceBefore;
- private int spaceAfter;
- private int textIndent;
- private int keepWithNext;
- private ColorType backgroundColor;
- private int blockWidows;
- private int blockOrphans;
-
- private String id;
- private int span;
- private int wsTreatment; //ENUMERATION
- private int lfTreatment; //ENUMERATION
- private boolean bWScollapse; //true if white-space-collapse=true
-
- // this may be helpful on other FOs too
- private boolean anythingLaidOut = false;
-
- /**
- * Index of first inline-type FO seen in a sequence.
- * Used during FO tree building to do white-space handling.
- */
- private FONode firstInlineChild = null;
-
- public Block(FONode parent) {
- super(parent);
- }
-
- public void handleAttrs(Attributes attlist) throws FOPException {
- super.handleAttrs(attlist);
- this.span = this.properties.get("span").getEnum();
- this.wsTreatment =
- this.properties.get("white-space-treatment").getEnum();
- this.bWScollapse =
- (this.properties.get("white-space-collapse").getEnum()
- == Constants.TRUE);
- this.lfTreatment =
- this.properties.get("linefeed-treatment").getEnum();
-
- setupID();
-
- structHandler.startBlock(this);
- }
-
- public void setup() {
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Font Properties
- //this.fontState = propMgr.getFontState(area.getFontInfo());
-
- // Common Hyphenation Properties
- HyphenationProps mHyphProps = propMgr.getHyphenationProps();
-
- // Common Margin Properties-Block
- MarginProps mProps = propMgr.getMarginProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps =
- propMgr.getRelativePositionProps();
-
- // this.properties.get("break-after");
- // this.properties.get("break-before");
- // this.properties.get("color");
- // this.properties.get("text-depth");
- // this.properties.get("text-altitude");
- // this.properties.get("hyphenation-keep");
- // this.properties.get("hyphenation-ladder-count");
- setupID();
- // this.properties.get("keep-together");
- // this.properties.get("keep-with-next");
- // this.properties.get("keep-with-previous");
- // this.properties.get("last-line-end-indent");
- // this.properties.get("linefeed-treatment");
- // this.properties.get("line-height");
- // this.properties.get("line-height-shift-adjustment");
- // this.properties.get("line-stacking-strategy");
- // this.properties.get("orphans");
- // this.properties.get("white-space-treatment");
- // this.properties.get("span");
- // this.properties.get("text-align");
- // this.properties.get("text-align-last");
- // this.properties.get("text-indent");
- // this.properties.get("visibility");
- // this.properties.get("white-space-collapse");
- // this.properties.get("widows");
- // this.properties.get("wrap-option");
- // this.properties.get("z-index");
-
- this.align = this.properties.get("text-align").getEnum();
- this.alignLast =
- this.properties.get("text-align-last").getEnum();
- this.breakAfter = this.properties.get("break-after").getEnum();
- this.lineHeight = this.properties.get(
- "line-height").getLength().getValue();
- this.startIndent = this.properties.get(
- "start-indent").getLength().getValue();
- this.endIndent = this.properties.get(
- "end-indent").getLength().getValue();
- this.spaceBefore = this.properties.get(
- "space-before.optimum").getLength().getValue();
- this.spaceAfter = this.properties.get(
- "space-after.optimum").getLength().getValue();
- this.textIndent = this.properties.get(
- "text-indent").getLength().getValue();
- this.keepWithNext =
- this.properties.get("keep-with-next").getEnum();
-
- this.blockWidows =
- this.properties.get("widows").getNumber().intValue();
- this.blockOrphans =
- this.properties.get("orphans").getNumber().intValue();
-
- }
-
- protected boolean containsMarkers() {
- return true;
- }
-
- public int getSpan() {
- return this.span;
- }
-
- public void addLayoutManager(List list) {
- BlockLayoutManager blm = new BlockLayoutManager();
- blm.setUserAgent(getUserAgent());
- blm.setFObj(this);
- TextInfo ti = propMgr.getTextLayoutProps(fontInfo);
- blm.setBlockTextInfo(ti);
- list.add(blm);
- }
-
- public boolean generatesInlineAreas() {
- return false;
- }
-
- public void addChild(FONode child) {
- // Handle whitespace based on values of properties
- // Handle a sequence of inline-producing children in
- // one pass
- if (child instanceof FObj && ((FObj) child).generatesInlineAreas()) {
- if (firstInlineChild == null) {
- firstInlineChild = child;
- }
- // lastInlineChild = children.size();
- } else {
- // Handle whitespace in preceeding inline areas if any
- handleWhiteSpace();
- }
- super.addChild(child);
- }
-
- public void end() {
- handleWhiteSpace();
- structHandler.endBlock(this);
- }
-
- private void handleWhiteSpace() {
- //getLogger().debug("fo:block: handleWhiteSpace");
- if (firstInlineChild != null) {
- boolean bInWS = false;
- boolean bPrevWasLF = false;
- RecursiveCharIterator charIter =
- new RecursiveCharIterator(this, firstInlineChild);
- LFchecker lfCheck = new LFchecker(charIter);
-
- while (charIter.hasNext()) {
- switch (CharUtilities.classOf(charIter.nextChar())) {
- case CharUtilities.XMLWHITESPACE:
- /* Some kind of whitespace character, except linefeed. */
- boolean bIgnore = false;
-
- switch (wsTreatment) {
- case Constants.IGNORE:
- bIgnore = true;
- break;
- case Constants.IGNORE_IF_BEFORE_LINEFEED:
- bIgnore = lfCheck.nextIsLF();
- break;
- case Constants.IGNORE_IF_SURROUNDING_LINEFEED:
- bIgnore = (bPrevWasLF
- || lfCheck.nextIsLF());
- break;
- case Constants.IGNORE_IF_AFTER_LINEFEED:
- bIgnore = bPrevWasLF;
- break;
- }
- // Handle ignore
- if (bIgnore) {
- charIter.remove();
- } else if (bWScollapse) {
- if (bInWS || (lfTreatment == Constants.PRESERVE
- && (bPrevWasLF || lfCheck.nextIsLF()))) {
- charIter.remove();
- } else {
- bInWS = true;
- }
- }
- break;
-
- case CharUtilities.LINEFEED:
- /* A linefeed */
- lfCheck.reset();
- bPrevWasLF = true; // for following whitespace
-
- switch (lfTreatment) {
- case Constants.IGNORE:
- charIter.remove();
- break;
- case Constants.TREAT_AS_SPACE:
- if (bInWS) {
- // only if bWScollapse=true
- charIter.remove();
- } else {
- if (bWScollapse) {
- bInWS = true;
- }
- charIter.replaceChar('\u0020');
- }
- break;
- case Constants.TREAT_AS_ZERO_WIDTH_SPACE:
- charIter.replaceChar('\u200b');
- // Fall through: this isn't XML whitespace
- case Constants.PRESERVE:
- bInWS = false;
- break;
- }
- break;
-
- case CharUtilities.EOT:
- // A "boundary" objects such as non-character inline
- // or nested block object was encountered.
- // If any whitespace run in progress, finish it.
- // FALL THROUGH
-
- case CharUtilities.UCWHITESPACE: // Non XML-whitespace
- case CharUtilities.NONWHITESPACE:
- /* Any other character */
- bInWS = bPrevWasLF = false;
- lfCheck.reset();
- break;
- }
- }
- firstInlineChild = null;
- }
- }
-
- private static class LFchecker {
- private boolean bNextIsLF = false;
- private RecursiveCharIterator charIter;
-
- LFchecker(RecursiveCharIterator charIter) {
- this.charIter = charIter;
- }
-
- boolean nextIsLF() {
- if (bNextIsLF == false) {
- CharIterator lfIter = charIter.mark();
- while (lfIter.hasNext()) {
- char c = lfIter.nextChar();
- if (c == '\n') {
- bNextIsLF = true;
- break;
- } else if (CharUtilities.classOf(c)
- != CharUtilities.XMLWHITESPACE) {
- break;
- }
- }
- }
- return bNextIsLF;
- }
-
- void reset() {
- bNextIsLF = false;
- }
- }
-}
-
diff --git a/src/org/apache/fop/fo/flow/BlockContainer.java b/src/org/apache/fop/fo/flow/BlockContainer.java
deleted file mode 100644
index 9d6decfde..000000000
--- a/src/org/apache/fop/fo/flow/BlockContainer.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.layout.AbsolutePositionProps;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.MarginProps;
-import org.apache.fop.layoutmgr.BlockContainerLayoutManager;
-
-import org.xml.sax.Attributes;
-
-import java.util.List;
-
-public class BlockContainer extends FObj {
-
- private ColorType backgroundColor;
- private int position;
-
- private int top;
- private int bottom;
- private int left;
- private int right;
- private int width;
- private int height;
-
- private int span;
-
- public BlockContainer(FONode parent) {
- super(parent);
- }
-
- public void handleAttrs(Attributes attlist) throws FOPException {
- super.handleAttrs(attlist);
- this.span = this.properties.get("span").getEnum();
- setupID();
- }
-
- public void addLayoutManager(List list) {
- BlockContainerLayoutManager blm = new BlockContainerLayoutManager();
- blm.setUserAgent(getUserAgent());
- blm.setFObj(this);
- blm.setOverflow(properties.get("overflow").getEnum());
- list.add(blm);
- }
-
- public void setup() {
-
- // Common Accessibility Properties
- AbsolutePositionProps mAbsProps = propMgr.getAbsolutePositionProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Margin-Block Properties
- MarginProps mProps = propMgr.getMarginProps();
-
- // this.properties.get("block-progression-dimension");
- // this.properties.get("break-after");
- // this.properties.get("break-before");
- // this.properties.get("clip");
- // this.properties.get("display-align");
- // this.properties.get("height");
- setupID();
- // this.properties.get("keep-together");
- // this.properties.get("keep-with-next");
- // this.properties.get("keep-with-previous");
- // this.properties.get("overflow");
- // this.properties.get("reference-orientation");
- // this.properties.get("span");
- // this.properties.get("width");
- // this.properties.get("writing-mode");
-
- this.backgroundColor =
- this.properties.get("background-color").getColorType();
-
- this.width = this.properties.get("width").getLength().getValue();
- this.height = this.properties.get("height").getLength().getValue();
- span = this.properties.get("span").getEnum();
-
- }
-
- public boolean generatesReferenceAreas() {
- return true;
- }
-
- public boolean generatesInlineAreas() {
- return false;
- }
-
- protected boolean containsMarkers() {
- return true;
- }
-
- public int getSpan() {
- return this.span;
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/flow/Character.java b/src/org/apache/fop/fo/flow/Character.java
deleted file mode 100644
index 8035f079c..000000000
--- a/src/org/apache/fop/fo/flow/Character.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// Java
-import java.util.List;
-
-// FOP
-import org.apache.fop.fo.CharIterator;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.fo.OneCharIterator;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.HyphenationProps;
-import org.apache.fop.layout.MarginInlineProps;
-import org.apache.fop.layout.RelativePositionProps;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.area.inline.InlineArea;
-import org.apache.fop.layoutmgr.LeafNodeLayoutManager;
-
-/**
- * This class represents the flow object 'fo:character'. Its use is defined by
- * the spec: "The fo:character flow object represents a character that is mapped to
- * a glyph for presentation. It is an atomic unit to the formatter.
- * When the result tree is interpreted as a tree of formatting objects,
- * a character in the result tree is treated as if it were an empty
- * element of type fo:character with a character attribute
- * equal to the Unicode representation of the character.
- * The semantics of an "auto" value for character properties, which is
- * typically their initial value, are based on the Unicode codepoint.
- * Overrides may be specified in an implementation-specific manner." (6.6.3)
- *
- */
-public class Character extends FObj {
-
- public static final int OK = 0;
- public static final int DOESNOT_FIT = 1;
-
- private char characterValue;
-
- public Character(FONode parent) {
- super(parent);
- }
-
- public void addLayoutManager(List list) {
- InlineArea inline = getInlineArea();
- if (inline != null) {
- LeafNodeLayoutManager lm = new LeafNodeLayoutManager();
- lm.setUserAgent(getUserAgent());
- lm.setFObj(this);
- lm.setCurrentArea(inline);
- list.add(lm);
- }
- }
-
- protected InlineArea getInlineArea() {
- String str = this.properties.get("character").getString();
- if (str.length() == 1) {
- org.apache.fop.area.inline.Character ch =
- new org.apache.fop.area.inline.Character(
- str.charAt(0));
- return ch;
- }
- return null;
- }
-
- public void setup() throws FOPException {
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Font Properties
- //this.fontState = propMgr.getFontState(area.getFontInfo());
-
- // Common Hyphenation Properties
- HyphenationProps mHyphProps = propMgr.getHyphenationProps();
-
- // Common Margin Properties-Inline
- MarginInlineProps mProps = propMgr.getMarginInlineProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps =
- propMgr.getRelativePositionProps();
-
- // this.properties.get("alignment-adjust");
- // this.properties.get("treat-as-word-space");
- // this.properties.get("alignment-baseline");
- // this.properties.get("baseline-shift");
- // this.properties.get("character");
- // this.properties.get("color");
- // this.properties.get("dominant-baseline");
- // this.properties.get("text-depth");
- // this.properties.get("text-altitude");
- // this.properties.get("glyph-orientation-horizontal");
- // this.properties.get("glyph-orientation-vertical");
- setupID();
- // this.properties.get("keep-with-next");
- // this.properties.get("keep-with-previous");
- // this.properties.get("letter-spacing");
- // this.properties.get("line-height");
- // this.properties.get("line-height-shift-adjustment");
- // this.properties.get("score-spaces");
- // this.properties.get("suppress-at-line-break");
- // this.properties.get("text-decoration");
- // this.properties.get("text-shadow");
- // this.properties.get("text-transform");
- // this.properties.get("word-spacing");
- }
-
- public CharIterator charIterator() {
- return new OneCharIterator(characterValue);
- // But what it the character is ignored due to white space handling?
- }
-
-
-}
diff --git a/src/org/apache/fop/fo/flow/ExternalGraphic.java b/src/org/apache/fop/fo/flow/ExternalGraphic.java
deleted file mode 100644
index 1d105b342..000000000
--- a/src/org/apache/fop/fo/flow/ExternalGraphic.java
+++ /dev/null
@@ -1,321 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.MarginInlineProps;
-import org.apache.fop.layout.RelativePositionProps;
-import org.apache.fop.fo.properties.TextAlign;
-import org.apache.fop.fo.properties.Overflow;
-import org.apache.fop.fo.properties.DisplayAlign;
-import org.apache.fop.fo.properties.Scaling;
-import org.apache.fop.image.ImageFactory;
-import org.apache.fop.image.FopImage;
-import org.apache.fop.area.inline.InlineArea;
-import org.apache.fop.layoutmgr.LeafNodeLayoutManager;
-import org.apache.fop.layoutmgr.TraitSetter;
-import org.apache.fop.area.inline.Image;
-import org.apache.fop.area.inline.Viewport;
-import org.apache.fop.datatypes.Length;
-
-// Java
-import java.util.List;
-import java.awt.geom.Rectangle2D;
-
-/**
- * External graphic formatting object.
- * This FO node handles the external graphic. It creates an image
- * inline area that can be added to the area tree.
- */
-public class ExternalGraphic extends FObj {
- private String url;
- private int breakAfter;
- private int breakBefore;
- private int align;
- private int startIndent;
- private int endIndent;
- private int spaceBefore;
- private int spaceAfter;
- private int viewWidth = -1;
- private int viewHeight = -1;
- private boolean clip = false;
- private Rectangle2D placement = null;
-
- /**
- * Create a new External graphic node.
- *
- * @param parent the parent of this node
- */
- public ExternalGraphic(FONode parent) {
- super(parent);
- }
-
- /**
- * Add the layout manager for this to the list.
- * This adds a leafnode layout manager that deals with the
- * created viewport/image area.
- *
- * @param list the list to add the layout manager to
- */
- public void addLayoutManager(List list) {
- InlineArea area = getInlineArea();
- if (area != null) {
- setupID();
- LeafNodeLayoutManager lm = new LeafNodeLayoutManager();
- lm.setUserAgent(getUserAgent());
- lm.setFObj(this);
- lm.setCurrentArea(area);
- lm.setAlignment(properties.get("vertical-align").getEnum());
- lm.setLead(viewHeight);
- list.add(lm);
- }
- }
-
- /**
- * Get the inline area for this external grpahic.
- * This creates the image area and puts it inside a viewport.
- *
- * @return the viewport containing the image area
- */
- protected InlineArea getInlineArea() {
- setup();
- if (url == null) {
- return null;
- }
- Image imArea = new Image(url);
- Viewport vp = new Viewport(imArea);
- vp.setWidth(viewWidth);
- vp.setHeight(viewHeight);
- vp.setClip(clip);
- vp.setContentPosition(placement);
- vp.setOffset(0);
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
- TraitSetter.addBorders(vp, bap);
- TraitSetter.addBackground(vp, bProps);
-
- return vp;
- }
-
- /**
- * Setup this image.
- * This gets the sizes for the image and the dimensions and clipping.
- */
- public void setup() {
- url = this.properties.get("src").getString();
- if (url == null) {
- return;
- }
- url = ImageFactory.getURL(url);
-
- // assume lr-tb for now
- Length ipd = properties.get("inline-progression-dimension.optimum").getLength();
- if (!ipd.isAuto()) {
- viewWidth = ipd.getValue();
- } else {
- ipd = properties.get("width").getLength();
- if (!ipd.isAuto()) {
- viewWidth = ipd.getValue();
- }
- }
- Length bpd = properties.get("block-progression-dimension.optimum").getLength();
- if (!bpd.isAuto()) {
- viewHeight = bpd.getValue();
- } else {
- bpd = properties.get("height").getLength();
- if (!bpd.isAuto()) {
- viewHeight = bpd.getValue();
- }
- }
-
- // if we need to load this image to get its size
- FopImage fopimage = null;
-
- int cwidth = -1;
- int cheight = -1;
- Length ch = properties.get("content-height").getLength();
- if (!ch.isAuto()) {
- /*if (ch.scaleToFit()) {
- if (viewHeight != -1) {
- cheight = viewHeight;
- }
- } else {*/
- cheight = ch.getValue();
- }
- Length cw = properties.get("content-width").getLength();
- if (!cw.isAuto()) {
- /*if (cw.scaleToFit()) {
- if (viewWidth != -1) {
- cwidth = viewWidth;
- }
- } else {*/
- cwidth = cw.getValue();
- }
-
- int scaling = properties.get("scaling").getEnum();
- if ((scaling == Scaling.UNIFORM) || (cwidth == -1) || cheight == -1) {
- ImageFactory fact = ImageFactory.getInstance();
- fopimage = fact.getImage(url, userAgent);
- if (fopimage == null) {
- // error
- url = null;
- return;
- }
- // load dimensions
- if (!fopimage.load(FopImage.DIMENSIONS, userAgent)) {
- // error
- url = null;
- return;
- }
- if (cwidth == -1) {
- cwidth = (int)(fopimage.getWidth() * 1000);
- }
- if (cheight == -1) {
- cheight = (int)(fopimage.getHeight() * 1000);
- }
- if (scaling == Scaling.UNIFORM) {
- // adjust the larger
- double rat1 = cwidth / (fopimage.getWidth() * 1000f);
- double rat2 = cheight / (fopimage.getHeight() * 1000f);
- if (rat1 < rat2) {
- // reduce cheight
- cheight = (int)(rat1 * fopimage.getHeight() * 1000);
- } else {
- cwidth = (int)(rat2 * fopimage.getWidth() * 1000);
- }
- }
- }
-
- if (viewWidth == -1) {
- viewWidth = cwidth;
- }
- if (viewHeight == -1) {
- viewHeight = cheight;
- }
-
- if (cwidth > viewWidth || cheight > viewHeight) {
- int overflow = properties.get("overflow").getEnum();
- if (overflow == Overflow.HIDDEN) {
- clip = true;
- } else if (overflow == Overflow.ERROR_IF_OVERFLOW) {
- getLogger().error("Image: " + url
- + " overflows the viewport, clipping to viewport");
- clip = true;
- }
- }
-
- int xoffset = 0;
- int yoffset = 0;
- int da = properties.get("display-align").getEnum();
- switch(da) {
- case DisplayAlign.BEFORE:
- break;
- case DisplayAlign.AFTER:
- yoffset = viewHeight - cheight;
- break;
- case DisplayAlign.CENTER:
- yoffset = (viewHeight - cheight) / 2;
- break;
- case DisplayAlign.AUTO:
- default:
- break;
- }
-
- int ta = properties.get("text-align").getEnum();
- switch(ta) {
- case TextAlign.CENTER:
- xoffset = (viewWidth - cwidth) / 2;
- break;
- case TextAlign.END:
- xoffset = viewWidth - cwidth;
- break;
- case TextAlign.START:
- break;
- case TextAlign.JUSTIFY:
- default:
- break;
- }
- placement = new Rectangle2D.Float(xoffset, yoffset, cwidth, cheight);
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Margin Properties-Inline
- MarginInlineProps mProps = propMgr.getMarginInlineProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
- // this.properties.get("alignment-adjust");
- // this.properties.get("alignment-baseline");
- // this.properties.get("baseline-shift");
- // this.properties.get("content-type");
- // this.properties.get("dominant-baseline");
- // this.properties.get("keep-with-next");
- // this.properties.get("keep-with-previous");
- // this.properties.get("line-height");
- // this.properties.get("line-height-shift-adjustment");
- // this.properties.get("scaling-method");
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/flow/Float.java b/src/org/apache/fop/fo/flow/Float.java
deleted file mode 100644
index 3b94a0442..000000000
--- a/src/org/apache/fop/fo/flow/Float.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.ToBeImplementedElement;
-
-/**
- * fo:float element.
- */
-public class Float extends ToBeImplementedElement {
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- public Float(FONode parent) {
- super(parent);
- this.name = "fo:float";
- }
-
- public void setup() {
-
- // this.properties.get("float");
- // this.properties.get("clear");
-
- }
-}
diff --git a/src/org/apache/fop/fo/flow/Flow.java b/src/org/apache/fop/fo/flow/Flow.java
deleted file mode 100644
index 21e9d3710..000000000
--- a/src/org/apache/fop/fo/flow/Flow.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// Java
-import java.util.ArrayList;
-import java.util.List;
-
-// XML
-import org.xml.sax.Attributes;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.fo.pagination.PageSequence;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.layoutmgr.FlowLayoutManager;
-
-public class Flow extends FObj {
-
- /**
- * PageSequence container
- */
- private PageSequence pageSequence;
-
- /**
- * ArrayList to store snapshot
- */
- private ArrayList markerSnapshot;
-
- /**
- * flow-name attribute
- */
- private String flowName;
-
- /**
- * Content-width of current column area during layout
- */
- private int contentWidth;
-
-
- public Flow(FONode parent) {
- super(parent);
- }
-
- public void handleAttrs(Attributes attlist) throws FOPException {
- super.handleAttrs(attlist);
- if (parent.getName().equals("fo:page-sequence")) {
- this.pageSequence = (PageSequence) parent;
- } else {
- throw new FOPException("flow must be child of "
- + "page-sequence, not " + parent.getName());
- }
- // according to communication from Paul Grosso (XSL-List,
- // 001228, Number 406), confusion in spec section 6.4.5 about
- // multiplicity of fo:flow in XSL 1.0 is cleared up - one (1)
- // fo:flow per fo:page-sequence only.
-
- /* if (pageSequence.isFlowSet()) {
- if (this.name.equals("fo:flow")) {
- throw new FOPException("Only a single fo:flow permitted"
- + " per fo:page-sequence");
- } else {
- throw new FOPException(this.name
- + " not allowed after fo:flow");
- }
- }
- */
- setFlowName(getProperty("flow-name").getString());
- // Now done in addChild of page-sequence
- //pageSequence.addFlow(this);
-
- structHandler.startFlow(this);
- }
-
- public void end() {
- structHandler.endFlow(this);
- }
-
- protected void setFlowName(String name) throws FOPException {
- if (name == null || name.equals("")) {
- throw new FOPException("A 'flow-name' is required for "
- + getName());
- } else {
- flowName = name;
- }
- }
-
- public String getFlowName() {
- return flowName;
- }
-
- protected void setContentWidth(int contentWidth) {
- this.contentWidth = contentWidth;
- }
- /**
- * Return the content width of this flow (really of the region
- * in which it is flowing).
- */
- public int getContentWidth() {
- return this.contentWidth;
- }
-
- public boolean generatesReferenceAreas() {
- return true;
- }
-
- public void addLayoutManager(List list) {
- FlowLayoutManager lm = new FlowLayoutManager();
- lm.setUserAgent(getUserAgent());
- lm.setFObj(this);
- list.add(lm);
- }
-
-}
diff --git a/src/org/apache/fop/fo/flow/Footnote.java b/src/org/apache/fop/fo/flow/Footnote.java
deleted file mode 100644
index 3e0f4187a..000000000
--- a/src/org/apache/fop/fo/flow/Footnote.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// Java
-import java.util.List;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-
-public class Footnote extends FObj {
-
- private Inline inlineFO = null;
- private FootnoteBody body;
-
- public Footnote(FONode parent) {
- super(parent);
- }
-
- public void addLayoutManager(List lms) {
- // add inlines layout manager
- if (inlineFO == null) {
- getLogger().error("inline required in footnote");
- return;
- }
- inlineFO.addLayoutManager(lms);
- }
-
- public void addChild(FONode child) {
- String name = child.getName();
- if ("fo:inline".equals(name)) {
- inlineFO = (Inline)child;
- } else if ("fo:footnote-body".equals(name)) {
- body = (FootnoteBody)child;
- } else {
- getLogger().error("invalid child of footnote: " + name);
- }
- }
-}
-
diff --git a/src/org/apache/fop/fo/flow/FootnoteBody.java b/src/org/apache/fop/fo/flow/FootnoteBody.java
deleted file mode 100644
index e0fe24e61..000000000
--- a/src/org/apache/fop/fo/flow/FootnoteBody.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-
-public class FootnoteBody extends FObj {
-
- private int align;
- private int alignLast;
- private int lineHeight;
- private int startIndent;
- private int endIndent;
- private int textIndent;
-
- public FootnoteBody(FONode parent) {
- super(parent);
- }
-
-}
diff --git a/src/org/apache/fop/fo/flow/InitialPropertySet.java b/src/org/apache/fop/fo/flow/InitialPropertySet.java
deleted file mode 100644
index 8b6dcd6af..000000000
--- a/src/org/apache/fop/fo/flow/InitialPropertySet.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.ToBeImplementedElement;
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.RelativePositionProps;
-
-/**
- * fo:initial-property-set element.
- */
-public class InitialPropertySet extends ToBeImplementedElement {
-
- public InitialPropertySet(FONode parent) {
- super(parent);
- }
-
- public void setup() {
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Font Properties
- //this.fontState = propMgr.getFontState(area.getFontInfo());
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
- // this.properties.get("color");
- setupID();
- // this.properties.get("letter-spacing");
- // this.properties.get("line-height");
- // this.properties.get("line-height-shift-adjustment");
- // this.properties.get("score-spaces");
- // this.properties.get("text-decoration");
- // this.properties.get("text-shadow");
- // this.properties.get("text-transform");
- // this.properties.get("word-spacing");
-
- }
-}
diff --git a/src/org/apache/fop/fo/flow/Inline.java b/src/org/apache/fop/fo/flow/Inline.java
deleted file mode 100644
index 673b5308d..000000000
--- a/src/org/apache/fop/fo/flow/Inline.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// XML
-import org.xml.sax.Attributes;
-
-// FOP
-import org.apache.fop.fo.CharIterator;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObjMixed;
-import org.apache.fop.fo.InlineCharIterator;
-import org.apache.fop.fo.properties.TextDecoration;
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.MarginInlineProps;
-import org.apache.fop.layout.RelativePositionProps;
-import org.apache.fop.apps.FOPException;
-
-public class Inline extends FObjMixed {
-
- // Textdecoration
- protected boolean underlined = false;
- protected boolean overlined = false;
- protected boolean lineThrough = false;
-
-
- public Inline(FONode parent) {
- super(parent);
- }
-
- public void handleAttrs(Attributes attlist) throws FOPException {
- super.handleAttrs(attlist);
-
- if (parent.getName().equals("fo:flow")) {
- throw new FOPException("inline formatting objects cannot"
- + " be directly under flow");
- }
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Font Properties
- //this.fontState = propMgr.getFontState(area.getFontInfo());
-
- // Common Margin Properties-Inline
- MarginInlineProps mProps = propMgr.getMarginInlineProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
- // this.properties.get("alignment-adjust");
- // this.properties.get("alignment-baseline");
- // this.properties.get("baseline-shift");
- // this.properties.get("color");
- // this.properties.get("dominant-baseline");
- setupID();
- // this.properties.get("keep-together");
- // this.properties.get("keep-with-next");
- // this.properties.get("keep-with-previous");
- // this.properties.get("line-height");
- // this.properties.get("line-height-shift-adjustment");
- // this.properties.get("text-devoration");
- // this.properties.get("visibility");
- // this.properties.get("z-index");
-
- int textDecoration = this.properties.get("text-decoration").getEnum();
-
- if (textDecoration == TextDecoration.UNDERLINE) {
- this.underlined = true;
- }
-
- if (textDecoration == TextDecoration.OVERLINE) {
- this.overlined = true;
- }
-
- if (textDecoration == TextDecoration.LINE_THROUGH) {
- this.lineThrough = true;
- }
- }
-
- protected boolean containsMarkers() {
- return true;
- }
-
- public CharIterator charIterator() {
- return new InlineCharIterator(this, propMgr.getBorderAndPadding());
- }
-
-}
diff --git a/src/org/apache/fop/fo/flow/InlineContainer.java b/src/org/apache/fop/fo/flow/InlineContainer.java
deleted file mode 100644
index 912f141b1..000000000
--- a/src/org/apache/fop/fo/flow/InlineContainer.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// Java
-import java.util.List;
-import java.util.ArrayList;
-
-// XML
-import org.xml.sax.Attributes;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.MarginInlineProps;
-import org.apache.fop.layout.RelativePositionProps;
-import org.apache.fop.layoutmgr.LayoutManager;
-import org.apache.fop.layoutmgr.LeafNodeLayoutManager;
-import org.apache.fop.area.inline.InlineArea;
-
-/**
- * fo:inline-container element.
- */
-public class InlineContainer extends FObj {
-
- public InlineContainer(FONode parent) {
- super(parent);
- }
-
- public void addLayoutManager(List lms) {
- ArrayList childList = new ArrayList();
- super.addLayoutManager(childList);
- LayoutManager lm = new ICLayoutManager(childList);
- lm.setUserAgent(getUserAgent());
- lm.setFObj(this);
- lms.add(lm);
- }
-
- public void handleAttrs(Attributes attlist) throws FOPException {
- super.handleAttrs(attlist);
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Margin Properties-Inline
- MarginInlineProps mProps = propMgr.getMarginInlineProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps =
- propMgr.getRelativePositionProps();
-
- // this.properties.get("alignment-adjust");
- // this.properties.get("alignment-baseline");
- // this.properties.get("baseline-shift");
- // this.properties.get("block-progression-dimension");
- // this.properties.get("clip");
- // this.properties.get("display-align");
- // this.properties.get("dominant-baseline");
- // this.properties.get("height");
- setupID();
- // this.properties.get("inline-progression-dimension");
- // this.properties.get("keep-together");
- // this.properties.get("keep-with-next");
- // this.properties.get("keep-with-previous");
- // this.properties.get("line-height");
- // this.properties.get("line-height-shift-adjustment");
- // this.properties.get("overflow");
- // this.properties.get("reference-orientation");
- // this.properties.get("width");
- // this.properties.get("writing-mode");
- }
-
- protected boolean containsMarkers() {
- return true;
- }
-
- /**
- * This creates a single inline container area after
- * laying out the child block areas. All footnotes, floats
- * and id areas are maintained for later retrieval.
- */
- class ICLayoutManager extends LeafNodeLayoutManager {
-
- private List childrenLM;
-
- ICLayoutManager(List childLM) {
- childrenLM = childLM;
- }
-
- public InlineArea get(int index) {
- return null;
- }
- }
-}
diff --git a/src/org/apache/fop/fo/flow/InstreamForeignObject.java b/src/org/apache/fop/fo/flow/InstreamForeignObject.java
deleted file mode 100644
index 12636920e..000000000
--- a/src/org/apache/fop/fo/flow/InstreamForeignObject.java
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import java.awt.geom.Point2D;
-import java.awt.geom.Rectangle2D;
-import java.util.List;
-
-import org.apache.fop.area.inline.ForeignObject;
-import org.apache.fop.area.inline.Viewport;
-import org.apache.fop.datatypes.Length;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.fo.XMLObj;
-import org.apache.fop.fo.properties.DisplayAlign;
-import org.apache.fop.fo.properties.Overflow;
-import org.apache.fop.fo.properties.Scaling;
-import org.apache.fop.fo.properties.TextAlign;
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.MarginInlineProps;
-import org.apache.fop.layout.RelativePositionProps;
-import org.apache.fop.layoutmgr.LeafNodeLayoutManager;
-import org.w3c.dom.Document;
-
-/**
- * The instream-foreign-object flow formatting object.
- * This is an atomic inline object that contains
- * xml data.
- */
-public class InstreamForeignObject extends FObj {
-
- private Viewport areaCurrent;
-
- /**
- * constructs an instream-foreign-object object (called by Maker).
- *
- * @param parent the parent formatting object
- */
- public InstreamForeignObject(FONode parent) {
- super(parent);
- }
-
- /**
- * Add the layout manager for this into the list.
- * @see org.apache.fop.fo.FObj#addLayoutManager(List)
- */
- public void addLayoutManager(List list) {
- areaCurrent = getInlineArea();
- if (areaCurrent != null) {
- LeafNodeLayoutManager lm = new LeafNodeLayoutManager();
- lm.setUserAgent(getUserAgent());
- lm.setFObj(this);
- lm.setCurrentArea(areaCurrent);
- lm.setAlignment(properties.get("vertical-align").getEnum());
- lm.setLead(areaCurrent.getHeight());
- list.add(lm);
- }
- }
-
- /**
- * Get the inline area created by this element.
- *
- * @return the viewport inline area
- */
- protected Viewport getInlineArea() {
- if (children == null) {
- return areaCurrent;
- }
-
- if (this.children.size() != 1) {
- // error
- return null;
- }
- FONode fo = (FONode)children.get(0);
- if (!(fo instanceof XMLObj)) {
- // error
- return null;
- }
- XMLObj child = (XMLObj)fo;
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Margin Properties-Inline
- MarginInlineProps mProps = propMgr.getMarginInlineProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
- // viewport size is determined by block-progression-dimension
- // and inline-progression-dimension
-
- // if replaced then use height then ignore block-progression-dimension
- //int h = this.properties.get("height").getLength().mvalue();
-
- // use specified line-height then ignore dimension in height direction
- boolean hasLH = false;//properties.get("line-height").getSpecifiedValue() != null;
-
- Length len;
-
- int bpd = -1;
- int ipd = -1;
- boolean bpdauto = false;
- if (hasLH) {
- bpd = properties.get("line-height").getLength().getValue();
- } else {
- // this property does not apply when the line-height applies
- // isn't the block-progression-dimension always in the same
- // direction as the line height?
- len = properties.get("block-progression-dimension.optimum").getLength();
- if (!len.isAuto()) {
- bpd = len.getValue();
- } else {
- len = properties.get("height").getLength();
- if (!len.isAuto()) {
- bpd = len.getValue();
- }
- }
- }
-
- len = properties.get("inline-progression-dimension.optimum").getLength();
- if (!len.isAuto()) {
- ipd = len.getValue();
- } else {
- len = properties.get("width").getLength();
- if (!len.isAuto()) {
- ipd = len.getValue();
- }
- }
-
- // if auto then use the intrinsic size of the content scaled
- // to the content-height and content-width
- int cwidth = -1;
- int cheight = -1;
- len = properties.get("content-width").getLength();
- if (!len.isAuto()) {
- /*if(len.scaleToFit()) {
- if(ipd != -1) {
- cwidth = ipd;
- }
- } else {*/
- cwidth = len.getValue();
- }
- len = properties.get("content-height").getLength();
- if (!len.isAuto()) {
- /*if(len.scaleToFit()) {
- if(bpd != -1) {
- cwidth = bpd;
- }
- } else {*/
- cheight = len.getValue();
- }
-
- Point2D csize = new Point2D.Float(cwidth == -1 ? -1 : cwidth / 1000f,
- cheight == -1 ? -1 : cheight / 1000f);
- Point2D size = child.getDimension(csize);
- if (size == null) {
- // error
- return null;
- }
- if (cwidth == -1) {
- cwidth = (int)size.getX() * 1000;
- }
- if (cheight == -1) {
- cheight = (int)size.getY() * 1000;
- }
- int scaling = properties.get("scaling").getEnum();
- if (scaling == Scaling.UNIFORM) {
- // adjust the larger
- double rat1 = cwidth / (size.getX() * 1000f);
- double rat2 = cheight / (size.getY() * 1000f);
- if (rat1 < rat2) {
- // reduce cheight
- cheight = (int)(rat1 * size.getY() * 1000);
- } else {
- cwidth = (int)(rat2 * size.getX() * 1000);
- }
- }
-
- if (ipd == -1) {
- ipd = cwidth;
- }
- if (bpd == -1) {
- bpd = cheight;
- }
-
- boolean clip = false;
- if (cwidth > ipd || cheight > bpd) {
- int overflow = properties.get("overflow").getEnum();
- if (overflow == Overflow.HIDDEN) {
- clip = true;
- } else if (overflow == Overflow.ERROR_IF_OVERFLOW) {
- getLogger().error("Instream foreign object overflows the viewport: clipping");
- clip = true;
- }
- }
-
- int xoffset = 0;
- int yoffset = 0;
- int da = properties.get("display-align").getEnum();
- switch (da) {
- case DisplayAlign.BEFORE:
- break;
- case DisplayAlign.AFTER:
- yoffset = bpd - cheight;
- break;
- case DisplayAlign.CENTER:
- yoffset = (bpd - cheight) / 2;
- break;
- case DisplayAlign.AUTO:
- default:
- break;
- }
-
- int ta = properties.get("text-align").getEnum();
- switch (ta) {
- case TextAlign.CENTER:
- xoffset = (ipd - cwidth) / 2;
- break;
- case TextAlign.END:
- xoffset = ipd - cwidth;
- break;
- case TextAlign.START:
- break;
- case TextAlign.JUSTIFY:
- default:
- break;
- }
- Rectangle2D placement = new Rectangle2D.Float(xoffset, yoffset, cwidth, cheight);
-
- Document doc = child.getDocument();
- String ns = child.getDocumentNamespace();
-
- children = null;
- ForeignObject foreign = new ForeignObject(doc, ns);
-
- areaCurrent = new Viewport(foreign);
- areaCurrent.setWidth(ipd);
- areaCurrent.setHeight(bpd);
- areaCurrent.setContentPosition(placement);
- areaCurrent.setClip(clip);
- areaCurrent.setOffset(0);
-
- return areaCurrent;
- }
-
- /**
- * This flow object generates inline areas.
- * @see org.apache.fop.fo.FObj#generatesInlineAreas()
- * @return true
- */
- public boolean generatesInlineAreas() {
- return true;
- }
-
- /*
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Margin Properties-Inline
- MarginInlineProps mProps = propMgr.getMarginInlineProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
- // this.properties.get("alignment-adjust");
- // this.properties.get("alignment-baseline");
- // this.properties.get("baseline-shift");
- // this.properties.get("block-progression-dimension");
- // this.properties.get("content-height");
- // this.properties.get("content-type");
- // this.properties.get("content-width");
- // this.properties.get("display-align");
- // this.properties.get("dominant-baseline");
- // this.properties.get("height");
- setupID();
- // this.properties.get("inline-progression-dimension");
- // this.properties.get("keep-with-next");
- // this.properties.get("keep-with-previous");
- // this.properties.get("line-height");
- // this.properties.get("line-height-shift-adjustment");
- // this.properties.get("overflow");
- // this.properties.get("scaling");
- // this.properties.get("scaling-method");
- // this.properties.get("text-align");
- // this.properties.get("width");
-
- /* retrieve properties *
- int align = this.properties.get("text-align").getEnum();
- int valign = this.properties.get("vertical-align").getEnum();
- int overflow = this.properties.get("overflow").getEnum();
-
- this.breakBefore = this.properties.get("break-before").getEnum();
- this.breakAfter = this.properties.get("break-after").getEnum();
- this.width = this.properties.get("width").getLength().mvalue();
- this.height = this.properties.get("height").getLength().mvalue();
- this.contwidth =
- this.properties.get("content-width").getLength().mvalue();
- this.contheight =
- this.properties.get("content-height").getLength().mvalue();
- this.wauto = this.properties.get("width").getLength().isAuto();
- this.hauto = this.properties.get("height").getLength().isAuto();
- this.cwauto =
- this.properties.get("content-width").getLength().isAuto();
- this.chauto =
- this.properties.get("content-height").getLength().isAuto();
-
- this.startIndent =
- this.properties.get("start-indent").getLength().mvalue();
- this.endIndent =
- this.properties.get("end-indent").getLength().mvalue();
- this.spaceBefore =
- this.properties.get("space-before.optimum").getLength().mvalue();
- this.spaceAfter =
- this.properties.get("space-after.optimum").getLength().mvalue();
-
- this.scaling = this.properties.get("scaling").getEnum();
-
-*/
-}
diff --git a/src/org/apache/fop/fo/flow/Leader.java b/src/org/apache/fop/fo/flow/Leader.java
deleted file mode 100644
index 69705f7c5..000000000
--- a/src/org/apache/fop/fo/flow/Leader.java
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// Java
-import java.util.List;
-
-// FOP
-import org.apache.fop.apps.StructureHandler;
-import org.apache.fop.area.Trait;
-import org.apache.fop.area.inline.FilledArea;
-import org.apache.fop.area.inline.InlineArea;
-import org.apache.fop.area.inline.Space;
-import org.apache.fop.area.inline.Word;
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.datatypes.Length;
-import org.apache.fop.datatypes.PercentLength;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObjMixed;
-import org.apache.fop.fo.properties.LeaderPattern;
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.FontInfo;
-import org.apache.fop.layout.FontState;
-import org.apache.fop.layout.MarginInlineProps;
-import org.apache.fop.layout.RelativePositionProps;
-import org.apache.fop.layoutmgr.ContentLayoutManager;
-import org.apache.fop.layoutmgr.InlineStackingLayoutManager;
-import org.apache.fop.layoutmgr.LMiter;
-import org.apache.fop.layoutmgr.LayoutContext;
-import org.apache.fop.layoutmgr.LeafNodeLayoutManager;
-import org.apache.fop.layoutmgr.MinOptMax;
-import org.apache.fop.util.CharUtilities;
-
-/**
- * Implements fo:leader; main property of leader leader-pattern.
- * The following patterns are treated: rule, space, dots and use-content.
- */
-public class Leader extends FObjMixed {
-
- private int ruleStyle;
- private int ruleThickness;
- private int leaderPattern;
- private int patternWidth;
- protected FontInfo fontInfo = null;
- protected FontState fontState;
- protected InlineArea leaderArea = null;
-
- public Leader(FONode parent) {
- super(parent);
- }
-
- public void addLayoutManager(List list) {
- LeafNodeLayoutManager lm = new LeafNodeLayoutManager() {
- public InlineArea get(LayoutContext context) {
- return getInlineArea();
- }
-
- protected MinOptMax getAllocationIPD(int refIPD) {
- return getAllocIPD(refIPD);
- }
-
- /*protected void offsetArea(LayoutContext context) {
- if(leaderPattern == LeaderPattern.DOTS) {
- curArea.setOffset(context.getBaseline());
- }
- }*/
- };
- lm.setUserAgent(getUserAgent());
- lm.setFObj(this);
- lm.setAlignment(properties.get("leader-alignment").getEnum());
- list.add(lm);
- }
-
- protected InlineArea getInlineArea() {
- if (leaderArea == null) {
- createLeaderArea();
- }
- return leaderArea;
- }
-
- protected void createLeaderArea() {
- setup();
-
- if (leaderPattern == LeaderPattern.RULE) {
- org.apache.fop.area.inline.Leader leader = new org.apache.fop.area.inline.Leader();
-
- leader.setRuleStyle(ruleStyle);
- leader.setRuleThickness(ruleThickness);
-
- leaderArea = leader;
- } else if (leaderPattern == LeaderPattern.SPACE) {
- leaderArea = new Space();
- } else if (leaderPattern == LeaderPattern.DOTS) {
- Word w = new Word();
- char dot = '.'; // userAgent.getLeaderDotCharacter();
-
- w.setWord("" + dot);
- w.addTrait(Trait.FONT_NAME, fontState.getFontName());
- w.addTrait(Trait.FONT_SIZE,
- new Integer(fontState.getFontSize()));
- // set offset of dot within inline parent
- w.setOffset(fontState.getAscender());
- int width = CharUtilities.getCharWidth(dot, fontState);
- Space spacer = null;
- if (patternWidth > width) {
- spacer = new Space();
- spacer.setWidth(patternWidth - width);
- width = patternWidth;
- }
- FilledArea fa = new FilledArea();
- fa.setUnitWidth(width);
- fa.addChild(w);
- if (spacer != null) {
- fa.addChild(spacer);
- }
- fa.setHeight(fontState.getAscender());
-
- leaderArea = fa;
- } else if (leaderPattern == LeaderPattern.USECONTENT) {
- if (children == null) {
- getLogger().error("Leader use-content with no content");
- return;
- }
- InlineStackingLayoutManager lm;
- lm = new InlineStackingLayoutManager();
- lm.setUserAgent(getUserAgent());
- lm.setFObj(this);
- lm.setLMiter(new LMiter(children.listIterator()));
- lm.init();
-
- // get breaks then add areas to FilledArea
- FilledArea fa = new FilledArea();
-
- ContentLayoutManager clm = new ContentLayoutManager(fa);
- clm.setUserAgent(getUserAgent());
- lm.setParent(clm);
-
- clm.fillArea(lm);
- int width = clm.getStackingSize();
- Space spacer = null;
- if (patternWidth > width) {
- spacer = new Space();
- spacer.setWidth(patternWidth - width);
- width = patternWidth;
- }
- fa.setUnitWidth(width);
- if (spacer != null) {
- fa.addChild(spacer);
- }
- leaderArea = fa;
- }
- }
-
- public void setStructHandler(StructureHandler st) {
- super.setStructHandler(st);
- fontInfo = st.getFontInfo();
- }
-
- public void setup() {
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Font Properties
- this.fontState = propMgr.getFontState(fontInfo);
-
- // Common Margin Properties-Inline
- MarginInlineProps mProps = propMgr.getMarginInlineProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
- // this.properties.get("alignment-adjust");
- // this.properties.get("alignment-baseline");
- // this.properties.get("baseline-shift");
- // this.properties.get("color");
- // this.properties.get("dominant-baseline");
- // this.properties.get("text-depth");
- // this.properties.get("text-altitude");
- setupID();
- // this.properties.get("leader-alignment");
- // this.properties.get("leader-length");
- // this.properties.get("leader-pattern");
- // this.properties.get("leader-pattern-width");
- // this.properties.get("rule-style");
- // this.properties.get("rule-thickness");
- // this.properties.get("letter-spacing");
- // this.properties.get("line-height");
- // this.properties.get("line-height-shift-adjustment");
- // this.properties.get("text-shadow");
- // this.properties.get("visibility");
- // this.properties.get("word-spacing");
- // this.properties.get("z-index");
-
- // color properties
- ColorType c = this.properties.get("color").getColorType();
- float red = c.getRed();
- float green = c.getGreen();
- float blue = c.getBlue();
-
- // fo:leader specific properties
- // determines the pattern of leader; allowed values: space, rule,dots, use-content
- leaderPattern = this.properties.get("leader-pattern").getEnum();
- switch(leaderPattern) {
- case LeaderPattern.SPACE:
- // use Space
- break;
- case LeaderPattern.RULE:
- // the following properties only apply
- // for leader-pattern = "rule"
- ruleThickness =
- properties.get("rule-thickness").getLength().getValue();
- ruleStyle = properties.get("rule-style").getEnum();
- break;
- case LeaderPattern.DOTS:
- break;
- case LeaderPattern.USECONTENT:
- // use inline layout manager to create inline areas
- // add the inline parent multiple times until leader full
- break;
- }
-
- // if leaderPatternWidth = 0 = default = use-font-metric
- patternWidth =
- this.properties.get("leader-pattern-width").getLength().getValue();
-
- }
-
- protected MinOptMax getAllocIPD(int ipd) {
- // length of the leader
- int opt = getLength("leader-length.optimum", ipd);
- int min = getLength("leader-length.minimum", ipd);
- int max = getLength("leader-length.maximum", ipd);
-
- return new MinOptMax(min, opt, max);
- }
-
- protected int getLength(String prop, int dim) {
- int length;
- Length maxlength = properties.get(prop).getLength();
- if (maxlength instanceof PercentLength) {
- length = (int)(((PercentLength)maxlength).value()
- * dim);
- } else {
- length = maxlength.getValue();
- }
- return length;
- }
-}
-
diff --git a/src/org/apache/fop/fo/flow/ListBlock.java b/src/org/apache/fop/fo/flow/ListBlock.java
deleted file mode 100644
index 825475749..000000000
--- a/src/org/apache/fop/fo/flow/ListBlock.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// Java
-import java.util.List;
-
-// FOP
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.MarginProps;
-import org.apache.fop.layout.RelativePositionProps;
-import org.apache.fop.layoutmgr.list.ListBlockLayoutManager;
-
-public class ListBlock extends FObj {
-
- private int align;
- private int alignLast;
- private int breakBefore;
- private int breakAfter;
- private int lineHeight;
- private int startIndent;
- private int endIndent;
- private int spaceBefore;
- private int spaceAfter;
- private int spaceBetweenListRows = 0;
- private ColorType backgroundColor;
-
- public ListBlock(FONode parent) {
- super(parent);
- }
-
- public void addLayoutManager(List list) {
- ListBlockLayoutManager blm = new ListBlockLayoutManager();
- blm.setUserAgent(getUserAgent());
- blm.setFObj(this);
- list.add(blm);
- }
-
- public void setup() throws FOPException {
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Margin Properties-Block
- MarginProps mProps = propMgr.getMarginProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
- // this.properties.get("break-after");
- // this.properties.get("break-before");
- setupID();
- // this.properties.get("keep-together");
- // this.properties.get("keep-with-next");
- // this.properties.get("keep-with-previous");
- // this.properties.get("provisional-distance-between-starts");
- // this.properties.get("provisional-label-separation");
-
- this.align = this.properties.get("text-align").getEnum();
- this.alignLast = this.properties.get("text-align-last").getEnum();
- this.lineHeight =
- this.properties.get("line-height").getLength().getValue();
- this.startIndent =
- this.properties.get("start-indent").getLength().getValue();
- this.endIndent =
- this.properties.get("end-indent").getLength().getValue();
- this.spaceBefore =
- this.properties.get("space-before.optimum").getLength().getValue();
- this.spaceAfter =
- this.properties.get("space-after.optimum").getLength().getValue();
- this.spaceBetweenListRows = 0; // not used at present
- this.backgroundColor =
- this.properties.get("background-color").getColorType();
-
- }
-
- public boolean generatesInlineAreas() {
- return false;
- }
-
- protected boolean containsMarkers() {
- return true;
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/flow/ListItem.java b/src/org/apache/fop/fo/flow/ListItem.java
deleted file mode 100644
index 6d842759e..000000000
--- a/src/org/apache/fop/fo/flow/ListItem.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// Java
-import java.util.List;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.MarginProps;
-import org.apache.fop.layout.RelativePositionProps;
-import org.apache.fop.layoutmgr.list.ListItemLayoutManager;
-
-public class ListItem extends FObj {
-
- private ListItemLabel label = null;
- private ListItemBody body = null;
-
- private int align;
- private int alignLast;
- private int breakBefore;
- private int breakAfter;
- private int lineHeight;
- private int startIndent;
- private int endIndent;
- private int spaceBefore;
- private int spaceAfter;
-
- public ListItem(FONode parent) {
- super(parent);
- }
-
- public void addLayoutManager(List list) {
- if (label != null && body != null) {
- ListItemLayoutManager blm = new ListItemLayoutManager();
- blm.setUserAgent(getUserAgent());
- blm.setFObj(this);
- blm.setLabel(label.getItemLayoutManager());
- blm.setBody(body.getItemLayoutManager());
- list.add(blm);
- } else {
- getLogger().error("list-item requires list-item-label and list-item-body");
- }
- }
-
- public void setup() {
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Margin Properties-Block
- MarginProps mProps = propMgr.getMarginProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
- // this.properties.get("break-after");
- // this.properties.get("break-before");
- setupID();
- // this.properties.get("keep-together");
- // this.properties.get("keep-with-next");
- // this.properties.get("keep-with-previous");
- // this.properties.get("relative-align");
-
- this.align = this.properties.get("text-align").getEnum();
- this.alignLast = this.properties.get("text-align-last").getEnum();
- this.lineHeight =
- this.properties.get("line-height").getLength().getValue();
- this.spaceBefore =
- this.properties.get("space-before.optimum").getLength().getValue();
- this.spaceAfter =
- this.properties.get("space-after.optimum").getLength().getValue();
-
- }
-
- public void addChild(FONode child) {
- if ("fo:list-item-label".equals(child.getName())) {
- label = (ListItemLabel)child;
- } else if ("fo:list-item-body".equals(child.getName())) {
- body = (ListItemBody)child;
- } else if ("fo:marker".equals(child.getName())) {
- // marker
- } else {
- // error
- }
- }
-
- public boolean generatesInlineAreas() {
- return false;
- }
-
- protected boolean containsMarkers() {
- return true;
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/flow/ListItemBody.java b/src/org/apache/fop/fo/flow/ListItemBody.java
deleted file mode 100644
index 6584676f8..000000000
--- a/src/org/apache/fop/fo/flow/ListItemBody.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layoutmgr.list.Item;
-
-public class ListItemBody extends FObj {
-
- public ListItemBody(FONode parent) {
- super(parent);
- }
-
- public Item getItemLayoutManager() {
- Item item = new Item();
- item.setUserAgent(getUserAgent());
- item.setFObj(this);
- return item;
- }
-
- public void setup() {
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- setupID();
- // this.properties.get("keep-together");
-
- /*
- * For calculating the lineage - The fo:list-item-body formatting object
- * does not generate any areas. The fo:list-item-body formatting object
- * returns the sequence of areas created by concatenating the sequences
- * of areas returned by each of the children of the fo:list-item-body.
- */
-
- }
-
- protected boolean containsMarkers() {
- return true;
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/flow/ListItemLabel.java b/src/org/apache/fop/fo/flow/ListItemLabel.java
deleted file mode 100644
index a9f2477b2..000000000
--- a/src/org/apache/fop/fo/flow/ListItemLabel.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layoutmgr.list.Item;
-
-public class ListItemLabel extends FObj {
-
- public ListItemLabel(FONode parent) {
- super(parent);
- }
-
- public Item getItemLayoutManager() {
- Item itemLabel = new Item();
- itemLabel.setUserAgent(getUserAgent());
- itemLabel.setFObj(this);
- return itemLabel;
- }
-
- public void setup() {
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- setupID();
- // this.properties.get("keep-together");
-
- /*
- * For calculating the lineage - The fo:list-item-label formatting object
- * does not generate any areas. The fo:list-item-label formatting object
- * returns the sequence of areas created by concatenating the sequences
- * of areas returned by each of the children of the fo:list-item-label.
- */
-
- }
-
- protected boolean containsMarkers() {
- return true;
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/flow/Marker.java b/src/org/apache/fop/fo/flow/Marker.java
deleted file mode 100644
index f94d54140..000000000
--- a/src/org/apache/fop/fo/flow/Marker.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// XML
-import org.xml.sax.Attributes;
-
-// FOP
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObjMixed;
-
-/**
- * Marker formatting object.
- * This is the marker formatting object that handles merkers.
- * This attempts to add itself to the parent formatting object.
- */
-public class Marker extends FObjMixed {
-
- private String markerClassName;
-
- /**
- * Create a marker fo.
- *
- * @param parent the parent fo node
- */
- public Marker(FONode parent) {
- super(parent);
- }
-
- /**
- * Handle the attributes for this marker.
- * This gets the marker-class-name and attempts to add itself
- * to the parent formatting object.
- *
- * @param attlist the attribute list
- * @throws FOPException if there is an exception
- */
- public void handleAttrs(Attributes attlist) throws FOPException {
- super.handleAttrs(attlist);
-
- this.markerClassName =
- this.properties.get("marker-class-name").getString();
- }
-
- /**
- * @see org.apache.fop.fo.FONode#isMarker()
- */
- protected boolean isMarker() {
- return true;
- }
-
- /**
- * Get the marker class name for this marker.
- *
- * @return the marker class name
- */
- public String getMarkerClassName() {
- return markerClassName;
- }
-
-
-}
diff --git a/src/org/apache/fop/fo/flow/MultiCase.java b/src/org/apache/fop/fo/flow/MultiCase.java
deleted file mode 100644
index 2c092b1b2..000000000
--- a/src/org/apache/fop/fo/flow/MultiCase.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.ToBeImplementedElement;
-import org.apache.fop.layout.AccessibilityProps;
-
-/**
- * fo:multi-case element.
- */
-public class MultiCase extends ToBeImplementedElement {
-
- public MultiCase(FONode parent) {
- super(parent);
- }
-
- public void setup() {
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- setupID();
- // this.properties.get("starting-state");
- // this.properties.get("case-name");
- // this.properties.get("case-title");
-
- }
-}
diff --git a/src/org/apache/fop/fo/flow/MultiProperties.java b/src/org/apache/fop/fo/flow/MultiProperties.java
deleted file mode 100644
index 8486a210f..000000000
--- a/src/org/apache/fop/fo/flow/MultiProperties.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.ToBeImplementedElement;
-import org.apache.fop.layout.AccessibilityProps;
-
-/**
- * fo:multi-properties element.
- */
-public class MultiProperties extends ToBeImplementedElement {
-
- public MultiProperties(FONode parent) {
- super(parent);
- }
-
- public void setup() {
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- setupID();
-
- }
-}
diff --git a/src/org/apache/fop/fo/flow/MultiPropertySet.java b/src/org/apache/fop/fo/flow/MultiPropertySet.java
deleted file mode 100644
index 5677b76e7..000000000
--- a/src/org/apache/fop/fo/flow/MultiPropertySet.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.ToBeImplementedElement;
-
-/**
- * fo:multi-property-set element.
- */
-public class MultiPropertySet extends ToBeImplementedElement {
-
- public MultiPropertySet(FONode parent) {
- super(parent);
- }
-
- public void setup() {
-
- setupID();
- // this.properties.get("active-state");
-
- }
-}
diff --git a/src/org/apache/fop/fo/flow/MultiSwitch.java b/src/org/apache/fop/fo/flow/MultiSwitch.java
deleted file mode 100644
index a625a0ef3..000000000
--- a/src/org/apache/fop/fo/flow/MultiSwitch.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.ToBeImplementedElement;
-import org.apache.fop.layout.AccessibilityProps;
-
-/**
- * fo:multi-switch element.
- */
-public class MultiSwitch extends ToBeImplementedElement {
-
- public MultiSwitch(FONode parent) {
- super(parent);
- }
-
- public void setup() {
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // this.properties.get("auto-restore");
- setupID();
-
- }
-}
diff --git a/src/org/apache/fop/fo/flow/MultiToggle.java b/src/org/apache/fop/fo/flow/MultiToggle.java
deleted file mode 100644
index 41854bbcf..000000000
--- a/src/org/apache/fop/fo/flow/MultiToggle.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.ToBeImplementedElement;
-import org.apache.fop.layout.AccessibilityProps;
-
-/**
- * fo:multi-toggle element.
- */
-public class MultiToggle extends ToBeImplementedElement {
-
- public MultiToggle(FONode parent) {
- super(parent);
- }
-
- public void setup() {
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- setupID();
- // this.properties.get("switch-to");
-
- }
-}
diff --git a/src/org/apache/fop/fo/flow/PageNumber.java b/src/org/apache/fop/fo/flow/PageNumber.java
deleted file mode 100644
index 5bc4aae16..000000000
--- a/src/org/apache/fop/fo/flow/PageNumber.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// Java
-import java.util.List;
-
-// FOP
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.FontInfo;
-import org.apache.fop.layout.FontState;
-import org.apache.fop.layout.MarginInlineProps;
-import org.apache.fop.layout.RelativePositionProps;
-import org.apache.fop.layout.TextState;
-import org.apache.fop.util.CharUtilities;
-
-import org.apache.fop.apps.StructureHandler;
-import org.apache.fop.layoutmgr.LayoutManager;
-import org.apache.fop.layoutmgr.LeafNodeLayoutManager;
-import org.apache.fop.layoutmgr.LayoutContext;
-import org.apache.fop.area.inline.InlineArea;
-import org.apache.fop.area.inline.Word;
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.area.Trait;
-
-public class PageNumber extends FObj {
- protected FontInfo fontInfo = null;
- protected FontState fontState;
-
- private float red;
- private float green;
- private float blue;
- private int wrapOption;
- private int whiteSpaceCollapse;
- private TextState ts;
-
- public PageNumber(FONode parent) {
- super(parent);
- }
-
- public void setStructHandler(StructureHandler st) {
- super.setStructHandler(st);
- fontInfo = st.getFontInfo();
- }
-
- public void addLayoutManager(List lms) {
- setup();
- LayoutManager lm;
- lm = new LeafNodeLayoutManager() {
- public InlineArea get(LayoutContext context) {
- // get page string from parent, build area
- Word inline = new Word();
- String str = parentLM.getCurrentPageNumber();
- int width = 0;
- for (int count = 0; count < str.length(); count++) {
- width += CharUtilities.getCharWidth(
- str.charAt(count), fontState);
- }
- inline.setWord(str);
- inline.setIPD(width);
- inline.setHeight(fontState.getAscender()
- - fontState.getDescender());
- inline.setOffset(fontState.getAscender());
-
- inline.addTrait(Trait.FONT_NAME,
- fontState.getFontName());
- inline.addTrait(Trait.FONT_SIZE,
- new Integer(fontState.getFontSize()));
-
- return inline;
- }
-
- protected void offsetArea(LayoutContext context) {
- curArea.setOffset(context.getBaseline());
- }
- };
- lm.setUserAgent(getUserAgent());
- lm.setFObj(this);
- lms.add(lm);
- }
-
- public void setup() {
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Font Properties
- this.fontState = propMgr.getFontState(fontInfo);
-
- // Common Margin Properties-Inline
- MarginInlineProps mProps = propMgr.getMarginInlineProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps =
- propMgr.getRelativePositionProps();
-
- // this.properties.get("alignment-adjust");
- // this.properties.get("alignment-baseline");
- // this.properties.get("baseline-shift");
- // this.properties.get("dominant-baseline");
- setupID();
- // this.properties.get("keep-with-next");
- // this.properties.get("keep-with-previous");
- // this.properties.get("letter-spacing");
- // this.properties.get("line-height");
- // this.properties.get("line-height-shift-adjustment");
- // this.properties.get("score-spaces");
- // this.properties.get("text-decoration");
- // this.properties.get("text-shadow");
- // this.properties.get("text-transform");
- // this.properties.get("word-spacing");
-
- ColorType c = this.properties.get("color").getColorType();
- this.red = c.getRed();
- this.green = c.getGreen();
- this.blue = c.getBlue();
-
- this.wrapOption = this.properties.get("wrap-option").getEnum();
- this.whiteSpaceCollapse =
- this.properties.get("white-space-collapse").getEnum();
- ts = new TextState();
-
- }
-
-}
diff --git a/src/org/apache/fop/fo/flow/PageNumberCitation.java b/src/org/apache/fop/fo/flow/PageNumberCitation.java
deleted file mode 100644
index 71d5affde..000000000
--- a/src/org/apache/fop/fo/flow/PageNumberCitation.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// Java
-import java.util.List;
-
-// FOP
-import org.apache.fop.apps.StructureHandler;
-import org.apache.fop.area.PageViewport;
-import org.apache.fop.area.Resolveable;
-import org.apache.fop.area.Trait;
-import org.apache.fop.area.inline.InlineArea;
-import org.apache.fop.area.inline.UnresolvedPageNumber;
-import org.apache.fop.area.inline.Word;
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.FontInfo;
-import org.apache.fop.layout.FontState;
-import org.apache.fop.layout.MarginInlineProps;
-import org.apache.fop.layout.RelativePositionProps;
-import org.apache.fop.layout.TextState;
-import org.apache.fop.layoutmgr.LayoutContext;
-import org.apache.fop.layoutmgr.LayoutManager;
-import org.apache.fop.layoutmgr.LayoutProcessor;
-import org.apache.fop.layoutmgr.LeafNodeLayoutManager;
-import org.apache.fop.layoutmgr.PositionIterator;
-import org.apache.fop.util.CharUtilities;
-
-/**
- * Page number citation.
- * This inline fo is replaced with the text for a page number.
- * The page number used is the page that contains the start of the
- * block referenced with the ref-id attribute.
- */
-public class PageNumberCitation extends FObj {
- protected FontInfo fontInfo = null;
- protected FontState fontState;
-
- private float red;
- private float green;
- private float blue;
- private int wrapOption;
- private int whiteSpaceCollapse;
- private String pageNumber;
- private String refId;
- private TextState ts;
- private InlineArea inline = null;
- private boolean unresolved = false;
-
- public PageNumberCitation(FONode parent) {
- super(parent);
- }
-
- public void setStructHandler(StructureHandler st) {
- super.setStructHandler(st);
- fontInfo = st.getFontInfo();
- }
-
- public void addLayoutManager(List lms) {
- setup();
- LayoutManager lm;
- lm = new LeafNodeLayoutManager() {
- public InlineArea get(LayoutContext context) {
- return getInlineArea(parentLM);
- }
-
- public void addAreas(PositionIterator posIter,
- LayoutContext context) {
- super.addAreas(posIter, context);
- if (unresolved) {
- parentLM.addUnresolvedArea(refId,
- (Resolveable) inline);
- }
- }
-
- protected void offsetArea(LayoutContext context) {
- curArea.setOffset(context.getBaseline());
- }
- };
- lm.setUserAgent(getUserAgent());
- lm.setFObj(this);
- lms.add(lm);
- }
-
- // if id can be resolved then simply return a word, otherwise
- // return a resolveable area
- private InlineArea getInlineArea(LayoutProcessor parentLM) {
- if (refId.equals("")) {
- getLogger().error("page-number-citation must contain \"ref-id\"");
- return null;
- }
- PageViewport page = parentLM.resolveRefID(refId);
- if (page != null) {
- String str = page.getPageNumber();
- // get page string from parent, build area
- Word word = new Word();
- inline = word;
- int width = getStringWidth(str);
- word.setWord(str);
- inline.setIPD(width);
- inline.setHeight(fontState.getAscender()
- - fontState.getDescender());
- inline.setOffset(fontState.getAscender());
-
- inline.addTrait(Trait.FONT_NAME, fontState.getFontName());
- inline.addTrait(Trait.FONT_SIZE,
- new Integer(fontState.getFontSize()));
- unresolved = false;
- } else {
- unresolved = true;
- inline = new UnresolvedPageNumber(refId);
- String str = "MMM"; // reserve three spaces for page number
- int width = getStringWidth(str);
- inline.setIPD(width);
- inline.setHeight(fontState.getAscender()
- - fontState.getDescender());
- inline.setOffset(fontState.getAscender());
-
- inline.addTrait(Trait.FONT_NAME, fontState.getFontName());
- inline.addTrait(Trait.FONT_SIZE,
- new Integer(fontState.getFontSize()));
- }
- return inline;
- }
-
- protected int getStringWidth(String str) {
- int width = 0;
- for (int count = 0; count < str.length(); count++) {
- width += CharUtilities.getCharWidth(str.charAt(count),
- fontState);
- }
- return width;
- }
-
- public void setup() {
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Font Properties
- this.fontState = propMgr.getFontState(fontInfo);
-
- // Common Margin Properties-Inline
- MarginInlineProps mProps = propMgr.getMarginInlineProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps =
- propMgr.getRelativePositionProps();
-
- // this.properties.get("alignment-adjust");
- // this.properties.get("alignment-baseline");
- // this.properties.get("baseline-shift");
- // this.properties.get("dominant-baseline");
- setupID();
- // this.properties.get("keep-with-next");
- // this.properties.get("keep-with-previous");
- // this.properties.get("letter-spacing");
- // this.properties.get("line-height");
- // this.properties.get("line-height-shift-adjustment");
- // this.properties.get("ref-id");
- // this.properties.get("score-spaces");
- // this.properties.get("text-decoration");
- // this.properties.get("text-shadow");
- // this.properties.get("text-transform");
- // this.properties.get("word-spacing");
-
- ColorType c = this.properties.get("color").getColorType();
- this.red = c.getRed();
- this.green = c.getGreen();
- this.blue = c.getBlue();
-
- this.wrapOption = this.properties.get("wrap-option").getEnum();
- this.whiteSpaceCollapse =
- this.properties.get("white-space-collapse").getEnum();
-
- this.refId = this.properties.get("ref-id").getString();
-
- if (this.refId.equals("")) {
- //throw new FOPException("page-number-citation must contain \"ref-id\"");
- }
-
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/flow/RetrieveMarker.java b/src/org/apache/fop/fo/flow/RetrieveMarker.java
deleted file mode 100644
index 24796fbb3..000000000
--- a/src/org/apache/fop/fo/flow/RetrieveMarker.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObjMixed;
-import org.apache.fop.layoutmgr.RetrieveMarkerLayoutManager;
-import org.xml.sax.Attributes;
-
-import java.util.List;
-
-/**
- * The retrieve-marker formatting object.
- * This will create a layout manager that will retrieve
- * a marker based on the information.
- */
-public class RetrieveMarker extends FObjMixed {
-
- private String retrieveClassName;
- private int retrievePosition;
- private int retrieveBoundary;
-
- /**
- * Create a retrieve marker object.
- *
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- public RetrieveMarker(FONode parent) {
- super(parent);
- }
-
- /**
- * Handle the attributes for the retrieve-marker.
- *
- * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
- */
- public void handleAttrs(Attributes attlist) throws FOPException {
- super.handleAttrs(attlist);
- this.retrieveClassName =
- this.properties.get("retrieve-class-name").getString();
- this.retrievePosition =
- this.properties.get("retrieve-position").getEnum();
- this.retrieveBoundary =
- this.properties.get("retrieve-boundary").getEnum();
- }
-
- /**
- * @see org.apache.fop.fo.FObj#addLayoutManager(List)
- */
- public void addLayoutManager(List lms) {
- RetrieveMarkerLayoutManager rmlm;
- rmlm = new RetrieveMarkerLayoutManager(retrieveClassName,
- retrievePosition,
- retrieveBoundary);
- rmlm.setUserAgent(getUserAgent());
- rmlm.setFObj(this);
- lms.add(rmlm);
- }
-}
diff --git a/src/org/apache/fop/fo/flow/StaticContent.java b/src/org/apache/fop/fo/flow/StaticContent.java
deleted file mode 100644
index 4650aecbc..000000000
--- a/src/org/apache/fop/fo/flow/StaticContent.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.layoutmgr.StaticContentLayoutManager;
-
-public class StaticContent extends Flow {
-
- public StaticContent(FONode parent) {
- super(parent);
- }
-
- public void setup() {
-
- }
-
- // flowname checking is more stringient for static content currently
- protected void setFlowName(String name) throws FOPException {
- if (name == null || name.equals("")) {
- throw new FOPException("A 'flow-name' is required for "
- + getName() + ".");
- } else {
- super.setFlowName(name);
- }
-
- }
-
- private StaticContentLayoutManager lm;
-
- public StaticContentLayoutManager getLayoutManager() {
- if (lm == null) {
- lm = new StaticContentLayoutManager();
- lm.setUserAgent(getUserAgent());
- lm.setFObj(this);
- }
- return lm;
- }
-
-}
diff --git a/src/org/apache/fop/fo/flow/Table.java b/src/org/apache/fop/fo/flow/Table.java
deleted file mode 100644
index a306d8775..000000000
--- a/src/org/apache/fop/fo/flow/Table.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// Java
-import java.util.ArrayList;
-import java.util.List;
-
-// FOP
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.datatypes.LengthRange;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.fo.properties.TableLayout;
-import org.apache.fop.fo.properties.TableOmitFooterAtBreak;
-import org.apache.fop.fo.properties.TableOmitHeaderAtBreak;
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.MarginProps;
-import org.apache.fop.layout.RelativePositionProps;
-import org.apache.fop.layoutmgr.table.TableLayoutManager;
-
-public class Table extends FObj {
- private static final int MINCOLWIDTH = 10000; // 10pt
-
- protected ArrayList columns = null;
- private TableBody tableHeader = null;
- private TableBody tableFooter = null;
- private boolean omitHeaderAtBreak = false;
- private boolean omitFooterAtBreak = false;
-
- private int breakBefore;
- private int breakAfter;
- private int spaceBefore;
- private int spaceAfter;
- private ColorType backgroundColor;
- private LengthRange ipd;
- private int height;
-
- private boolean bAutoLayout = false;
- private int contentWidth = 0; // Sum of column widths
- /** Optimum inline-progression-dimension */
- private int optIPD;
- /** Minimum inline-progression-dimension */
- private int minIPD;
- /** Maximum inline-progression-dimension */
- private int maxIPD;
-
- public Table(FONode parent) {
- super(parent);
- }
-
- protected void addChild(FONode child) {
- if (child.getName().equals("fo:table-column")) {
- if (columns == null) {
- columns = new ArrayList();
- }
- columns.add(((TableColumn)child).getLayoutManager());
- } else if (child.getName().equals("fo:table-footer")) {
- tableFooter = (TableBody)child;
- } else if (child.getName().equals("fo:table-header")) {
- tableHeader = (TableBody)child;
- } else {
- // add bodies
- super.addChild(child);
- }
- }
-
- /**
- * Return a LayoutManager responsible for laying out this FObj's content.
- * Must override in subclasses if their content can be laid out.
- */
- public void addLayoutManager(List list) {
- TableLayoutManager tlm = new TableLayoutManager();
- tlm.setUserAgent(getUserAgent());
- tlm.setFObj(this);
- tlm.setColumns(columns);
- if (tableHeader != null) {
- tlm.setTableHeader(tableHeader.getLayoutManager());
- }
- if (tableFooter != null) {
- tlm.setTableFooter(tableFooter.getLayoutManager());
- }
- list.add(tlm);
- }
-
- public void setup() {
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Margin Properties-Block
- MarginProps mProps = propMgr.getMarginProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps =
- propMgr.getRelativePositionProps();
-
- // this.properties.get("block-progression-dimension");
- // this.properties.get("border-after-precendence");
- // this.properties.get("border-before-precedence");
- // this.properties.get("border-collapse");
- // this.properties.get("border-end-precendence");
- // this.properties.get("border-separation");
- // this.properties.get("border-start-precendence");
- // this.properties.get("break-after");
- // this.properties.get("break-before");
- setupID();
- // this.properties.get("inline-progression-dimension");
- // this.properties.get("height");
- // this.properties.get("keep-together");
- // this.properties.get("keep-with-next");
- // this.properties.get("keep-with-previous");
- // this.properties.get("table-layout");
- // this.properties.get("table-omit-footer-at-break");
- // this.properties.get("table-omit-header-at-break");
- // this.properties.get("width");
- // this.properties.get("writing-mode");
-
- this.breakBefore = this.properties.get("break-before").getEnum();
- this.breakAfter = this.properties.get("break-after").getEnum();
- this.spaceBefore = this.properties.get(
- "space-before.optimum").getLength().getValue();
- this.spaceAfter = this.properties.get(
- "space-after.optimum").getLength().getValue();
- this.backgroundColor =
- this.properties.get("background-color").getColorType();
- this.ipd = this.properties.get(
- "inline-progression-dimension").getLengthRange();
- this.height = this.properties.get("height").getLength().getValue();
- this.bAutoLayout = (this.properties.get(
- "table-layout").getEnum() == TableLayout.AUTO);
-
- this.omitHeaderAtBreak = this.properties.get(
- "table-omit-header-at-break").getEnum()
- == TableOmitHeaderAtBreak.TRUE;
- this.omitFooterAtBreak = this.properties.get(
- "table-omit-footer-at-break").getEnum()
- == TableOmitFooterAtBreak.TRUE;
-
- }
-
- public boolean generatesInlineAreas() {
- return false;
- }
-
- protected boolean containsMarkers() {
- return true;
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/flow/TableAndCaption.java b/src/org/apache/fop/fo/flow/TableAndCaption.java
deleted file mode 100644
index fae3461be..000000000
--- a/src/org/apache/fop/fo/flow/TableAndCaption.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.ToBeImplementedElement;
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.MarginProps;
-import org.apache.fop.layout.RelativePositionProps;
-
-/**
- * fo:table-and-caption element.
- */
-public class TableAndCaption extends ToBeImplementedElement {
-
- public TableAndCaption(FONode parent) {
- super(parent);
- }
-
- public void setup() {
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Margin Properties-Block
- MarginProps mProps = propMgr.getMarginProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
- // this.properties.get("caption-side");
- setupID();
- // this.properties.get("keep-together");
- // this.properties.get("keep-with-next");
- // this.properties.get("keep-with-previous");
-
- }
-
- public boolean generatesInlineAreas() {
- return false;
- }
-
- protected boolean containsMarkers() {
- return true;
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/flow/TableBody.java b/src/org/apache/fop/fo/flow/TableBody.java
deleted file mode 100644
index 78f8707a3..000000000
--- a/src/org/apache/fop/fo/flow/TableBody.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// Java
-import java.util.List;
-
-// FOP
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.RelativePositionProps;
-import org.apache.fop.layoutmgr.table.Body;
-
-public class TableBody extends FObj {
-
- private int spaceBefore;
- private int spaceAfter;
- private ColorType backgroundColor;
-
- public TableBody(FONode parent) {
- super(parent);
- }
-
- /**
- * Return a LayoutManager responsible for laying out this FObj's content.
- * Must override in subclasses if their content can be laid out.
- */
- public void addLayoutManager(List list) {
- list.add(getLayoutManager());
- }
-
- public Body getLayoutManager() {
- Body blm = new Body();
- blm.setUserAgent(getUserAgent());
- blm.setFObj(this);
- return blm;
- }
-
- public void setup() throws FOPException {
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps =
- propMgr.getRelativePositionProps();
-
- setupID();
-
- this.spaceBefore = this.properties.get(
- "space-before.optimum").getLength().getValue();
- this.spaceAfter = this.properties.get(
- "space-after.optimum").getLength().getValue();
- this.backgroundColor =
- this.properties.get("background-color").getColorType();
-
- }
-
- protected boolean containsMarkers() {
- return true;
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/flow/TableCaption.java b/src/org/apache/fop/fo/flow/TableCaption.java
deleted file mode 100644
index e39a13f7a..000000000
--- a/src/org/apache/fop/fo/flow/TableCaption.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.ToBeImplementedElement;
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.RelativePositionProps;
-
-/**
- * fo:table-caption element.
- */
-public class TableCaption extends ToBeImplementedElement {
-
- public TableCaption(FONode parent) {
- super(parent);
- }
-
- public void setup() {
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
- // this.properties.get("block-progression-dimension");
- // this.properties.get("height");
- setupID();
- // this.properties.get("inline-progression-dimension");
- // this.properties.get("keep-togethe");
- // this.properties.get("width");
-
- }
-
- protected boolean containsMarkers() {
- return true;
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/flow/TableCell.java b/src/org/apache/fop/fo/flow/TableCell.java
deleted file mode 100644
index 8423a9709..000000000
--- a/src/org/apache/fop/fo/flow/TableCell.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// Java
-import java.util.List;
-
-// XML
-import org.xml.sax.Attributes;
-
-// FOP
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.fo.properties.BorderCollapse;
-import org.apache.fop.fo.properties.DisplayAlign;
-
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.RelativePositionProps;
-import org.apache.fop.layoutmgr.table.Cell;
-
-
-public class TableCell extends FObj {
-
- // private int spaceBefore;
- // private int spaceAfter;
- private ColorType backgroundColor;
-
- private int numColumnsSpanned;
- private int numRowsSpanned;
- private int iColNumber = -1; // uninitialized
-
- /**
- * Offset of content rectangle in inline-progression-direction,
- * relative to table.
- */
- protected int startOffset;
-
- /**
- * Dimension of allocation rectangle in inline-progression-direction,
- * determined by the width of the column(s) occupied by the cell
- */
- protected int width;
-
- /**
- * Offset of content rectangle, in block-progression-direction,
- * relative to the row.
- */
- protected int beforeOffset = 0;
-
- /**
- * Offset of content rectangle, in inline-progression-direction,
- * relative to the column start edge.
- */
- protected int startAdjust = 0;
-
- /**
- * Adjust to theoretical column width to obtain content width
- * relative to the column start edge.
- */
- protected int widthAdjust = 0;
-
- /* For collapsed border style */
- protected int borderHeight = 0;
-
- /** Minimum ontent height of cell. */
- protected int minCellHeight = 0;
- /** Height of cell */
- protected int height = 0;
- /** Ypos of cell ??? */
- protected int top;
- protected int verticalAlign;
- protected boolean bRelativeAlign = false;
-
- // boolean setup = false;
- private boolean bSepBorders = true;
-
- /**
- * Set to true if all content completely laid out.
- */
- private boolean bDone = false;
-
- /**
- * Border separation value in the block-progression dimension.
- * Used in calculating cells height.
- */
- private int borderSeparation = 0;
-
- public TableCell(FONode parent) {
- super(parent);
- }
-
- public void handleAttrs(Attributes attlist) throws FOPException {
- super.handleAttrs(attlist);
- doSetup(); // init some basic property values
- }
-
- /**
- */
- public void addLayoutManager(List list) {
- Cell clm = new Cell();
- clm.setUserAgent(getUserAgent());
- clm.setFObj(this);
- list.add(clm);
- }
-
- /**
- * Set position relative to table (set by body?)
- */
- public void setStartOffset(int offset) {
- startOffset = offset;
- }
-
- // Initially same as the column width containg this cell or the
- // sum of the spanned columns if numColumnsSpanned > 1
- public void setWidth(int width) {
- this.width = width;
- }
-
- public int getColumnNumber() {
- return iColNumber;
- }
-
- public int getNumColumnsSpanned() {
- return numColumnsSpanned;
- }
-
- public int getNumRowsSpanned() {
- return numRowsSpanned;
- }
-
- public void doSetup() {
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
- // this.properties.get("border-after-precedence");
- // this.properties.get("border-before-precendence");
- // this.properties.get("border-end-precendence");
- // this.properties.get("border-start-precendence");
- // this.properties.get("block-progression-dimension");
- // this.properties.get("column-number");
- // this.properties.get("display-align");
- // this.properties.get("relative-align");
- // this.properties.get("empty-cells");
- // this.properties.get("ends-row");
- // this.properties.get("height");
- setupID();
- // this.properties.get("number-columns-spanned");
- // this.properties.get("number-rows-spanned");
- // this.properties.get("starts-row");
- // this.properties.get("width");
-
- this.iColNumber =
- properties.get("column-number").getNumber().intValue();
- if (iColNumber < 0) {
- iColNumber = 0;
- }
- this.numColumnsSpanned =
- this.properties.get("number-columns-spanned").getNumber().intValue();
- if (numColumnsSpanned < 1) {
- numColumnsSpanned = 1;
- }
- this.numRowsSpanned =
- this.properties.get("number-rows-spanned").getNumber().intValue();
- if (numRowsSpanned < 1) {
- numRowsSpanned = 1;
- }
-
- this.backgroundColor =
- this.properties.get("background-color").getColorType();
-
- bSepBorders = (this.properties.get("border-collapse").getEnum()
- == BorderCollapse.SEPARATE);
-
- calcBorders(propMgr.getBorderAndPadding());
-
- // Vertical cell alignment
- verticalAlign = this.properties.get("display-align").getEnum();
- if (verticalAlign == DisplayAlign.AUTO) {
- // Depends on all cells starting in row
- bRelativeAlign = true;
- verticalAlign = this.properties.get("relative-align").getEnum();
- } else {
- bRelativeAlign = false; // Align on a per-cell basis
- }
-
- this.minCellHeight =
- this.properties.get("height").getLength().getValue();
- }
-
- /**
- * Calculate cell border and padding, including offset of content
- * rectangle from the theoretical grid position.
- */
- private void calcBorders(BorderAndPadding bp) {
- if (this.bSepBorders) {
- /*
- * Easy case.
- * Cell border is the property specified directly on cell.
- * Offset content rect by half the border-separation value,
- * in addition to the border and padding values. Note:
- * border-separate should only be specified on the table object,
- * but it inherits.
- */
- int iSep = properties.get(
- "border-separation.inline-progression-direction").getLength().getValue();
- this.startAdjust = iSep / 2 + bp.getBorderLeftWidth(false)
- + bp.getPaddingLeft(false);
- /*
- * int contentOffset = iSep + bp.getBorderStartWidth(false) +
- * bp.getPaddingStart(false);
- */
- this.widthAdjust = startAdjust + iSep - iSep / 2
- + bp.getBorderRightWidth(false)
- + bp.getPaddingRight(false);
- // bp.getBorderEndWidth(false) + bp.getPaddingEnd(false);
- // Offset of content rectangle in the block-progression direction
- borderSeparation = properties.get(
- "border-separation.block-progression-direction").getLength().getValue();
- this.beforeOffset = borderSeparation / 2
- + bp.getBorderTopWidth(false)
- + bp.getPaddingTop(false);
- // bp.getBorderBeforeWidth(false) + bp.getPaddingBefore(false);
-
- } else {
- // System.err.println("Collapse borders");
- /*
- * Hard case.
- * Cell border is combination of other cell borders, or table
- * border for edge cells. Also seems to border values specified
- * on row and column FO in the table (if I read CR correclty.)
- */
-
- // Set up before and after borders, taking into account row
- // and table border properties.
- // ??? What about table-body, header,footer
-
- /*
- * We can't calculate before and after because we aren't sure
- * whether this row will be the first or last in its area, due
- * to redoing break decisions (at least in the "new" architecture.)
- * So in the general case, we will calculate two possible values:
- * the first/last one and the "middle" one.
- * Example: border-before
- * 1. If the cell is in the first row in the first table body, it
- * will combine with the last row of the header, or with the
- * top (before) table border if there is no header.
- * 2. Otherwise there are two cases:
- * a. the row is first in its (non-first) Area.
- * The border can combine with either:
- * i. the last row of table-header and its cells, or
- * ii. the table before border (no table-header or it is
- * omitted on non-first Areas).
- * b. the row isn't first in its Area.
- * The border combines with the border of the previous
- * row and the cells which end in that row.
- */
-
- /*
- * if-first
- * Calculate the effective border of the cell before-border,
- * it's parent row before-border, the last header row after-border,
- * the after border of the cell(s) which end in the last header
- * row.
- */
- /*
- * if-not-first
- * Calculate the effective border of the cell before-border,
- * it's parent row before-border, the previous row after-border,
- * the after border of the cell(s) which end in the previous
- * row.
- */
-
-
- /* ivan demakov */
- int borderStart = bp.getBorderLeftWidth(false);
- int borderEnd = bp.getBorderRightWidth(false);
- int borderBefore = bp.getBorderTopWidth(false);
- int borderAfter = bp.getBorderBottomWidth(false);
-
- this.startAdjust = borderStart / 2 + bp.getPaddingLeft(false);
-
- this.widthAdjust = startAdjust + borderEnd / 2
- + bp.getPaddingRight(false);
- this.beforeOffset = borderBefore / 2 + bp.getPaddingTop(false);
- // Half border height to fix overestimate of area size!
- this.borderHeight = (borderBefore + borderAfter) / 2;
- }
- }
-
- protected boolean containsMarkers() {
- return true;
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/flow/TableColumn.java b/src/org/apache/fop/fo/flow/TableColumn.java
deleted file mode 100644
index d1eca5d18..000000000
--- a/src/org/apache/fop/fo/flow/TableColumn.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.datatypes.Length;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.fo.Property;
-
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layoutmgr.LayoutManager;
-import org.apache.fop.layoutmgr.table.Column;
-
-public class TableColumn extends FObj {
-
- private ColorType backgroundColor;
-
- private Length columnWidthPropVal;
- private int columnWidth;
- private int columnOffset;
- private int numColumnsRepeated;
- private int iColumnNumber;
-
- private boolean setup = false;
-
- public TableColumn(FONode parent) {
- super(parent);
- }
-
- public LayoutManager getLayoutManager() {
- doSetup();
- Column clm = new Column();
- clm.setUserAgent(getUserAgent());
- clm.setFObj(this);
- return clm;
- }
-
- public Length getColumnWidthAsLength() {
- return columnWidthPropVal;
- }
-
- public int getColumnWidth() {
- return columnWidth;
- }
-
- /**
- * Set the column width value in base units which overrides the
- * value from the column-width Property.
- */
- public void setColumnWidth(int columnWidth) {
- this.columnWidth = columnWidth;
- }
-
- public int getColumnNumber() {
- return iColumnNumber;
- }
-
- public int getNumColumnsRepeated() {
- return numColumnsRepeated;
- }
-
- public void doSetup() {
-
- // Common Border, Padding, and Background Properties
- // only background apply, border apply if border-collapse
- // is collapse.
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // this.properties.get("column-width");
- // this.properties.get("number-columns-repeated");
- // this.properties.get("number-columns-spanned");
- // this.properties.get("visibility");
-
- iColumnNumber = properties.get("column-number").getNumber().intValue();
-
- numColumnsRepeated =
- properties.get("number-columns-repeated").getNumber().intValue();
-
- this.backgroundColor =
- this.properties.get("background-color").getColorType();
-
- Property prop = this.properties.get("column-width");
- if (prop != null) {
- columnWidthPropVal = properties.get("column-width").getLength();
-
- // This won't include resolved table-units or % values yet.
- columnWidth = columnWidthPropVal.getValue();
- } else {
- columnWidth = 300000;
- }
-
- // initialize id
- setupID();
-
- setup = true;
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/flow/TableFooter.java b/src/org/apache/fop/fo/flow/TableFooter.java
deleted file mode 100644
index c320df9dd..000000000
--- a/src/org/apache/fop/fo/flow/TableFooter.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.fo.FONode;
-
-public class TableFooter extends TableBody {
-
- public TableFooter(FONode parent) {
- super(parent);
- }
-
-}
diff --git a/src/org/apache/fop/fo/flow/TableHeader.java b/src/org/apache/fop/fo/flow/TableHeader.java
deleted file mode 100644
index 4400b3955..000000000
--- a/src/org/apache/fop/fo/flow/TableHeader.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.fo.FONode;
-
-public class TableHeader extends TableBody {
-
- public TableHeader(FONode parent) {
- super(parent);
- }
-
-}
diff --git a/src/org/apache/fop/fo/flow/TableRow.java b/src/org/apache/fop/fo/flow/TableRow.java
deleted file mode 100644
index 4667e9fe5..000000000
--- a/src/org/apache/fop/fo/flow/TableRow.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// Java
-import java.util.List;
-
-// FOP
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.datatypes.KeepValue;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.fo.Property;
-import org.apache.fop.fo.properties.Constants;
-
-import org.apache.fop.layout.AccessibilityProps;
-import org.apache.fop.layout.AuralProps;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.RelativePositionProps;
-import org.apache.fop.layoutmgr.table.Row;
-
-public class TableRow extends FObj {
-
- private boolean setup = false;
-
- private int breakAfter;
- private ColorType backgroundColor;
-
- private KeepValue keepWithNext;
- private KeepValue keepWithPrevious;
- private KeepValue keepTogether;
-
- private int minHeight = 0; // force row height
-
- public TableRow(FONode parent) {
- super(parent);
- }
-
- /**
- */
- public void addLayoutManager(List list) {
- Row rlm = new Row();
- rlm.setUserAgent(getUserAgent());
- rlm.setFObj(this);
- list.add(rlm);
- }
-
- public KeepValue getKeepWithPrevious() {
- return keepWithPrevious;
- }
-
- public void doSetup() {
-
- // Common Accessibility Properties
- AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
- // this.properties.get("block-progression-dimension");
-
- // Common Aural Properties
- AuralProps mAurProps = propMgr.getAuralProps();
-
- // Common Border, Padding, and Background Properties
- // only background apply, border apply if border-collapse
- // is collapse.
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
-
- // Common Relative Position Properties
- RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
- // this.properties.get("break-before");
- // this.properties.get("break-after");
- setupID();
- // this.properties.get("height");
- // this.properties.get("keep-together");
- // this.properties.get("keep-with-next");
- // this.properties.get("keep-with-previous");
-
-
- this.breakAfter = this.properties.get("break-after").getEnum();
- this.backgroundColor =
- this.properties.get("background-color").getColorType();
-
- this.keepTogether = getKeepValue("keep-together.within-column");
- this.keepWithNext = getKeepValue("keep-with-next.within-column");
- this.keepWithPrevious =
- getKeepValue("keep-with-previous.within-column");
-
- this.minHeight = this.properties.get("height").getLength().getValue();
- setup = true;
- }
-
- private KeepValue getKeepValue(String sPropName) {
- Property p = this.properties.get(sPropName);
- Number n = p.getNumber();
- if (n != null) {
- return new KeepValue(KeepValue.KEEP_WITH_VALUE, n.intValue());
- }
- switch (p.getEnum()) {
- case Constants.ALWAYS:
- return new KeepValue(KeepValue.KEEP_WITH_ALWAYS, 0);
- case Constants.AUTO:
- default:
- return new KeepValue(KeepValue.KEEP_WITH_AUTO, 0);
- }
- }
-}
-
diff --git a/src/org/apache/fop/fo/flow/Wrapper.java b/src/org/apache/fop/fo/flow/Wrapper.java
deleted file mode 100644
index 7a5a0d965..000000000
--- a/src/org/apache/fop/fo/flow/Wrapper.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.flow;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObjMixed;
-
-/**
- * Implementation for fo:wrapper formatting object.
- * The wrapper object serves as
- * a property holder for it's children objects.
- *
- * Content: (#PCDATA|%inline;|%block;)*
- * Properties: id
- */
-public class Wrapper extends FObjMixed {
-
- public Wrapper(FONode parent) {
- super(parent);
- }
-
- protected boolean containsMarkers() {
- return true;
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/pagination/ConditionalPageMasterReference.java b/src/org/apache/fop/fo/pagination/ConditionalPageMasterReference.java
deleted file mode 100644
index 598965dde..000000000
--- a/src/org/apache/fop/fo/pagination/ConditionalPageMasterReference.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// XML
-import org.xml.sax.Attributes;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.fo.properties.BlankOrNotBlank;
-import org.apache.fop.fo.properties.OddOrEven;
-import org.apache.fop.fo.properties.PagePosition;
-import org.apache.fop.apps.FOPException;
-
-/**
- * A conditional-page-master-reference formatting object.
- * This is a reference to a page master with a set of conditions.
- * The conditions must be satisfied for the referenced master to
- * be used.
- * This element is must be the child of a repeatable-page-master-alternatives
- * element.
- */
-public class ConditionalPageMasterReference extends FObj {
-
- private RepeatablePageMasterAlternatives repeatablePageMasterAlternatives;
-
- private String masterName;
-
- private int pagePosition;
- private int oddOrEven;
- private int blankOrNotBlank;
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- public ConditionalPageMasterReference(FONode parent) {
- super(parent);
- }
-
- /**
- * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
- */
- public void handleAttrs(Attributes attlist) throws FOPException {
- super.handleAttrs(attlist);
- if (getProperty("master-reference") != null) {
- setMasterName(getProperty("master-reference").getString());
- }
-
- validateParent(parent);
-
- this.pagePosition = this.properties.get("page-position").getEnum();
- this.oddOrEven = this.properties.get("odd-or-even").getEnum();
- this.blankOrNotBlank = this.properties.get("blank-or-not-blank").getEnum();
- }
-
- /**
- * Sets the master name.
- * @param masterName name for the master
- */
- protected void setMasterName(String masterName) {
- this.masterName = masterName;
- }
-
- /**
- * Returns the "master-name" attribute of this page master reference
- * @return the master name
- */
- public String getMasterName() {
- return masterName;
- }
-
- /**
- * Check if the conditions for this reference are met.
- * checks the page number and emptyness to determine if this
- * matches.
- * @param isOddPage True if page number odd
- * @param isFirstPage True if page is first page
- * @param isBlankPage True if page is blank
- * @return True if the conditions for this reference are met
- */
- protected boolean isValid(boolean isOddPage,
- boolean isFirstPage,
- boolean isBlankPage) {
- // page-position
- if (isFirstPage) {
- if (pagePosition == PagePosition.REST) {
- return false;
- } else if (pagePosition == PagePosition.LAST) {
- // how the hell do you know at this point?
- getLogger().debug("LAST PagePosition NYI");
- return false;
- }
- } else {
- if (pagePosition == PagePosition.FIRST) {
- return false;
- } else if (pagePosition == PagePosition.LAST) {
- // how the hell do you know at this point?
- getLogger().debug("LAST PagePosition NYI");
- // potentially valid, don't return
- }
- }
-
- // odd-or-even
- if (isOddPage) {
- if (oddOrEven == OddOrEven.EVEN) {
- return false;
- }
- } else {
- if (oddOrEven == OddOrEven.ODD) {
- return false;
- }
- }
-
- // blank-or-not-blank
- if (isBlankPage) {
- if (blankOrNotBlank == BlankOrNotBlank.NOT_BLANK) {
- return false;
- }
- } else {
- if (blankOrNotBlank == BlankOrNotBlank.BLANK) {
- return false;
- }
- }
- return true;
- }
-
- /**
- * Check that the parent is the right type of formatting object
- * repeatable-page-master-alternatives.
- * @param parent parent node
- * @throws FOPException If the parent is invalid
- */
- protected void validateParent(FONode parent) throws FOPException {
- if (parent.getName().equals("fo:repeatable-page-master-alternatives")) {
- this.repeatablePageMasterAlternatives =
- (RepeatablePageMasterAlternatives)parent;
-
- if (getMasterName() == null) {
- getLogger().warn("single-page-master-reference"
- + "does not have a master-name and so is being ignored");
- } else {
- this.repeatablePageMasterAlternatives.addConditionalPageMasterReference(this);
- }
- } else {
- throw new FOPException("fo:conditional-page-master-reference must be child "
- + "of fo:repeatable-page-master-alternatives, not "
- + parent.getName());
- }
- }
-
-}
diff --git a/src/org/apache/fop/fo/pagination/LayoutMasterSet.java b/src/org/apache/fop/fo/pagination/LayoutMasterSet.java
deleted file mode 100644
index 9e60dff9f..000000000
--- a/src/org/apache/fop/fo/pagination/LayoutMasterSet.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// Java
-import java.util.Iterator;
-import java.util.Map;
-
-// XML
-import org.xml.sax.Attributes;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.apps.FOPException;
-
-/**
- * The layout-master-set formatting object.
- * This class maintains the set of simple page master and
- * page sequence masters.
- * The masters are stored so that the page sequence can obtain
- * the required page master to create a page.
- * The page sequence masters can be reset as they hold state
- * information for a page sequence.
- */
-public class LayoutMasterSet extends FObj {
-
- private Map simplePageMasters;
- private Map pageSequenceMasters;
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- public LayoutMasterSet(FONode parent) {
- super(parent);
- }
-
- /**
- * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
- */
- public void handleAttrs(Attributes attlist) throws FOPException {
- super.handleAttrs(attlist);
-
- if (parent.getName().equals("fo:root")) {
- Root root = (Root)parent;
- root.setLayoutMasterSet(this);
- } else {
- throw new FOPException("fo:layout-master-set must be child of fo:root, not "
- + parent.getName());
- }
-
- this.simplePageMasters = new java.util.HashMap();
- this.pageSequenceMasters = new java.util.HashMap();
- }
-
- /**
- * Add a simple page master.
- * The name is checked to throw an error if already added.
- * @param simplePageMaster simple-page-master to add
- * @throws FOPException if there's a problem with name uniqueness
- */
- protected void addSimplePageMaster(SimplePageMaster simplePageMaster)
- throws FOPException {
- // check against duplication of master-name
- if (existsName(simplePageMaster.getMasterName())) {
- throw new FOPException("'master-name' ("
- + simplePageMaster.getMasterName()
- + ") must be unique "
- + "across page-masters and page-sequence-masters");
- }
- this.simplePageMasters.put(simplePageMaster.getMasterName(),
- simplePageMaster);
- }
-
- /**
- * Get a simple page master by name.
- * This is used by the page sequence to get a page master for
- * creating pages.
- * @param masterName the name of the page master
- * @return the requested simple-page-master
- */
- public SimplePageMaster getSimplePageMaster(String masterName) {
- return (SimplePageMaster)this.simplePageMasters.get(masterName);
- }
-
- /**
- * Add a page sequence master.
- * The name is checked to throw an error if already added.
- * @param masterName name for the master
- * @param pageSequenceMaster PageSequenceMaster instance
- * @throws FOPException if there's a problem with name uniqueness
- */
- protected void addPageSequenceMaster(String masterName,
- PageSequenceMaster pageSequenceMaster)
- throws FOPException {
- // check against duplication of master-name
- if (existsName(masterName)) {
- throw new FOPException("'master-name' (" + masterName
- + ") must be unique "
- + "across page-masters and page-sequence-masters");
- }
- this.pageSequenceMasters.put(masterName, pageSequenceMaster);
- }
-
- /**
- * Get a page sequence master by name.
- * This is used by the page sequence to get a page master for
- * creating pages.
- * @param masterName name of the master
- * @return the requested PageSequenceMaster instance
- */
- public PageSequenceMaster getPageSequenceMaster(String masterName) {
- return (PageSequenceMaster)this.pageSequenceMasters.get(masterName);
- }
-
- private boolean existsName(String masterName) {
- if (simplePageMasters.containsKey(masterName)
- || pageSequenceMasters.containsKey(masterName)) {
- return true;
- } else {
- return false;
- }
- }
-
- /**
- * Section 7.33.15: check to see that if a region-name is a
- * duplicate, that it maps to the same region-class.
- * @throws FOPException if there's a name duplication
- */
- protected void checkRegionNames() throws FOPException {
- Map allRegions = new java.util.HashMap();
- for (Iterator spm = simplePageMasters.values().iterator();
- spm.hasNext();) {
- SimplePageMaster simplePageMaster =
- (SimplePageMaster)spm.next();
- Map spmRegions = simplePageMaster.getRegions();
- for (Iterator e = spmRegions.values().iterator();
- e.hasNext();) {
- Region region = (Region)e.next();
- if (allRegions.containsKey(region.getRegionName())) {
- String localClass =
- (String)allRegions.get(region.getRegionName());
- if (!localClass.equals(region.getRegionClass())) {
- throw new FOPException("Duplicate region-names ("
- + region.getRegionName()
- + ") must map "
- + "to the same region-class ("
- + localClass + "!="
- + region.getRegionClass()
- + ")");
- }
- }
- allRegions.put(region.getRegionName(),
- region.getRegionClass());
- }
- }
- }
-
- /**
- * Checks whether or not a region name exists in this master set.
- * @param regionName name of the region
- * @return true when the region name specified has a region in this LayoutMasterSet
- */
- protected boolean regionNameExists(String regionName) {
- for (Iterator e = simplePageMasters.values().iterator();
- e.hasNext();) {
- if (((SimplePageMaster)e.next()).regionNameExists(regionName)) {
- return true;
- }
- }
- return false;
- }
-}
-
diff --git a/src/org/apache/fop/fo/pagination/PageMasterReference.java b/src/org/apache/fop/fo/pagination/PageMasterReference.java
deleted file mode 100644
index bc87aced8..000000000
--- a/src/org/apache/fop/fo/pagination/PageMasterReference.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// SAX
-import org.xml.sax.Attributes;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.apps.FOPException;
-
-/**
- * Base PageMasterReference class. Provides implementation for handling the
- * master-reference attribute and containment within a PageSequenceMaster
- */
-public abstract class PageMasterReference extends FObj
- implements SubSequenceSpecifier {
-
- private String masterName;
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- public PageMasterReference(FONode parent) {
- super(parent);
- }
-
- /**
- * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
- */
- public void handleAttrs(Attributes attlist) throws FOPException {
- super.handleAttrs(attlist);
- if (getProperty("master-reference") != null) {
- this.masterName = getProperty("master-reference").getString();
- }
- validateParent(parent);
- }
-
-
- /**
- * Returns the "master-reference" attribute of this page master reference
- * @return the name of the page master
- */
- public String getMasterName() {
- return masterName;
- }
-
- /**
- * Checks that the parent is the right element. The default implementation
- * checks for fo:page-sequence-master.
- * @param parent parent node
- * @throws FOPException If the parent is invalid.
- */
- protected void validateParent(FONode parent) throws FOPException {
- if (parent.getName().equals("fo:page-sequence-master")) {
- PageSequenceMaster pageSequenceMaster = (PageSequenceMaster)parent;
-
- if (getMasterName() == null) {
- getLogger().warn(getName()
- + " does not have a master-reference and so is being ignored");
- } else {
- pageSequenceMaster.addSubsequenceSpecifier(this);
- }
- } else {
- throw new FOPException(getName() + " must be"
- + "child of fo:page-sequence-master, not "
- + parent.getName());
- }
- }
-
-}
diff --git a/src/org/apache/fop/fo/pagination/PageNumberGenerator.java b/src/org/apache/fop/fo/pagination/PageNumberGenerator.java
deleted file mode 100644
index 25d5d6927..000000000
--- a/src/org/apache/fop/fo/pagination/PageNumberGenerator.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// Avalon
-import org.apache.avalon.framework.logger.AbstractLogEnabled;
-
-/**
- * This class uses the 'format', 'groupingSeparator', 'groupingSize',
- * and 'letterValue' properties on fo:page-sequence to return a String
- * corresponding to the supplied integer page number.
- */
-public class PageNumberGenerator extends AbstractLogEnabled {
-
- private String format;
- private char groupingSeparator;
- private int groupingSize;
- private int letterValue;
-
- // constants
- private static final int DECIMAL = 1; // '0*1'
- private static final int LOWERALPHA = 2; // 'a'
- private static final int UPPERALPHA = 3; // 'A'
- private static final int LOWERROMAN = 4; // 'i'
- private static final int UPPERROMAN = 5; // 'I'
-
- // flags
- private int formatType = DECIMAL;
- private int minPadding = 0; // for decimal formats
-
- // preloaded strings of zeros
- private String zeros[] = {
- "", "0", "00", "000", "0000", "00000"
- };
-
- /**
- * Main constructor. For further information on the parameters see the XSLT
- * specs (Number to String Conversion Attributes).
- * @param format format for the page number
- * @param groupingSeparator grouping separator
- * @param groupingSize grouping size
- * @param letterValue letter value
- */
- public PageNumberGenerator(String format, char groupingSeparator,
- int groupingSize, int letterValue) {
- this.format = format;
- this.groupingSeparator = groupingSeparator;
- this.groupingSize = groupingSize;
- this.letterValue = letterValue;
-
- // the only accepted format strings are currently '0*1' 'a', 'A', 'i'
- // and 'I'
- int fmtLen = format.length();
- if (fmtLen == 1) {
- if (format.equals("1")) {
- formatType = DECIMAL;
- minPadding = 0;
- } else if (format.equals("a")) {
- formatType = LOWERALPHA;
- } else if (format.equals("A")) {
- formatType = UPPERALPHA;
- } else if (format.equals("i")) {
- formatType = LOWERROMAN;
- } else if (format.equals("I")) {
- formatType = UPPERROMAN;
- } else {
- // token not handled
- //getLogger().debug("'format' token not recognized; using '1'");
- formatType = DECIMAL;
- minPadding = 0;
- }
- } else {
- // only accepted token is '0+1'at this stage. Because of the
- // wonderful regular expression support in Java, we will resort to a
- // loop
- for (int i = 0; i < fmtLen - 1; i++) {
- if (format.charAt(i) != '0') {
- //getLogger().debug("'format' token not recognized; using '1'");
- formatType = DECIMAL;
- minPadding = 0;
- } else {
- minPadding = fmtLen - 1;
- }
- }
- }
- }
-
- /**
- * Formats a page number.
- * @param number page number to format
- * @return the formatted page number as a String
- */
- public String makeFormattedPageNumber(int number) {
- String pn = null;
- if (formatType == DECIMAL) {
- pn = Integer.toString(number);
- if (minPadding >= pn.length()) {
- int nz = minPadding - pn.length() + 1;
- pn = zeros[nz] + pn;
- }
- } else if ((formatType == LOWERROMAN) || (formatType == UPPERROMAN)) {
- pn = makeRoman(number);
- if (formatType == UPPERROMAN) {
- pn = pn.toUpperCase();
- }
- } else {
- // alphabetic
- pn = makeAlpha(number);
- if (formatType == UPPERALPHA) {
- pn = pn.toUpperCase();
- }
- }
- return pn;
- }
-
- private String makeRoman(int num) {
- int arabic[] = {
- 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1
- };
- String roman[] = {
- "m", "cm", "d", "cd", "c", "xc", "l", "xl", "x", "ix", "v", "iv",
- "i"
- };
-
- int i = 0;
- StringBuffer romanNumber = new StringBuffer();
-
- while (num > 0) {
- while (num >= arabic[i]) {
- num = num - arabic[i];
- romanNumber.append(roman[i]);
- }
- i = i + 1;
- }
- return romanNumber.toString();
- }
-
- private String makeAlpha(int num) {
- String letters = "abcdefghijklmnopqrstuvwxyz";
- StringBuffer alphaNumber = new StringBuffer();
-
- int base = 26;
- int rem = 0;
-
- num--;
- if (num < base) {
- alphaNumber.append(letters.charAt(num));
- } else {
- while (num >= base) {
- rem = num % base;
- alphaNumber.append(letters.charAt(rem));
- num = num / base;
- }
- alphaNumber.append(letters.charAt(num - 1));
- }
- return alphaNumber.reverse().toString();
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/pagination/PageSequence.java b/src/org/apache/fop/fo/pagination/PageSequence.java
deleted file mode 100644
index 91afc33a3..000000000
--- a/src/org/apache/fop/fo/pagination/PageSequence.java
+++ /dev/null
@@ -1,807 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.fo.Title;
-import org.apache.fop.fo.flow.Flow;
-import org.apache.fop.fo.flow.StaticContent;
-import org.apache.fop.layout.PageMaster;
-import org.apache.fop.area.AreaTree;
-import org.apache.fop.area.PageViewport;
-import org.apache.fop.apps.FOPException;
-
-import org.apache.fop.layoutmgr.PageLayoutManager;
-
-// Java
-import java.util.HashMap;
-
-import org.xml.sax.Attributes;
-
-/**
- * This provides pagination of flows onto pages. Much of the
- * logic for paginating flows is contained in this class.
- * The main entry point is the format method.
- */
-public class PageSequence extends FObj {
- //
- // intial-page-number types
- //
- private static final int EXPLICIT = 0;
- private static final int AUTO = 1;
- private static final int AUTO_EVEN = 2;
- private static final int AUTO_ODD = 3;
-
- //
- // associations
- //
- /**
- * The parent root object
- */
- private Root root;
-
- /**
- * the set of layout masters (provided by the root object)
- */
- private LayoutMasterSet layoutMasterSet;
-
- // There doesn't seem to be anything in the spec requiring flows
- // to be in the order given, only that they map to the regions
- // defined in the page sequence, so all we need is this one hashmap
- // the set of flows includes StaticContent flows also
-
- /**
- * Map of flows to their flow name (flow-name, Flow)
- */
- private HashMap flowMap;
-
- // according to communication from Paul Grosso (XSL-List,
- // 001228, Number 406), confusion in spec section 6.4.5 about
- // multiplicity of fo:flow in XSL 1.0 is cleared up - one (1)
- // fo:flow per fo:page-sequence only.
-// private boolean isFlowSet = false;
-
- // for structure handler
- private boolean sequenceStarted = false;
-
- //
- // state attributes used during layout
- //
-
- private PageViewport currentPage;
-
- // page number and related formatting variables
- private String ipnValue;
- private int currentPageNumber = 0;
- private int explicitFirstNumber = 0; // explicitly specified
- private int firstPageNumber = 0; // actual
- private PageNumberGenerator pageNumberGenerator;
-
- private int forcePageCount = 0;
- private int pageCount = 0;
- private boolean isForcing = false;
-
- /**
- * specifies page numbering type (auto|auto-even|auto-odd|explicit)
- */
- private int pageNumberType;
-
- /**
- * used to determine whether to calculate auto, auto-even, auto-odd
- */
- private boolean thisIsFirstPage;
-
- /**
- * The currentSimplePageMaster is either the page master for the
- * whole page sequence if master-reference refers to a simple-page-master,
- * or the simple page master produced by the page sequence mster otherwise.
- * The pageSequenceMaster is null if master-reference refers to a
- * simple-page-master.
- */
- private SimplePageMaster currentSimplePageMaster;
- private PageSequenceMaster pageSequenceMaster;
-
- /**
- * The main content flow for this page-sequence.
- */
- private Flow mainFlow = null;
-
- /**
- * The fo:title object for this page-sequence.
- */
- private Title titleFO;
-
- /**
- * Create a page sequence FO node.
- *
- * @param parent the parent FO node
- */
- public PageSequence(FONode parent) {
- super(parent);
- }
-
- /**
- * Handle the attributes for this xml element.
- * For the page sequence this gets all the appropriate properties
- * for dealing with the page sequence.
- *
- * @param attlist the attribute list
- * @throws FOPException if there is an error with the properties
- */
- public void handleAttrs(Attributes attlist) throws FOPException {
- super.handleAttrs(attlist);
-
- if (parent.getName().equals("fo:root")) {
- this.root = (Root)parent;
- // this.root.addPageSequence(this);
- } else {
- throw new FOPException("page-sequence must be child of root, not "
- + parent.getName());
- }
-
- layoutMasterSet = root.getLayoutMasterSet();
-
- // best time to run some checks on LayoutMasterSet
- layoutMasterSet.checkRegionNames();
-
- flowMap = new HashMap();
-
- // we are now on the first page of the page sequence
- thisIsFirstPage = true;
- ipnValue = this.properties.get("initial-page-number").getString();
-
- if (ipnValue.equals("auto")) {
- pageNumberType = AUTO;
- } else if (ipnValue.equals("auto-even")) {
- pageNumberType = AUTO_EVEN;
- } else if (ipnValue.equals("auto-odd")) {
- pageNumberType = AUTO_ODD;
- } else {
- pageNumberType = EXPLICIT;
- try {
- int pageStart = new Integer(ipnValue).intValue();
- this.explicitFirstNumber = (pageStart > 0) ? pageStart - 1 : 0;
- } catch (NumberFormatException nfe) {
- throw new FOPException("\"" + ipnValue
- + "\" is not a valid value for initial-page-number");
- }
- }
-
-
- String masterName = this.properties.get("master-reference").getString();
- this.currentSimplePageMaster =
- this.layoutMasterSet.getSimplePageMaster(masterName);
- if (this.currentSimplePageMaster == null) {
- this.pageSequenceMaster =
- this.layoutMasterSet.getPageSequenceMaster(masterName);
- if (this.pageSequenceMaster == null) {
- throw new FOPException("master-reference '" + masterName
- + "' for fo:page-sequence matches no"
- + " simple-page-master or page-sequence-master");
- }
- }
-
- // get the 'format' properties
- this.pageNumberGenerator =
- new PageNumberGenerator(this.properties.get("format").getString(),
- this.properties.get("grouping-separator").getCharacter(),
- this.properties.get("grouping-size").getNumber().intValue(),
- this.properties.get("letter-value").getEnum());
- this.pageNumberGenerator.enableLogging(getLogger());
-
- this.forcePageCount =
- this.properties.get("force-page-count").getEnum();
-
- // this.properties.get("country");
- // this.properties.get("language");
- setupID();
- }
-
-
- /**
- * Add a flow or static content, mapped by its flow-name.
- * The flow-name is used to associate the flow with a region on a page,
- * based on the names given to the regions in the page-master used to
- * generate that page.
- */
-// private void addFlow(Flow flow) throws FOPException {
-// if (flowMap.containsKey(flow.getFlowName())) {
-// throw new FOPException("flow-names must be unique within an fo:page-sequence");
-// }
-// if (!this.layoutMasterSet.regionNameExists(flow.getFlowName())) {
-// getLogger().error("region-name '"
-// + flow.getFlowName()
-// + "' doesn't exist in the layout-master-set.");
-// }
-// flowMap.put(flow.getFlowName(), flow);
-// //setIsFlowSet(true);
-// }
-
-
- /**
- * Validate the child being added and initialize internal variables.
- * XSL content model for page-sequence:
- * <pre>(title?,static-content*,flow)</pre>
- *
- * @param child The flow object child to be added to the PageSequence.
- */
- public void addChild(FONode child) {
- try {
- String childName = child.getName();
- if (childName.equals("fo:title")) {
- if (this.flowMap.size() > 0) {
- getLogger().warn("fo:title should be first in page-sequence");
- } else {
- this.titleFO = (Title)child;
- }
- } else if (childName.equals("fo:flow")) {
- if (this.mainFlow != null) {
- throw new FOPException("Only a single fo:flow permitted"
- + " per fo:page-sequence");
- } else {
- this.mainFlow = (Flow)child;
- String flowName = this.mainFlow.getFlowName();
- if (flowMap.containsKey(flowName)) {
- throw new FOPException("flow-name "
- + flowName
- + " is not unique within an fo:page-sequence");
- }
- if (!this.layoutMasterSet.regionNameExists(flowName)) {
- getLogger().error("region-name '"
- + flowName
- + "' doesn't exist in the layout-master-set.");
- }
- // Don't add main flow to the flow map
-// addFlow(mainFlow);
- if (!sequenceStarted) {
- structHandler.startPageSequence(this, titleFO, layoutMasterSet);
- sequenceStarted = true;
- }
- super.addChild(child); // For getChildren
- }
- } else if (childName.equals("fo:static-content")) {
- if (this.mainFlow != null) {
- throw new FOPException(childName
- + " must precede fo:flow; ignoring");
- }
- String flowName = ((StaticContent)child).getFlowName();
- if (flowMap.containsKey(flowName)) {
- throw new FOPException("flow-name " + flowName
- + " is not unique within an fo:page-sequence");
- }
- if (!this.layoutMasterSet.regionNameExists(flowName)) {
- getLogger().error("region-name '" + flowName
- + "' doesn't exist in the layout-master-set.");
- }
- flowMap.put(flowName, child);
-// addFlow((Flow)child);
- if (!sequenceStarted) {
- structHandler.startPageSequence(this, titleFO, layoutMasterSet);
- sequenceStarted = true;
- }
- } else {
- // Ignore it!
- getLogger().warn("FO '" + childName
- + "' not a legal page-sequence child.");
- return;
- }
- } catch (FOPException fopex) {
- getLogger().error("Error in PageSequence.addChild(): "
- + fopex.getMessage(), fopex);
- }
- }
-
- /**
- * Signal end of this xml element.
- * This passes the end page sequence to the structure handler
- * so it can act upon that.
- */
- public void end() {
- try {
- this.structHandler.endPageSequence(this);
- } catch (FOPException fopex) {
- getLogger().error("Error in PageSequence.end(): "
- + fopex.getMessage(), fopex);
- }
- }
-
- /**
- * Runs the formatting of this page sequence into the given area tree
- *
- * @param areaTree the area tree to format this page sequence into
- * @throws FOPException if there is an error formatting the contents
- */
- public void format(AreaTree areaTree) throws FOPException {
- // Make a new PageLayoutManager and a FlowLayoutManager
- // Run the PLM in a thread
- // Wait for them to finish.
-
- // If no main flow, nothing to layout!
- if (this.mainFlow == null) {
- return;
- }
-
- // Initialize if already used?
- // this.layoutMasterSet.resetPageMasters();
- if (pageSequenceMaster != null) {
- pageSequenceMaster.reset();
- }
-
- int firstAvailPageNumber = 0;
- initPageNumber();
-
- // This will layout pages and add them to the area tree
- PageLayoutManager pageLM = new PageLayoutManager(areaTree, this);
- pageLM.setUserAgent(getUserAgent());
- pageLM.setFObj(this);
- pageLM.setPageCounting(currentPageNumber, pageNumberGenerator);
-
- // For now, skip the threading and just call run directly.
- pageLM.run();
-
- // Thread layoutThread = new Thread(pageLM);
-// layoutThread.start();
-// log.debug("Layout thread started");
-
-// // wait on both managers
-// try {
-// layoutThread.join();
-// log.debug("Layout thread done");
-// } catch (InterruptedException ie) {
-// log.error("PageSequence.format() interrupted waiting on layout");
-// }
- this.currentPageNumber = pageLM.getPageCount();
- // Tell the root the last page number we created.
- this.root.setRunningPageNumberCounter(this.currentPageNumber);
- }
-
- /**
- * Initialize the current page number for the start of the page sequence.
- */
- private void initPageNumber() {
- this.currentPageNumber = this.root.getRunningPageNumberCounter() + 1;
-
- if (this.pageNumberType == AUTO_ODD) {
- // Next page but force odd. May force empty page creation!
- // Whose master is used for this??? Assume no.
- // Use force-page-count = auto
- // on preceding page-sequence to make sure that there is no gap!
- if (currentPageNumber % 2 == 0) {
- this.currentPageNumber++;
- }
- } else if (pageNumberType == AUTO_EVEN) {
- if (currentPageNumber % 2 == 1) {
- this.currentPageNumber++;
- }
- } else if (pageNumberType == EXPLICIT) {
- this.currentPageNumber = this.explicitFirstNumber;
- }
- this.firstPageNumber = this.currentPageNumber;
- }
-
- /**
- * Called by PageLayoutManager when it needs a new page on which to
- * place content. The PageSequence manages the page number (odd/even),
- * but the PLM tells it if the page is blank or is the last page.
- *
- * @param pageNumber the page number to create page for
- * @param bIsBlank If true, use a master for a blank page.
- * @param firstPage true if this is the first page
- * @param bIsLast If true, use the master for the last page in the sequence.
- * @return the page viewport created for the page number
- * @throws FOPException if there is an error creating page
- */
- public PageViewport createPage(int pageNumber, boolean bIsBlank,
- boolean firstPage, boolean bIsLast)
- throws FOPException {
- if (this.pageSequenceMaster != null) {
- this.currentSimplePageMaster = this.pageSequenceMaster
- .getNextSimplePageMaster(((pageNumber % 2) == 1),
- firstPage,
- bIsBlank);
- }
- Region body = currentSimplePageMaster.getRegion(Region.BODY);
- if (!this.mainFlow.getFlowName().equals(body.getRegionName())) {
- throw new FOPException("Flow '" + this.mainFlow.getFlowName()
- + "' does not map to the region-body in page-master '"
- + currentSimplePageMaster.getMasterName() + "'");
- }
- PageMaster pageMaster = this.currentSimplePageMaster.getPageMaster();
- PageViewport p = pageMaster.makePage();
- return p;
- // The page will have a viewport/reference area pair defined
- // for each region in the master.
- // Set up the page itself
-// SKIP ALL THIS FOR NOW!!!
-// //this.root.setRunningPageNumberCounter(this.currentPageNumber);
-
-// this.pageCount++; // used for 'force-page-count' calculations
-
- // handle the 'force-page-count'
- //forcePage(areaTree, firstAvailPageNumber);
- }
-
- /**
- * Creates a new page area for the given parameters
- * @param areaTree the area tree the page should be contained in
- * @param firstAvailPageNumber the page number for this page
- * @param isFirstPage true when this is the first page in the sequence
- * @param isEmptyPage true if this page will be empty
- * (e.g. forced even or odd break)
- * @return a Page layout object based on the page master selected
- * from the params
- * @todo modify the other methods to use even/odd flag and bIsLast
- */
-// private PageViewport makePage(int firstAvailPageNumber,
-// boolean isFirstPage, boolean bIsLast,
-// boolean isEmptyPage) throws FOPException {
-// // layout this page sequence
-
-// // while there is still stuff in the flow, ask the
-// // layoutMasterSet for a new page
-
-// // page number is 0-indexed
-// PageMaster pageMaster = getNextPageMaster(masterName,
-// firstAvailPageNumber,
-// isFirstPage, isEmptyPage);
-
-// // a legal alternative is to use the last sub-sequence
-// // specification which should be handled in getNextSubsequence.
-// // That's not done here.
-// if (pageMaster == null) {
-// throw new FOPException("page masters exhausted. Cannot recover.");
-// }
-// PageViewport p = pageMaster.makePage();
-// return p;
-// }
-
- /**
- * Returns the next SubSequenceSpecifier for the given page sequence master.
- * The result is bassed on the current state of this page sequence.
- */
-// private SubSequenceSpecifier getNextSubsequence(PageSequenceMaster master) {
-// if (master.getSubSequenceSpecifierCount()
-// > currentSubsequenceNumber + 1) {
-
-// currentSubsequence =
-// master.getSubSequenceSpecifier(currentSubsequenceNumber + 1);
-// currentSubsequenceNumber++;
-// return currentSubsequence;
-// } else {
-// return null;
-// }
-// }
-
- /**
- * Returns the next simple page master for the given sequence master, page number and
- * other state information
- */
-// private SimplePageMaster getNextSimplePageMaster(PageSequenceMaster sequenceMaster,
-// int pageNumber, boolean thisIsFirstPage,
-// boolean isEmptyPage) {
-// // handle forcing
-// if (isForcing) {
-// String nextPageMaster = getNextPageMasterName(sequenceMaster,
-// pageNumber, false, true);
-// return this.layoutMasterSet.getSimplePageMaster(nextPageMaster);
-// }
-// String nextPageMaster = getNextPageMasterName(sequenceMaster,
-// pageNumber, thisIsFirstPage, isEmptyPage);
-// return this.layoutMasterSet.getSimplePageMaster(nextPageMaster);
-
-// }
-
- /**
- * Get the next page master name.
- * This gets the name of the next page master. If the sequence
- * is exhausted then an error is indicated and the last page
- * master name is used.
- */
-// private String getNextPageMasterName(PageSequenceMaster sequenceMaster,
-// int pageNumber,
-// boolean thisIsFirstPage,
-// boolean isEmptyPage) {
-
-// if (null == currentSubsequence) {
-// currentSubsequence = getNextSubsequence(sequenceMaster);
-// }
-
-// String nextPageMaster =
-// currentSubsequence.getNextPageMaster(pageNumber,
-// thisIsFirstPage,
-// isEmptyPage);
-
-
-// if (null == nextPageMaster
-// || isFlowForMasterNameDone(currentPageMasterName)) {
-// SubSequenceSpecifier nextSubsequence =
-// getNextSubsequence(sequenceMaster);
-// if (nextSubsequence == null) {
-// getLogger().error("Page subsequences exhausted. Using previous subsequence.");
-// thisIsFirstPage =
-// true; // this becomes the first page in the new (old really) page master
-// currentSubsequence.reset();
-
-// // we leave currentSubsequence alone
-// }
-// else {
-// currentSubsequence = nextSubsequence;
-// }
-
-// nextPageMaster =
-// currentSubsequence.getNextPageMaster(pageNumber,
-// thisIsFirstPage,
-// isEmptyPage);
-// }
-// currentPageMasterName = nextPageMaster;
-
-// return nextPageMaster;
-
-// }
-
-// private SimplePageMaster getCurrentSimplePageMaster() {
-// return this.layoutMasterSet.getSimplePageMaster(currentPageMasterName);
-// }
-
-// private String getCurrentPageMasterName() {
-// return currentPageMasterName;
-// }
-
- // refactored from LayoutMasterSet
-// private PageMaster getNextPageMaster(String pageSequenceName,
-// int pageNumber,
-// boolean thisIsFirstPage,
-// boolean isEmptyPage) throws FOPException {
-// PageMaster pageMaster = null;
-
-// // see if there is a page master sequence for this master name
-// PageSequenceMaster sequenceMaster =
-// this.layoutMasterSet.getPageSequenceMaster(pageSequenceName);
-
-// if (sequenceMaster != null) {
-// pageMaster = getNextSimplePageMaster(sequenceMaster,
-// pageNumber,
-// thisIsFirstPage,
-// isEmptyPage).getPageMaster();
-
-// } else { // otherwise see if there's a simple master by the given name
-// SimplePageMaster simpleMaster =
-// this.layoutMasterSet.getSimplePageMaster(pageSequenceName);
-// if (simpleMaster == null) {
-// throw new FOPException("'master-reference' for 'fo:page-sequence'"
-// + "matches no 'simple-page-master'"
-// + " or 'page-sequence-master'");
-// }
-// currentPageMasterName = pageSequenceName;
-
-// pageMaster = simpleMaster.getNextPageMaster();
-// }
-// return pageMaster;
-// }
-
-
-// /**
-// * Returns true when there is more flow elements left to lay out.
-// */
-// private boolean flowsAreIncomplete() {
-// boolean isIncomplete = false;
-
-// for (Iterator e = flowMap.values().iterator(); e.hasNext(); ) {
-// Flow flow = (Flow)e.next();
-// if (flow instanceof StaticContent) {
-// continue;
-// }
-
-// Status status = flow.getStatus();
-// isIncomplete |= status.isIncomplete();
-// }
-// return isIncomplete;
-// }
-
-// /**
-// * Returns the flow that maps to the given region class for the current
-// * page master.
-// */
-// private Flow getCurrentFlow(String regionClass) {
-// Region region = getCurrentSimplePageMaster().getRegion(regionClass);
-// if (region != null) {
-// Flow flow = (Flow)flowMap.get(region.getRegionName());
-// return flow;
-
-// } else {
-
-// getLogger().error("flow is null. regionClass = '" + regionClass
-// + "' currentSPM = "
-// + getCurrentSimplePageMaster());
-
-// return null;
-// }
-
-// }
-
-// private boolean isFlowForMasterNameDone(String masterName) {
-// // parameter is master-name of PMR; we need to locate PM
-// // referenced by this, and determine whether flow(s) are OK
-// if (isForcing)
-// return false;
-// if (masterName != null) {
-
-// SimplePageMaster spm =
-// this.layoutMasterSet.getSimplePageMaster(masterName);
-// Region region = spm.getRegion(Region.BODY);
-
-
-// Flow flow = (Flow)flowMap.get(region.getRegionName());
-// /*if ((null == flow) || flow.getStatus().isIncomplete())
-// return false;
-// else
-// return true;*/
-// }
-// return false;
-// }
-
-// public boolean isFlowSet() {
-// return isFlowSet;
-// }
-
-// public void setIsFlowSet(boolean isFlowSet) {
-// this.isFlowSet = isFlowSet;
-// }
-
- /**
- * Get the "initial-page-number" value.
- *
- * @return the initial-page-number property value
- */
- public String getIpnValue() {
- return ipnValue;
- }
-
- /**
- * Get the current page number for this page sequence.
- *
- * @return the current page number
- */
- public int getCurrentPageNumber() {
- return currentPageNumber;
- }
-
-// private void forcePage(AreaTree areaTree, int firstAvailPageNumber) {
-// boolean makePage = false;
-// if (this.forcePageCount == ForcePageCount.AUTO) {
-// PageSequence nextSequence =
-// this.root.getSucceedingPageSequence(this);
-// if (nextSequence != null) {
-// if (nextSequence.getIpnValue().equals("auto")) {
-// // do nothing special
-// }
-// else if (nextSequence.getIpnValue().equals("auto-odd")) {
-// if (firstAvailPageNumber % 2 == 0) {
-// makePage = true;
-// }
-// } else if (nextSequence.getIpnValue().equals("auto-even")) {
-// if (firstAvailPageNumber % 2 != 0) {
-// makePage = true;
-// }
-// } else {
-// int nextSequenceStartPageNumber =
-// nextSequence.getCurrentPageNumber();
-// if ((nextSequenceStartPageNumber % 2 == 0)
-// && (firstAvailPageNumber % 2 == 0)) {
-// makePage = true;
-// } else if ((nextSequenceStartPageNumber % 2 != 0)
-// && (firstAvailPageNumber % 2 != 0)) {
-// makePage = true;
-// }
-// }
-// }
-// } else if ((this.forcePageCount == ForcePageCount.EVEN)
-// && (this.pageCount % 2 != 0)) {
-// makePage = true;
-// } else if ((this.forcePageCount == ForcePageCount.ODD)
-// && (this.pageCount % 2 == 0)) {
-// makePage = true;
-// } else if ((this.forcePageCount == ForcePageCount.END_ON_EVEN)
-// && (firstAvailPageNumber % 2 == 0)) {
-// makePage = true;
-// } else if ((this.forcePageCount == ForcePageCount.END_ON_ODD)
-// && (firstAvailPageNumber % 2 != 0)) {
-// makePage = true;
-// } else if (this.forcePageCount == ForcePageCount.NO_FORCE) {
-// // do nothing
-// }
-
-// if (makePage) {
-// try {
-// this.isForcing = true;
-// this.currentPageNumber++;
-// firstAvailPageNumber = this.currentPageNumber;
-// currentPage = makePage(areaTree, firstAvailPageNumber, false,
-// true);
-// String formattedPageNumber =
-// pageNumberGenerator.makeFormattedPageNumber(this.currentPageNumber);
-// currentPage.setFormattedNumber(formattedPageNumber);
-// currentPage.setPageSequence(this);
-// formatStaticContent(areaTree);
-// log.debug("[forced-" + firstAvailPageNumber + "]");
-// areaTree.addPage(currentPage);
-// this.root.setRunningPageNumberCounter(this.currentPageNumber);
-// this.isForcing = false;
-// } catch (FOPException fopex) {
-// log.debug("'force-page-count' failure");
-// }
-// }
-// }
-
- /**
- * Get the current simple page master
- * that is active for the last page created.
- *
- * @return the current simple page master
- */
- public SimplePageMaster getCurrentSimplePageMaster() {
- return currentSimplePageMaster;
- }
-
- /**
- * Get the static content FO node from the flow map.
- * This gets the static content flow for the given flow name.
- *
- * @param name the flow name to find
- * @return the static content FO node
- */
- public StaticContent getStaticContent(String name) {
- return (StaticContent)flowMap.get(name);
- }
-}
-
diff --git a/src/org/apache/fop/fo/pagination/PageSequenceMaster.java b/src/org/apache/fop/fo/pagination/PageSequenceMaster.java
deleted file mode 100644
index 5b8c5e712..000000000
--- a/src/org/apache/fop/fo/pagination/PageSequenceMaster.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// Java
-import java.util.List;
-
-// SAX
-import org.xml.sax.Attributes;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.apps.FOPException;
-
-/**
- * The page-sequence-master formatting object.
- * This class handles a list of subsequence specifiers
- * which are simple or complex references to page-masters.
- */
-public class PageSequenceMaster extends FObj {
-
- private LayoutMasterSet layoutMasterSet;
- private List subSequenceSpecifiers;
- private SubSequenceSpecifier currentSubSequence;
- private int currentSubSequenceNumber;
- private String masterName;
-
- // The terminology may be confusing. A 'page-sequence-master' consists
- // of a sequence of what the XSL spec refers to as
- // 'sub-sequence-specifiers'. These are, in fact, simple or complex
- // references to page-masters. So the methods use the former
- // terminology ('sub-sequence-specifiers', or SSS),
- // but the actual FO's are MasterReferences.
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- public PageSequenceMaster(FONode parent) {
- super(parent);
- }
-
- /**
- * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
- */
- public void handleAttrs(Attributes attlist) throws FOPException {
- super.handleAttrs(attlist);
-
- subSequenceSpecifiers = new java.util.ArrayList();
-
- if (parent.getName().equals("fo:layout-master-set")) {
- this.layoutMasterSet = (LayoutMasterSet)parent;
- String pm = this.properties.get("master-name").getString();
- if (pm == null) {
- getLogger().warn("page-sequence-master does not have "
- + "a master-name and so is being ignored");
- } else {
- this.layoutMasterSet.addPageSequenceMaster(pm, this);
- }
- } else {
- throw new FOPException("fo:page-sequence-master must be child "
- + "of fo:layout-master-set, not "
- + parent.getName());
- }
- }
-
- /**
- * Adds a new suqsequence specifier to the page sequence master.
- * @param pageMasterReference the subsequence to add
- */
- protected void addSubsequenceSpecifier(SubSequenceSpecifier pageMasterReference) {
- subSequenceSpecifiers.add(pageMasterReference);
- }
-
- /**
- * Returns the next subsequence specifier
- * @return a subsequence specifier
- */
- private SubSequenceSpecifier getNextSubSequence() {
- currentSubSequenceNumber++;
- if (currentSubSequenceNumber >= 0
- && currentSubSequenceNumber < subSequenceSpecifiers.size()) {
- return (SubSequenceSpecifier)subSequenceSpecifiers
- .get(currentSubSequenceNumber);
- }
- return null;
- }
-
- /**
- * Resets the subsequence specifiers subsystem.
- */
- public void reset() {
- currentSubSequenceNumber = -1;
- currentSubSequence = null;
- for (int i = 0; i < subSequenceSpecifiers.size(); i++) {
- ((SubSequenceSpecifier)subSequenceSpecifiers.get(i)).reset();
- }
- }
-
- /**
- * Returns the next simple-page-master.
- * @param isOddPage True if the next page number is odd
- * @param isFirstPage True if the next page is the first
- * @param isBlankPage True if the next page is blank
- * @return the requested page master
- * @throws FOPException if there's a problem determining the next page master
- */
- public SimplePageMaster getNextSimplePageMaster(boolean isOddPage,
- boolean isFirstPage,
- boolean isBlankPage)
- throws FOPException {
- if (currentSubSequence == null) {
- currentSubSequence = getNextSubSequence();
- if (currentSubSequence == null) {
- throw new FOPException("no subsequences in page-sequence-master '"
- + masterName + "'");
- }
- }
- String pageMasterName = currentSubSequence
- .getNextPageMasterName(isOddPage, isFirstPage, isBlankPage);
- boolean canRecover = true;
- while (pageMasterName == null) {
- SubSequenceSpecifier nextSubSequence = getNextSubSequence();
- if (nextSubSequence == null) {
- if (!canRecover) {
- throw new FOPException("subsequences exhausted in page-sequence-master '"
- + masterName
- + "', cannot recover");
- }
- getLogger().warn("subsequences exhausted in page-sequence-master '"
- + masterName
- + "', use previous subsequence");
- currentSubSequence.reset();
- canRecover = false;
- } else {
- currentSubSequence = nextSubSequence;
- }
- pageMasterName = currentSubSequence
- .getNextPageMasterName(isOddPage, isFirstPage, isBlankPage);
- }
- SimplePageMaster pageMaster = this.layoutMasterSet
- .getSimplePageMaster(pageMasterName);
- if (pageMaster == null) {
- throw new FOPException("No simple-page-master matching '"
- + pageMasterName + "' in page-sequence-master '"
- + masterName + "'");
- }
- return pageMaster;
- }
-
-}
-
diff --git a/src/org/apache/fop/fo/pagination/Region.java b/src/org/apache/fop/fo/pagination/Region.java
deleted file mode 100644
index 2a4b6baef..000000000
--- a/src/org/apache/fop/fo/pagination/Region.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// Java
-import java.awt.Rectangle;
-import java.awt.geom.Rectangle2D;
-
-// FOP
-import org.apache.fop.datatypes.FODimension;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.layout.BorderAndPadding;
-import org.apache.fop.layout.BackgroundProps;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.area.CTM;
-import org.apache.fop.area.RegionViewport;
-import org.apache.fop.area.RegionReference;
-import org.apache.fop.layoutmgr.TraitSetter;
-
-// SAX
-import org.xml.sax.Attributes;
-
-/**
- * This is an abstract base class for pagination regions
- */
-public abstract class Region extends FObj {
-
- private static final String PROP_REGION_NAME = "region-name";
-
- /** Key for before regions */
- public static final String BEFORE = "before";
- /** Key for start regions */
- public static final String START = "start";
- /** Key for end regions */
- public static final String END = "end";
- /** Key for after regions */
- public static final String AFTER = "after";
- /** Key for body regions */
- public static final String BODY = "body";
-
- private SimplePageMaster layoutMaster;
- private String regionName;
-
- /** Holds the overflow attribute */
- protected int overflow;
- /** Holds the writing mode */
- protected int wm;
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- protected Region(FONode parent) {
- super(parent);
- }
-
- /**
- * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
- */
- public void handleAttrs(Attributes attlist) throws FOPException {
- super.handleAttrs(attlist);
-
- // regions may have name, or default
- if (null == this.properties.get(PROP_REGION_NAME)) {
- setRegionName(getDefaultRegionName());
- } else if (this.properties.get(PROP_REGION_NAME).getString().equals("")) {
- setRegionName(getDefaultRegionName());
- } else {
- setRegionName(this.properties.get(PROP_REGION_NAME).getString());
- // check that name is OK. Not very pretty.
- if (isReserved(getRegionName())
- && !getRegionName().equals(getDefaultRegionName())) {
- throw new FOPException(PROP_REGION_NAME + " '" + regionName
- + "' for " + this.name
- + " not permitted.");
- }
- }
-
- if (parent instanceof SimplePageMaster) {
- layoutMaster = (SimplePageMaster)parent;
- } else {
- throw new FOPException(this.name + " must be child "
- + "of simple-page-master, not "
- + parent.getName());
- }
- this.wm = this.properties.get("writing-mode").getEnum();
- }
-
- /**
- * Creates a RegionViewport Area object for this pagination Region.
- * @param reldims relative dimensions
- * @param pageCTM page coordinate transformation matrix
- * @return the new region viewport
- */
- public RegionViewport makeRegionViewport(FODimension reldims, CTM pageCTM) {
- Rectangle2D relRegionRect = getViewportRectangle(reldims);
- Rectangle2D absRegionRect = pageCTM.transform(relRegionRect);
- // Get the region viewport rectangle in absolute coords by
- // transforming it using the page CTM
- RegionViewport rv = new RegionViewport(absRegionRect);
- setRegionViewportTraits(rv);
- return rv;
- }
-
- /**
- * Set the region viewport traits.
- * The viewport has the border, background and
- * clipping overflow traits.
- *
- * @param r the region viewport
- */
- protected void setRegionViewportTraits(RegionViewport r) {
- // Common Border, Padding, and Background Properties
- BorderAndPadding bap = propMgr.getBorderAndPadding();
- BackgroundProps bProps = propMgr.getBackgroundProps();
- TraitSetter.addBorders(r, bap);
- TraitSetter.addBackground(r, bProps);
-
- // this.properties.get("clip");
- // this.properties.get("display-align");
- this.overflow = this.properties.get("overflow").getEnum();
- }
-
- protected abstract Rectangle getViewportRectangle(FODimension pageRefRect);
-
- /**
- * Create the region reference area for this region master.
- * @param absRegVPRect The region viewport rectangle is "absolute" coordinates
- * where x=distance from left, y=distance from bottom, width=right-left
- * height=top-bottom
- * @return a new region reference area
- */
- public RegionReference makeRegionReferenceArea(Rectangle2D absRegVPRect) {
- RegionReference r = new RegionReference(getRegionAreaClass());
- setRegionPosition(r, absRegVPRect);
- return r;
- }
-
- /**
- * Set the region position inside the region viewport.
- * This sets the trasnform that is used to place the contents of
- * the region.
- *
- * @param r the region reference area
- * @param absRegVPRect the rectangle to place the region contents
- */
- protected void setRegionPosition(RegionReference r, Rectangle2D absRegVPRect) {
- FODimension reldims = new FODimension(0, 0);
- r.setCTM(propMgr.getCTMandRelDims(absRegVPRect, reldims));
- }
-
- /**
- * Return the enumerated value designating this type of region in the
- * Area tree.
- * @return the region area class
- */
- protected abstract int getRegionAreaClass();
-
- /**
- * Returns the default region name (xsl-region-before, xsl-region-start,
- * etc.)
- * @return the default region name
- */
- protected abstract String getDefaultRegionName();
-
-
- /**
- * Returns the region class name.
- * @return the region class name
- */
- public abstract String getRegionClass();
-
-
- /**
- * Returns the name of this region.
- * @return the region name
- */
- public String getRegionName() {
- return this.regionName;
- }
-
- /**
- * Sets the name of the region.
- * @param name the name
- */
- private void setRegionName(String name) {
- this.regionName = name;
- }
-
- /**
- * Returns the page master associated with this region.
- * @return a simple-page-master
- */
- protected SimplePageMaster getPageMaster() {
- return this.layoutMaster;
- }
-
- /**
- * Checks to see if a given region name is one of the reserved names
- *
- * @param name a region name to check
- * @return true if the name parameter is a reserved region name
- */
- protected boolean isReserved(String name) /*throws FOPException*/ {
- return (name.equals("xsl-region-before")
- || name.equals("xsl-region-start")
- || name.equals("xsl-region-end")
- || name.equals("xsl-region-after")
- || name.equals("xsl-before-float-separator")
- || name.equals("xsl-footnote-separator"));
- }
-
- /**
- * @see org.apache.fop.fo.FObj#generatesReferenceAreas()
- */
- public boolean generatesReferenceAreas() {
- return true;
- }
-
- /**
- * Returns a sibling region for this region.
- * @param regionClass the class of the requested region
- * @return the requested region
- */
- protected Region getSiblingRegion(String regionClass) {
- // Ask parent for region
- return layoutMaster.getRegion(regionClass);
- }
-
- /**
- * Indicates if this region gets precedence.
- * @return True if it gets precedence
- */
- public boolean getPrecedence() {
- return false;
- }
-
- public int getExtent() {
- return 0;
- }
-}
diff --git a/src/org/apache/fop/fo/pagination/RegionAfter.java b/src/org/apache/fop/fo/pagination/RegionAfter.java
deleted file mode 100644
index e8b3cae1b..000000000
--- a/src/org/apache/fop/fo/pagination/RegionAfter.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// Java
-import java.awt.Rectangle;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.properties.WritingMode;
-import org.apache.fop.datatypes.FODimension;
-import org.apache.fop.area.RegionReference;
-
-/**
- * The fo:region-after element.
- */
-public class RegionAfter extends RegionBA {
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- public RegionAfter(FONode parent) {
- super(parent);
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getViewportRectangle(FODimension)
- */
- protected Rectangle getViewportRectangle (FODimension reldims) {
- // Depends on extent, precedence ans writing mode
- Rectangle vpRect;
- if (this.wm == WritingMode.LR_TB || this.wm == WritingMode.RL_TB) {
- vpRect = new Rectangle(0, reldims.bpd - getExtent(), reldims.ipd, getExtent());
- } else {
- vpRect = new Rectangle(0, reldims.bpd - getExtent(), getExtent(), reldims.ipd);
- }
- if (getPrecedence() == false) {
- adjustIPD(vpRect, this.wm);
- }
- return vpRect;
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getDefaultRegionName()
- */
- protected String getDefaultRegionName() {
- return "xsl-region-after";
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getRegionAreaClass()
- */
- public int getRegionAreaClass() {
- return RegionReference.AFTER;
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getRegionClass()
- */
- public String getRegionClass() {
- return Region.AFTER;
- }
-}
-
diff --git a/src/org/apache/fop/fo/pagination/RegionBA.java b/src/org/apache/fop/fo/pagination/RegionBA.java
deleted file mode 100644
index 2f301ef08..000000000
--- a/src/org/apache/fop/fo/pagination/RegionBA.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// Java
-import java.awt.Rectangle;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.properties.Precedence;
-import org.apache.fop.fo.properties.WritingMode;
-
-/**
- * Abstract base class for fo:region-before and fo:region-after.
- */
-public abstract class RegionBA extends RegionBASE {
-
- private boolean bPrecedence;
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- protected RegionBA(FONode parent) {
- super(parent);
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getPrecedence()
- */
- public boolean getPrecedence() {
- return bPrecedence;
- }
-
- /**
- * @see org.apache.fop.fo.FONode#end()
- */
- public void end() {
- super.end();
- bPrecedence =
- (this.properties.get("precedence").getEnum() == Precedence.TRUE);
- }
-
- /**
- * Adjust the viewport reference rectangle for a region as a function
- * of precedence.
- * If precedence is false on a before or after region, its
- * inline-progression-dimension is limited by the extent of the start
- * and end regions if they are present.
- * @param vpRect viewport rectangle
- * @param wm writing mode
- */
- protected void adjustIPD(Rectangle vpRect, int wm) {
- int offset = 0;
- Region start = getSiblingRegion(Region.START);
- if (start != null) {
- offset = start.getExtent();
- vpRect.translate(offset, 0);
- }
- Region end = getSiblingRegion(Region.END);
- if (end != null) {
- offset += end.getExtent();
- }
- if (offset > 0) {
- if (wm == WritingMode.LR_TB || wm == WritingMode.RL_TB) {
- vpRect.width -= offset;
- } else {
- vpRect.height -= offset;
- }
- }
- }
-}
-
diff --git a/src/org/apache/fop/fo/pagination/RegionBASE.java b/src/org/apache/fop/fo/pagination/RegionBASE.java
deleted file mode 100644
index 8a5f3c975..000000000
--- a/src/org/apache/fop/fo/pagination/RegionBASE.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// FOP
-import org.apache.fop.fo.FONode;
-
-/**
- * Base class for Before, After, Start and End regions (BASE).
- */
-public abstract class RegionBASE extends Region {
-
- private int extent;
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- protected RegionBASE(FONode parent) {
- super(parent);
- }
-
- /**
- * @see org.apache.fop.fo.FONode#end()
- */
- public void end() {
- // The problem with this is that it might not be known yet....
- // Supposing extent is calculated in terms of percentage
- this.extent = this.properties.get("extent").getLength().getValue();
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getExtent()
- */
- public int getExtent() {
- return this.extent;
- }
-}
-
diff --git a/src/org/apache/fop/fo/pagination/RegionBefore.java b/src/org/apache/fop/fo/pagination/RegionBefore.java
deleted file mode 100644
index 716848fea..000000000
--- a/src/org/apache/fop/fo/pagination/RegionBefore.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// FOP
-import org.apache.fop.datatypes.FODimension;
-import org.apache.fop.fo.properties.WritingMode;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.area.RegionReference;
-
-// Java
-import java.awt.Rectangle;
-
-/**
- * The fo:region-before element.
- */
-public class RegionBefore extends RegionBA {
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- public RegionBefore(FONode parent) {
- super(parent);
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getDefaultRegionName()
- */
- protected String getDefaultRegionName() {
- return "xsl-region-before";
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getRegionClass()
- */
- public String getRegionClass() {
- return Region.BEFORE;
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getRegionAreaClass()
- */
- public int getRegionAreaClass() {
- return RegionReference.BEFORE;
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getViewportRectangle(FODimension)
- */
- protected Rectangle getViewportRectangle (FODimension reldims) {
- // Depends on extent, precedence and writing mode
- // This should return rectangle in writing-mode coordinates relative
- // to the page-reference area rectangle
- // This means the origin is (start, before) and the dimensions are (ipd,bpd)
- // Before is always 0, start depends on extent
- // ipd depends on precedence, bpd=extent
- Rectangle vpRect;
- if (this.wm == WritingMode.LR_TB || this.wm == WritingMode.RL_TB) {
- vpRect = new Rectangle(0, 0, reldims.ipd, getExtent());
- } else {
- vpRect = new Rectangle(0, 0, getExtent(), reldims.ipd);
- }
- if (getPrecedence() == false) {
- adjustIPD(vpRect, this.wm);
- }
- return vpRect;
- }
-}
-
diff --git a/src/org/apache/fop/fo/pagination/RegionBody.java b/src/org/apache/fop/fo/pagination/RegionBody.java
deleted file mode 100644
index 4480fc939..000000000
--- a/src/org/apache/fop/fo/pagination/RegionBody.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// Java
-import java.awt.Rectangle;
-import java.awt.geom.Rectangle2D;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.fo.PropertyList;
-import org.apache.fop.fo.Property;
-import org.apache.fop.fo.properties.Overflow;
-import org.apache.fop.fo.properties.WritingMode;
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.datatypes.FODimension;
-import org.apache.fop.area.RegionReference;
-import org.apache.fop.area.BodyRegion;
-import org.apache.fop.layout.MarginProps;
-
-/**
- * The fo:region-body element.
- */
-public class RegionBody extends Region {
-
- private ColorType backgroundColor;
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- public RegionBody(FONode parent) {
- super(parent);
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getViewportRectangle(FODimension)
- */
- protected Rectangle getViewportRectangle (FODimension reldims) {
- /*
- * Use space-before and space-after which will use corresponding
- * absolute margin properties if specified. For indents:
- * try to get corresponding absolute margin property using the
- * writing-mode on the page (not on the region-body!). If that's not
- * set but indent is explicitly set, it will return that.
- */
- MarginProps mProps = propMgr.getMarginProps();
- int start = getRelMargin(PropertyList.START, "start-indent");
- Rectangle vpRect;
- if (this.wm == WritingMode.LR_TB || this.wm == WritingMode.RL_TB) {
- vpRect = new Rectangle(start, mProps.spaceBefore,
- reldims.ipd - start
- - getRelMargin(PropertyList.END, "end-indent"),
- reldims.bpd - mProps.spaceBefore - mProps.spaceAfter);
- } else {
- vpRect = new Rectangle(start, mProps.spaceBefore,
- reldims.bpd - mProps.spaceBefore - mProps.spaceAfter,
- reldims.ipd - start
- - getRelMargin(PropertyList.END, "end-indent"));
- }
- return vpRect;
- }
-
- /**
- * Get the relative margin using parent's writing mode, not own
- * writing mode.
- */
- private int getRelMargin(int reldir, String sRelPropName) {
- FObj parent = (FObj) getParent();
- String sPropName = "margin-"
- + parent.properties.wmRelToAbs(reldir);
- Property prop = properties.getExplicitBaseProp(sPropName);
- if (prop == null) {
- prop = properties.getExplicitBaseProp(sRelPropName);
- }
- return ((prop != null) ? prop.getLength().getValue() : 0);
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getDefaultRegionName()
- */
- protected String getDefaultRegionName() {
- return "xsl-region-body";
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getRegionClass()
- */
- public String getRegionClass() {
- return Region.BODY;
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getRegionAreaClass()
- */
- public int getRegionAreaClass() {
- return RegionReference.BODY;
- }
-
- /**
- * Override the inherited method.
- * @see org.apache.fop.fo.pagination.Region#makeRegionReferenceArea(Rectangle2D)
- */
- public RegionReference makeRegionReferenceArea(Rectangle2D absRegVPRect) {
- // Should set some column stuff here I think, or put it elsewhere
- BodyRegion body = new BodyRegion();
- setRegionPosition(body, absRegVPRect);
- int columnCount =
- this.properties.get("column-count").getNumber().intValue();
- if ((columnCount > 1) && (overflow == Overflow.SCROLL)) {
- // recover by setting 'column-count' to 1. This is allowed but
- // not required by the spec.
- getLogger().error("Setting 'column-count' to 1 because "
- + "'overflow' is set to 'scroll'");
- columnCount = 1;
- }
- body.setColumnCount(columnCount);
-
- int columnGap =
- this.properties.get("column-gap").getLength().getValue();
- body.setColumnGap(columnGap);
- return body;
- }
-
-}
diff --git a/src/org/apache/fop/fo/pagination/RegionEnd.java b/src/org/apache/fop/fo/pagination/RegionEnd.java
deleted file mode 100644
index 30d6dd9b1..000000000
--- a/src/org/apache/fop/fo/pagination/RegionEnd.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// Java
-import java.awt.Rectangle;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.properties.WritingMode;
-import org.apache.fop.datatypes.FODimension;
-import org.apache.fop.area.RegionReference;
-
-/**
- * The fo:region-end element.
- */
-public class RegionEnd extends RegionSE {
-
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- public RegionEnd(FONode parent) {
- super(parent);
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getViewportRectangle(FODimension)
- */
- protected Rectangle getViewportRectangle (FODimension reldims) {
- // Depends on extent, precedence and writing mode
- Rectangle vpRect;
- if (this.wm == WritingMode.LR_TB || this.wm == WritingMode.RL_TB) {
- vpRect = new Rectangle(reldims.ipd - getExtent(), 0,
- getExtent(), reldims.bpd);
- } else {
- vpRect = new Rectangle(reldims.ipd - getExtent(), 0,
- reldims.bpd, getExtent());
- }
- adjustIPD(vpRect, this.wm);
- return vpRect;
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getDefaultRegionName()
- */
- protected String getDefaultRegionName() {
- return "xsl-region-end";
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getRegionClass()
- */
- public String getRegionClass() {
- return Region.END;
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getRegionAreaClass()
- */
- public int getRegionAreaClass() {
- return RegionReference.END;
- }
-}
-
diff --git a/src/org/apache/fop/fo/pagination/RegionSE.java b/src/org/apache/fop/fo/pagination/RegionSE.java
deleted file mode 100644
index f62200014..000000000
--- a/src/org/apache/fop/fo/pagination/RegionSE.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// Java
-import java.awt.Rectangle;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.properties.WritingMode;
-
-/**
- * Abstract base class for fo:region-start and fo:region-end.
- */
-public abstract class RegionSE extends RegionBASE {
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- protected RegionSE(FONode parent) {
- super(parent);
- }
-
- /**
- * Adjust the viewport reference rectangle for a region as a function
- * of precedence.
- * If before and after have precedence = true, the start and end
- * regions only go to the limits of their extents, otherwise
- * they extend in the BPD to the page reference rectangle
- * diminish by extend of start and end if present.
- * @param refRect reference rectangle
- * @param wm writing mode
- */
- protected void adjustIPD(Rectangle refRect, int wm) {
- int offset = 0;
- Region before = getSiblingRegion(Region.BEFORE);
- if (before != null && before.getPrecedence()) {
- offset = before.getExtent();
- refRect.translate(0, offset);
- }
- Region after = getSiblingRegion(Region.AFTER);
- if (after != null && after.getPrecedence()) {
- offset += after.getExtent();
- }
- if (offset > 0) {
- if (wm == WritingMode.LR_TB || wm == WritingMode.RL_TB) {
- refRect.height -= offset;
- } else {
- refRect.width -= offset;
- }
- }
- }
-}
-
diff --git a/src/org/apache/fop/fo/pagination/RegionStart.java b/src/org/apache/fop/fo/pagination/RegionStart.java
deleted file mode 100644
index 454812b13..000000000
--- a/src/org/apache/fop/fo/pagination/RegionStart.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// Java
-import java.awt.Rectangle;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.properties.WritingMode;
-import org.apache.fop.datatypes.FODimension;
-import org.apache.fop.area.RegionReference;
-
-/**
- * The fo:region-start element.
- */
-public class RegionStart extends RegionSE {
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- public RegionStart(FONode parent) {
- super(parent);
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getViewportRectangle(FODimension)
- */
- protected Rectangle getViewportRectangle (FODimension reldims) {
- // Depends on extent, precedence and writing mode
- // This is the rectangle relative to the page-reference area in
- // writing-mode relative coordinates
- Rectangle vpRect;
- if (this.wm == WritingMode.LR_TB || this.wm == WritingMode.RL_TB) {
- vpRect = new Rectangle(0, 0, getExtent(), reldims.bpd);
- } else {
- vpRect = new Rectangle(0, 0, reldims.bpd, getExtent());
- }
- adjustIPD(vpRect, this.wm);
- return vpRect;
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getDefaultRegionName()
- */
- protected String getDefaultRegionName() {
- return "xsl-region-start";
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getRegionClass()
- */
- public String getRegionClass() {
- return Region.START;
- }
-
- /**
- * @see org.apache.fop.fo.pagination.Region#getRegionAreaClass()
- */
- public int getRegionAreaClass() {
- return RegionReference.START;
- }
-}
-
diff --git a/src/org/apache/fop/fo/pagination/RepeatablePageMasterAlternatives.java b/src/org/apache/fop/fo/pagination/RepeatablePageMasterAlternatives.java
deleted file mode 100644
index 0401b27e2..000000000
--- a/src/org/apache/fop/fo/pagination/RepeatablePageMasterAlternatives.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// Java
-import java.util.ArrayList;
-
-// XML
-import org.xml.sax.Attributes;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.apps.FOPException;
-
-/**
- * A repeatable-page-master-alternatives formatting object.
- * This contains a list of conditional-page-master-reference
- * and the page master is found from the reference that
- * matches the page number and emptyness.
- */
-public class RepeatablePageMasterAlternatives extends FObj
- implements SubSequenceSpecifier {
-
- private static final int INFINITE = -1;
-
- /**
- * Max times this page master can be repeated.
- * INFINITE is used for the unbounded case
- */
- private int maximumRepeats;
- private int numberConsumed = 0;
-
- private ArrayList conditionalPageMasterRefs;
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- public RepeatablePageMasterAlternatives(FONode parent) {
- super(parent);
- }
-
- /**
- * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
- */
- public void handleAttrs(Attributes attlist) throws FOPException {
- super.handleAttrs(attlist);
-
- conditionalPageMasterRefs = new ArrayList();
-
- if (parent.getName().equals("fo:page-sequence-master")) {
- PageSequenceMaster pageSequenceMaster = (PageSequenceMaster)parent;
- pageSequenceMaster.addSubsequenceSpecifier(this);
- } else {
- throw new FOPException("fo:repeatable-page-master-alternatives "
- + "must be child of fo:page-sequence-master, not "
- + parent.getName());
- }
-
- String mr = getProperty("maximum-repeats").getString();
- if (mr.equals("no-limit")) {
- this.maximumRepeats = INFINITE;
- } else {
- try {
- this.maximumRepeats = Integer.parseInt(mr);
- if (this.maximumRepeats < 0) {
- getLogger().debug("negative maximum-repeats: "
- + this.maximumRepeats);
- this.maximumRepeats = 0;
- }
- } catch (NumberFormatException nfe) {
- throw new FOPException("Invalid number for "
- + "'maximum-repeats' property");
- }
- }
- }
-
- /**
- * Get the next matching page master from the conditional
- * page master references.
- * @see org.apache.fop.fo.pagination.SubSequenceSpecifier
- */
- public String getNextPageMasterName(boolean isOddPage,
- boolean isFirstPage,
- boolean isBlankPage) {
- if (maximumRepeats != INFINITE) {
- if (numberConsumed < maximumRepeats) {
- numberConsumed++;
- } else {
- return null;
- }
- }
-
- for (int i = 0; i < conditionalPageMasterRefs.size(); i++) {
- ConditionalPageMasterReference cpmr =
- (ConditionalPageMasterReference)conditionalPageMasterRefs.get(i);
- if (cpmr.isValid(isOddPage, isFirstPage, isBlankPage)) {
- return cpmr.getMasterName();
- }
- }
- return null;
- }
-
-
- /**
- * Adds a new conditional page master reference.
- * @param cpmr the new conditional reference
- */
- public void addConditionalPageMasterReference(ConditionalPageMasterReference cpmr) {
- this.conditionalPageMasterRefs.add(cpmr);
- }
-
- /**
- * @see org.apache.fop.fo.pagination.SubSequenceSpecifier#reset()
- */
- public void reset() {
- this.numberConsumed = 0;
- }
-
-}
diff --git a/src/org/apache/fop/fo/pagination/RepeatablePageMasterReference.java b/src/org/apache/fop/fo/pagination/RepeatablePageMasterReference.java
deleted file mode 100644
index 8707175a4..000000000
--- a/src/org/apache/fop/fo/pagination/RepeatablePageMasterReference.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// XML
-import org.xml.sax.Attributes;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.apps.FOPException;
-
-/**
- * A repeatable-page-master-reference formatting object.
- * This handles a reference with a specified number of repeating
- * instances of the referenced page master (may have no limit).
- */
-public class RepeatablePageMasterReference extends PageMasterReference
- implements SubSequenceSpecifier {
-
- private static final int INFINITE = -1;
-
- private PageSequenceMaster pageSequenceMaster;
-
- private int maximumRepeats;
- private int numberConsumed = 0;
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- public RepeatablePageMasterReference(FONode parent) {
- super(parent);
- }
-
- /**
- * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
- */
- public void handleAttrs(Attributes attlist) throws FOPException {
- super.handleAttrs(attlist);
-
- String mr = getProperty("maximum-repeats").getString();
- if (mr.equals("no-limit")) {
- this.maximumRepeats = INFINITE;
- } else {
- try {
- this.maximumRepeats = Integer.parseInt(mr);
- if (this.maximumRepeats < 0) {
- getLogger().debug("negative maximum-repeats: "
- + this.maximumRepeats);
- this.maximumRepeats = 0;
- }
- } catch (NumberFormatException nfe) {
- throw new FOPException("Invalid number for "
- + "'maximum-repeats' property");
- }
- }
- }
-
- /**
- * @see org.apache.fop.fo.pagination.SubSequenceSpecifier
- */
- public String getNextPageMasterName(boolean isOddPage,
- boolean isFirstPage,
- boolean isEmptyPage) {
- if (maximumRepeats != INFINITE) {
- if (numberConsumed < maximumRepeats) {
- numberConsumed++;
- } else {
- return null;
- }
- }
- return getMasterName();
- }
-
- /**
- * @see org.apache.fop.fo.pagination.SubSequenceSpecifier#reset()
- */
- public void reset() {
- this.numberConsumed = 0;
- }
-
-}
diff --git a/src/org/apache/fop/fo/pagination/Root.java b/src/org/apache/fop/fo/pagination/Root.java
deleted file mode 100644
index 0e4e7b864..000000000
--- a/src/org/apache/fop/fo/pagination/Root.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// FOP
-import org.apache.fop.fo.FObj;
-import org.apache.fop.fo.FONode;
-
-// Java
-import java.util.List;
-
-/**
- * The fo:root formatting object. Contains page masters, page-sequences.
- */
-public class Root extends FObj {
- private LayoutMasterSet layoutMasterSet;
- private List pageSequences;
-
- /**
- * Keeps count of page number from over PageSequence instances
- */
- private int runningPageNumberCounter = 0;
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- public Root(FONode parent) {
- super(parent);
- // this.properties.get("media-usage");
- pageSequences = new java.util.ArrayList();
- if (parent != null) {
- //throw new FOPException("root must be root element");
- }
- }
-
- /**
- * Returns the number of pages generated (over all PageSequence instances).
- * @return the number of pages
- */
- protected int getRunningPageNumberCounter() {
- return this.runningPageNumberCounter;
- }
-
- /**
- * Sets the overall page number counter.
- * @param count the new page count
- */
- protected void setRunningPageNumberCounter(int count) {
- this.runningPageNumberCounter = count;
- }
-
- /**
- * Returns the number of PageSequence instances.
- * @return the number of PageSequence instances
- */
- public int getPageSequenceCount() {
- return pageSequences.size();
- }
-
- /**
- * Some properties, such as 'force-page-count', require a
- * page-sequence to know about some properties of the next.
- * @param current the current PageSequence
- * @return succeeding PageSequence; null if none
- */
- public PageSequence getSucceedingPageSequence(PageSequence current) {
- int currentIndex = pageSequences.indexOf(current);
- if (currentIndex == -1) {
- return null;
- }
- if (currentIndex < (pageSequences.size() - 1)) {
- return (PageSequence)pageSequences.get(currentIndex + 1);
- } else {
- return null;
- }
- }
-
- /**
- * Returns the associated LayoutMasterSet.
- * @return the LayoutMasterSet instance
- */
- public LayoutMasterSet getLayoutMasterSet() {
- return this.layoutMasterSet;
- }
-
- /**
- * Sets the associated LayoutMasterSet.
- * @param layoutMasterSet the LayoutMasterSet to use
- */
- public void setLayoutMasterSet(LayoutMasterSet layoutMasterSet) {
- this.layoutMasterSet = layoutMasterSet;
- }
-}
diff --git a/src/org/apache/fop/fo/pagination/SimplePageMaster.java b/src/org/apache/fop/fo/pagination/SimplePageMaster.java
deleted file mode 100644
index 3c705e7d7..000000000
--- a/src/org/apache/fop/fo/pagination/SimplePageMaster.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-// Java
-import java.awt.Rectangle;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-// XML
-import org.xml.sax.Attributes;
-
-// FOP
-import org.apache.fop.area.CTM;
-import org.apache.fop.datatypes.FODimension;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.area.PageViewport;
-import org.apache.fop.area.Page;
-import org.apache.fop.area.RegionViewport;
-import org.apache.fop.area.RegionReference;
-import org.apache.fop.layout.MarginProps;
-import org.apache.fop.layout.PageMaster;
-import org.apache.fop.apps.FOPException;
-
-/**
- * A simple-page-master formatting object.
- * This creates a simple page from the specified regions
- * and attributes.
- */
-public class SimplePageMaster extends FObj {
- /**
- * Page regions (regionClass, Region)
- */
- private Map regions;
-
- private PageMaster pageMaster;
- private String masterName;
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- public SimplePageMaster(FONode parent) {
- super(parent);
- }
-
- /**
- * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
- */
- public void handleAttrs(Attributes attlist) throws FOPException {
- super.handleAttrs(attlist);
-
- if (parent.getName().equals("fo:layout-master-set")) {
- LayoutMasterSet layoutMasterSet = (LayoutMasterSet)parent;
- masterName = this.properties.get("master-name").getString();
- if (masterName == null) {
- getLogger().warn("simple-page-master does not have "
- + "a master-name and so is being ignored");
- } else {
- layoutMasterSet.addSimplePageMaster(this);
- }
- } else {
- throw new FOPException("fo:simple-page-master must be child "
- + "of fo:layout-master-set, not "
- + parent.getName());
- }
- //Well, there are only 5 regions so we can save a bit of memory here
- regions = new HashMap(5);
- }
-
- /**
- * At the end of this element read all the information and create
- * the page master.
- */
- protected void end() {
- int pageWidth =
- this.properties.get("page-width").getLength().getValue();
- int pageHeight =
- this.properties.get("page-height").getLength().getValue();
- // this.properties.get("reference-orientation");
- // this.properties.get("writing-mode");
-
- // Get absolute margin properties (top, left, bottom, right)
- MarginProps mProps = propMgr.getMarginProps();
-
- /* Create the page reference area rectangle (0,0 is at top left
- * of the "page media" and y increases
- * when moving towards the bottom of the page.
- * The media rectangle itself is (0,0,pageWidth,pageHeight).
- */
- Rectangle pageRefRect =
- new Rectangle(mProps.marginLeft, mProps.marginTop,
- pageWidth - mProps.marginLeft - mProps.marginRight,
- pageHeight - mProps.marginTop - mProps.marginBottom);
-
- // ??? KL shouldn't this take the viewport too???
- Page page = new Page(); // page reference area
-
- // Set up the CTM on the page reference area based on writing-mode
- // and reference-orientation
- FODimension reldims = new FODimension(0, 0);
- CTM pageCTM = propMgr.getCTMandRelDims(pageRefRect, reldims);
-
- // Create a RegionViewport/ reference area pair for each page region
-
- boolean bHasBody = false;
-
- for (Iterator regenum = regions.values().iterator();
- regenum.hasNext();) {
- Region r = (Region)regenum.next();
- RegionViewport rvp = r.makeRegionViewport(reldims, pageCTM);
- rvp.setRegion(r.makeRegionReferenceArea(rvp.getViewArea()));
- page.setRegion(r.getRegionAreaClass(), rvp);
- if (r.getRegionAreaClass() == RegionReference.BODY) {
- bHasBody = true;
- }
- }
-
- if (!bHasBody) {
- getLogger().error("simple-page-master has no region-body");
- }
-
- this.pageMaster = new PageMaster(new PageViewport(page,
- new Rectangle(0, 0, pageWidth, pageHeight)));
-
- // regions = null; // PageSequence access SimplePageMaster....
- children = null;
- properties = null;
- }
-
- /**
- * @see org.apache.fop.fo.FObj#generatesReferenceAreas()
- */
- public boolean generatesReferenceAreas() {
- return true;
- }
-
- /**
- * Returns the page master.
- * @return the page master
- */
- public PageMaster getPageMaster() {
- return this.pageMaster;
- }
-
- /**
- * Returns the next page master. For simple-page-master this is always the
- * same as the previous.
- * @return the page master
- */
- public PageMaster getNextPageMaster() {
- return this.pageMaster;
- }
-
- /**
- * Returns the name of the simple-page-master.
- * @return the page master name
- */
- public String getMasterName() {
- return masterName;
- }
-
- /**
- * @see org.apache.fop.fo.FONode#addChild(FONode)
- */
- protected void addChild(FONode child) {
- if (child instanceof Region) {
- addRegion((Region)child);
- } else {
- getLogger().error("SimplePageMaster cannot have child of type "
- + child.getName());
- }
- }
-
- /**
- * Adds a region to this simple-page-master.
- * @param region region to add
- */
- protected void addRegion(Region region) {
- String key = region.getRegionClass();
- if (regions.containsKey(key)) {
- getLogger().error("Only one region of class " + key
- + " allowed within a simple-page-master. The duplicate"
- + " region (" + region.getName() + ") is ignored.");
- } else {
- regions.put(key, region);
- }
- }
-
- /**
- * Returns the region for a given region class.
- * @param regionClass region class to lookup
- * @return the region, null if it doesn't exist
- */
- public Region getRegion(String regionClass) {
- return (Region)regions.get(regionClass);
- }
-
- /**
- * Returns a Map of regions associated with this simple-page-master
- * @return the regions
- */
- protected Map getRegions() {
- return regions;
- }
-
- /**
- * Indicates if a region with a given name exists in this
- * simple-page-master.
- * @param regionName name of the region to lookup
- * @return True if a region with this name exists
- */
- protected boolean regionNameExists(String regionName) {
- for (Iterator regenum = regions.values().iterator();
- regenum.hasNext();) {
- Region r = (Region)regenum.next();
- if (r.getRegionName().equals(regionName)) {
- return true;
- }
- }
- return false;
- }
-}
-
diff --git a/src/org/apache/fop/fo/pagination/SinglePageMasterReference.java b/src/org/apache/fop/fo/pagination/SinglePageMasterReference.java
deleted file mode 100644
index 8ed60ea04..000000000
--- a/src/org/apache/fop/fo/pagination/SinglePageMasterReference.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-import org.apache.fop.fo.FONode;
-
-/**
- * A single-page-master-reference formatting object.
- * This is a reference for a single page. It returns the
- * master name only once until reset.
- */
-public class SinglePageMasterReference extends PageMasterReference
- implements SubSequenceSpecifier {
-
- private static final int FIRST = 0;
- private static final int DONE = 1;
-
- private int state;
-
- /**
- * @see org.apache.fop.fo.FONode#FONode(FONode)
- */
- public SinglePageMasterReference(FONode parent) {
- super(parent);
- this.state = FIRST;
- }
-
- /**
- * @see org.apache.fop.fo.pagination.SubSequenceSpecifier
- */
- public String getNextPageMasterName(boolean isOddPage,
- boolean isFirstPage,
- boolean isEmptyPage) {
- if (this.state == FIRST) {
- this.state = DONE;
- return getMasterName();
- } else {
- return null;
- }
- }
-
- /**
- * @see org.apache.fop.fo.pagination.SubSequenceSpecifier#reset()
- */
- public void reset() {
- this.state = FIRST;
- }
-}
-
diff --git a/src/org/apache/fop/fo/pagination/SubSequenceSpecifier.java b/src/org/apache/fop/fo/pagination/SubSequenceSpecifier.java
deleted file mode 100644
index 73b46bebe..000000000
--- a/src/org/apache/fop/fo/pagination/SubSequenceSpecifier.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * $Id$
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.fo.pagination;
-
-import org.apache.fop.apps.FOPException;
-
-/**
- * Classes that implement this interface can be added to a PageSequenceMaster,
- * and are capable of looking up an appropriate PageMaster.
- */
-public interface SubSequenceSpecifier {
-
- /**
- * Returns the name of the next page master.
- * @param isOddPage True if the next page number is odd
- * @param isFirstPage True if the next page is the first
- * @param isBlankPage True if the next page is blank
- * @return the page master name
- * @throws FOPException if there's a problem determining the next page master
- */
- String getNextPageMasterName(boolean isOddPage,
- boolean isFirstPage,
- boolean isBlankPage)
- throws FOPException;
-
- /**
- * Called before a new page sequence is rendered so subsequences can reset
- * any state they keep during the formatting process.
- */
- void reset();
-
-}
-