aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/org/apache/fop/apps/Driver.java2
-rw-r--r--src/org/apache/fop/apps/StreamRenderer.java4
-rw-r--r--src/org/apache/fop/area/inline/Image.java2
-rw-r--r--src/org/apache/fop/extensions/ExtensionElementMapping.java26
-rw-r--r--src/org/apache/fop/extensions/ExtensionObj.java21
-rw-r--r--src/org/apache/fop/extensions/Label.java15
-rw-r--r--src/org/apache/fop/extensions/Outline.java21
-rw-r--r--src/org/apache/fop/fo/ColorProfile.java17
-rw-r--r--src/org/apache/fop/fo/Declarations.java17
-rw-r--r--src/org/apache/fop/fo/DirectPropertyListBuilder.java49
-rw-r--r--src/org/apache/fop/fo/ElementMapping.java8
-rw-r--r--src/org/apache/fop/fo/FOElementMapping.java449
-rw-r--r--src/org/apache/fop/fo/FONode.java5
-rw-r--r--src/org/apache/fop/fo/FOTreeBuilder.java101
-rw-r--r--src/org/apache/fop/fo/FObj.java49
-rw-r--r--src/org/apache/fop/fo/FObjMixed.java16
-rw-r--r--src/org/apache/fop/fo/StandardElementMapping.java125
-rw-r--r--src/org/apache/fop/fo/Title.java17
-rw-r--r--src/org/apache/fop/fo/ToBeImplementedElement.java5
-rw-r--r--src/org/apache/fop/fo/TreeBuilder.java48
-rw-r--r--src/org/apache/fop/fo/Unknown.java18
-rw-r--r--src/org/apache/fop/fo/UnknownXMLObj.java50
-rw-r--r--src/org/apache/fop/fo/XMLElement.java43
-rw-r--r--src/org/apache/fop/fo/XMLObj.java29
-rw-r--r--src/org/apache/fop/fo/flow/BasicLink.java17
-rw-r--r--src/org/apache/fop/fo/flow/BidiOverride.java17
-rw-r--r--src/org/apache/fop/fo/flow/Block.java22
-rw-r--r--src/org/apache/fop/fo/flow/BlockContainer.java23
-rw-r--r--src/org/apache/fop/fo/flow/Character.java18
-rw-r--r--src/org/apache/fop/fo/flow/ExternalGraphic.java19
-rw-r--r--src/org/apache/fop/fo/flow/Float.java17
-rw-r--r--src/org/apache/fop/fo/flow/Flow.java29
-rw-r--r--src/org/apache/fop/fo/flow/Footnote.java17
-rw-r--r--src/org/apache/fop/fo/flow/FootnoteBody.java19
-rw-r--r--src/org/apache/fop/fo/flow/InitialPropertySet.java17
-rw-r--r--src/org/apache/fop/fo/flow/Inline.java24
-rw-r--r--src/org/apache/fop/fo/flow/InlineContainer.java22
-rw-r--r--src/org/apache/fop/fo/flow/InstreamForeignObject.java33
-rw-r--r--src/org/apache/fop/fo/flow/Leader.java17
-rw-r--r--src/org/apache/fop/fo/flow/ListBlock.java16
-rw-r--r--src/org/apache/fop/fo/flow/ListItem.java16
-rw-r--r--src/org/apache/fop/fo/flow/ListItemBody.java16
-rw-r--r--src/org/apache/fop/fo/flow/ListItemLabel.java16
-rw-r--r--src/org/apache/fop/fo/flow/Marker.java21
-rw-r--r--src/org/apache/fop/fo/flow/MultiCase.java17
-rw-r--r--src/org/apache/fop/fo/flow/MultiProperties.java17
-rw-r--r--src/org/apache/fop/fo/flow/MultiPropertySet.java17
-rw-r--r--src/org/apache/fop/fo/flow/MultiSwitch.java17
-rw-r--r--src/org/apache/fop/fo/flow/MultiToggle.java17
-rw-r--r--src/org/apache/fop/fo/flow/PageNumber.java16
-rw-r--r--src/org/apache/fop/fo/flow/PageNumberCitation.java17
-rw-r--r--src/org/apache/fop/fo/flow/RetrieveMarker.java21
-rw-r--r--src/org/apache/fop/fo/flow/StaticContent.java17
-rw-r--r--src/org/apache/fop/fo/flow/Table.java16
-rw-r--r--src/org/apache/fop/fo/flow/TableAndCaption.java17
-rw-r--r--src/org/apache/fop/fo/flow/TableBody.java16
-rw-r--r--src/org/apache/fop/fo/flow/TableCaption.java17
-rw-r--r--src/org/apache/fop/fo/flow/TableCell.java22
-rw-r--r--src/org/apache/fop/fo/flow/TableColumn.java16
-rw-r--r--src/org/apache/fop/fo/flow/TableFooter.java20
-rw-r--r--src/org/apache/fop/fo/flow/TableHeader.java20
-rw-r--r--src/org/apache/fop/fo/flow/TableRow.java16
-rw-r--r--src/org/apache/fop/fo/flow/Wrapper.java16
-rw-r--r--src/org/apache/fop/fo/pagination/ConditionalPageMasterReference.java25
-rw-r--r--src/org/apache/fop/fo/pagination/LayoutMasterSet.java22
-rw-r--r--src/org/apache/fop/fo/pagination/PageMasterReference.java11
-rw-r--r--src/org/apache/fop/fo/pagination/PageSequence.java26
-rw-r--r--src/org/apache/fop/fo/pagination/PageSequenceMaster.java23
-rw-r--r--src/org/apache/fop/fo/pagination/Region.java11
-rw-r--r--src/org/apache/fop/fo/pagination/RegionAfter.java23
-rw-r--r--src/org/apache/fop/fo/pagination/RegionBefore.java24
-rw-r--r--src/org/apache/fop/fo/pagination/RegionBody.java18
-rw-r--r--src/org/apache/fop/fo/pagination/RegionEnd.java18
-rw-r--r--src/org/apache/fop/fo/pagination/RegionStart.java18
-rw-r--r--src/org/apache/fop/fo/pagination/RepeatablePageMasterAlternatives.java24
-rw-r--r--src/org/apache/fop/fo/pagination/RepeatablePageMasterReference.java24
-rw-r--r--src/org/apache/fop/fo/pagination/Root.java38
-rw-r--r--src/org/apache/fop/fo/pagination/SimplePageMaster.java24
-rw-r--r--src/org/apache/fop/fo/pagination/SinglePageMasterReference.java18
-rw-r--r--src/org/apache/fop/svg/PDFGraphics2D.java6
-rw-r--r--src/org/apache/fop/svg/SVGElement.java37
-rw-r--r--src/org/apache/fop/svg/SVGElementMapping.java73
-rw-r--r--src/org/apache/fop/svg/SVGObj.java39
83 files changed, 848 insertions, 1519 deletions
diff --git a/src/org/apache/fop/apps/Driver.java b/src/org/apache/fop/apps/Driver.java
index 7cb5579c5..3aa93e725 100644
--- a/src/org/apache/fop/apps/Driver.java
+++ b/src/org/apache/fop/apps/Driver.java
@@ -284,7 +284,7 @@ public class Driver {
*
*/
public void setupDefaultMappings() {
- addElementMapping("org.apache.fop.fo.StandardElementMapping");
+ addElementMapping("org.apache.fop.fo.FOElementMapping");
addElementMapping("org.apache.fop.svg.SVGElementMapping");
addElementMapping("org.apache.fop.extensions.ExtensionElementMapping");
diff --git a/src/org/apache/fop/apps/StreamRenderer.java b/src/org/apache/fop/apps/StreamRenderer.java
index 476137634..df4db1af3 100644
--- a/src/org/apache/fop/apps/StreamRenderer.java
+++ b/src/org/apache/fop/apps/StreamRenderer.java
@@ -158,8 +158,8 @@ public class StreamRenderer {
long timeUsed = System.currentTimeMillis() - startTime;
log.debug("Total time used: " + timeUsed + "ms");
- log.debug("Pages rendererd: " + pageCount);
- log.debug("Avg render time: " + (timeUsed / pageCount) + "ms/page");
+ log.debug("Pages rendered: " + pageCount);
+ //log.debug("Avg render time: " + (timeUsed / pageCount) + "ms/page");
}
/**
diff --git a/src/org/apache/fop/area/inline/Image.java b/src/org/apache/fop/area/inline/Image.java
index 3899997a5..47574369b 100644
--- a/src/org/apache/fop/area/inline/Image.java
+++ b/src/org/apache/fop/area/inline/Image.java
@@ -11,6 +11,8 @@ import org.apache.fop.area.Area;
// cacheable object
// image object, mime type, url
+// an image only needs to be loaded to get the size if not specified
+// and when rendering to the output
public class Image extends Area {
String url;
diff --git a/src/org/apache/fop/extensions/ExtensionElementMapping.java b/src/org/apache/fop/extensions/ExtensionElementMapping.java
index c6c8ae402..70e72cd30 100644
--- a/src/org/apache/fop/extensions/ExtensionElementMapping.java
+++ b/src/org/apache/fop/extensions/ExtensionElementMapping.java
@@ -8,8 +8,6 @@
package org.apache.fop.extensions;
import org.apache.fop.fo.*;
-import org.apache.fop.fo.properties.ExtensionPropertyMapping;
-import org.apache.fop.fo.TreeBuilder;
import java.util.Enumeration;
import java.util.HashMap;
@@ -21,24 +19,24 @@ public class ExtensionElementMapping implements ElementMapping {
private static HashMap foObjs = null;
- public synchronized void addToBuilder(TreeBuilder builder) {
+ public synchronized void addToBuilder(FOTreeBuilder builder) {
if(foObjs == null) {
foObjs = new HashMap();
- foObjs.put("outline", Outline.maker());
- foObjs.put("label", Label.maker());
+ foObjs.put("outline", new O());
+ foObjs.put("label", new L());
}
builder.addMapping(URI, foObjs);
+ }
-
- builder.addPropertyList(ExtensionElementMapping.URI,
- ExtensionPropertyMapping.getGenericMappings());
- /* Add any element mappings */
- for (Iterator iter = ExtensionPropertyMapping.getElementMappings().iterator();
- iter.hasNext(); ) {
- String elem = (String)iter.next();
- builder.addElementPropertyList(ExtensionElementMapping.URI, elem,
- ExtensionPropertyMapping.getElementMapping(elem));
+ class O extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new Outline(parent);
}
}
+ class L extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new Label(parent);
+ }
+ }
}
diff --git a/src/org/apache/fop/extensions/ExtensionObj.java b/src/org/apache/fop/extensions/ExtensionObj.java
index 9cfc091ef..170e198be 100644
--- a/src/org/apache/fop/extensions/ExtensionObj.java
+++ b/src/org/apache/fop/extensions/ExtensionObj.java
@@ -10,6 +10,9 @@ package org.apache.fop.extensions;
import org.apache.fop.fo.*;
import org.apache.fop.layout.*;
import org.apache.fop.apps.FOPException;
+import org.apache.fop.fo.properties.ExtensionPropertyMapping;
+
+import org.xml.sax.Attributes;
/**
* base class for extension objects
@@ -21,8 +24,8 @@ public abstract class ExtensionObj extends FObj {
* @param parent the parent formatting object
* @param propertyList the explicit properties of this object
*/
- public ExtensionObj(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public ExtensionObj(FObj parent) {
+ super(parent);
}
/**
@@ -38,7 +41,6 @@ public abstract class ExtensionObj extends FObj {
return new Status(Status.OK);
}
-
/**
* Called for root extensions. Root extensions aren't allowed to generate
* any visible areas. They are used for extra items that don't show up in
@@ -51,4 +53,17 @@ public abstract class ExtensionObj extends FObj {
areaTree.addExtension(this);
}
+ protected PropertyListBuilder getListBuilder() {
+ PropertyListBuilder plb = new PropertyListBuilder();
+ plb.addList(ExtensionPropertyMapping.getGenericMappings());
+ return plb;
+ }
+
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ String uri = ExtensionElementMapping.URI;
+ properties =
+ getListBuilder().makeList(uri, name, attlist,
+ (parent == null) ? null
+ : parent.properties, parent);
+ }
}
diff --git a/src/org/apache/fop/extensions/Label.java b/src/org/apache/fop/extensions/Label.java
index aa6bf1c31..cbc274413 100644
--- a/src/org/apache/fop/extensions/Label.java
+++ b/src/org/apache/fop/extensions/Label.java
@@ -13,19 +13,8 @@ import org.apache.fop.fo.*;
public class Label extends ExtensionObj {
private String _label = "";
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent, PropertyList propertyList) {
- return new Label(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new Label.Maker();
- }
-
- public Label(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public Label(FObj parent) {
+ super(parent);
}
protected void addCharacters(char data[], int start, int end) {
diff --git a/src/org/apache/fop/extensions/Outline.java b/src/org/apache/fop/extensions/Outline.java
index e9c8a0ca2..eb5d9da0e 100644
--- a/src/org/apache/fop/extensions/Outline.java
+++ b/src/org/apache/fop/extensions/Outline.java
@@ -11,9 +11,11 @@ import org.apache.fop.fo.*;
import org.apache.fop.pdf.PDFGoTo;
import org.apache.fop.pdf.PDFAction;
import org.apache.fop.datatypes.IDReferences;
+import org.apache.fop.apps.FOPException;
import java.util.*;
+import org.xml.sax.Attributes;
public class Outline extends ExtensionObj {
private Label _label;
@@ -32,21 +34,12 @@ public class Outline extends ExtensionObj {
*/
private Object _rendererObject;
-
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent, PropertyList propertyList) {
- return new Outline(parent, propertyList);
- }
-
+ public Outline(FObj parent) {
+ super(parent);
}
- public static FObj.Maker maker() {
- return new Outline.Maker();
- }
-
- public Outline(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
-
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
_internalDestination =
this.properties.get("internal-destination").getString();
_externalDestination =
@@ -92,7 +85,7 @@ public class Outline extends ExtensionObj {
}
public Label getLabel() {
- return _label == null ? new Label(this, this.properties) : _label;
+ return _label == null ? new Label(this) : _label;
}
public Vector getOutlines() {
diff --git a/src/org/apache/fop/fo/ColorProfile.java b/src/org/apache/fop/fo/ColorProfile.java
index 020b6cce6..d3cb86eba 100644
--- a/src/org/apache/fop/fo/ColorProfile.java
+++ b/src/org/apache/fop/fo/ColorProfile.java
@@ -20,21 +20,8 @@ import org.apache.fop.apps.FOPException;
*/
public class ColorProfile extends ToBeImplementedElement {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new ColorProfile(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new ColorProfile.Maker();
- }
-
- protected ColorProfile(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ protected ColorProfile(FObj parent) {
+ super(parent);
this.name = "fo:color-profile";
// this.properties.get("src");
diff --git a/src/org/apache/fop/fo/Declarations.java b/src/org/apache/fop/fo/Declarations.java
index ce711f4f0..b7bcb7b7f 100644
--- a/src/org/apache/fop/fo/Declarations.java
+++ b/src/org/apache/fop/fo/Declarations.java
@@ -18,21 +18,8 @@ import org.apache.fop.apps.FOPException;
*/
public class Declarations extends ToBeImplementedElement {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new Declarations(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new Declarations.Maker();
- }
-
- protected Declarations(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ protected Declarations(FObj parent) {
+ super(parent);
this.name = "fo:declarations";
}
diff --git a/src/org/apache/fop/fo/DirectPropertyListBuilder.java b/src/org/apache/fop/fo/DirectPropertyListBuilder.java
deleted file mode 100644
index d4f3fa02e..000000000
--- a/src/org/apache/fop/fo/DirectPropertyListBuilder.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * $Id$
- * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
- * For details on use and redistribution please refer to the
- * LICENSE file included with these sources.
- */
-
-package org.apache.fop.fo;
-
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.svg.*;
-import org.apache.fop.datatypes.*;
-
-import org.apache.fop.apps.FOPException;
-
-import org.xml.sax.Attributes;
-
-/**
- * This is a property list builder that bypasses overhead.
- * The attribute list is made available directly so it can
- * be used to build a dom.
- * Note: there should be a better way to handle this and
- * the attribute list is only valid within the startElement
- * call of the sax events.
- */
-public class DirectPropertyListBuilder extends PropertyListBuilder {
-
- public DirectPropertyListBuilder() {
- }
-
- public PropertyList makeList(String uri, String elementName, Attributes attributes,
- PropertyList parentPropertyList,
- FObj parentFO) throws FOPException {
- AttrPropertyList ret = new AttrPropertyList(attributes);
- return ret;
- }
-
- public static class AttrPropertyList extends PropertyList {
- Attributes attributes;
- AttrPropertyList(Attributes attr) {
- super(null, null, null);
- attributes = attr;
- }
-
- public Attributes getAttributes() {
- return attributes;
- }
- }
-}
diff --git a/src/org/apache/fop/fo/ElementMapping.java b/src/org/apache/fop/fo/ElementMapping.java
index 25137f0f8..d9e86be9a 100644
--- a/src/org/apache/fop/fo/ElementMapping.java
+++ b/src/org/apache/fop/fo/ElementMapping.java
@@ -12,5 +12,11 @@ package org.apache.fop.fo;
* the given builder.
*/
public interface ElementMapping {
- public void addToBuilder(TreeBuilder builder);
+ public void addToBuilder(FOTreeBuilder builder);
+
+ public static class Maker {
+ public FObj make(FObj parent) {
+ return null;
+ }
+ }
}
diff --git a/src/org/apache/fop/fo/FOElementMapping.java b/src/org/apache/fop/fo/FOElementMapping.java
new file mode 100644
index 000000000..978a909d4
--- /dev/null
+++ b/src/org/apache/fop/fo/FOElementMapping.java
@@ -0,0 +1,449 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.fo;
+
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+
+import org.apache.fop.fo.flow.*;
+import org.apache.fop.fo.pagination.*;
+
+public class FOElementMapping implements ElementMapping {
+ private static HashMap foObjs = null;
+
+ public synchronized void addToBuilder(FOTreeBuilder builder) {
+
+ 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 TH());
+ foObjs.put("table-footer", new TF());
+ 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());
+ }
+
+ String uri = "http://www.w3.org/1999/XSL/Format";
+ builder.addMapping(uri, foObjs);
+ }
+
+ class R extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new Root(parent);
+ }
+ }
+
+ class Dec extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new Declarations(parent);
+ }
+ }
+
+ class CP extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new ColorProfile(parent);
+ }
+ }
+
+ class PS extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new PageSequence(parent);
+ }
+ }
+
+ class LMS extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new LayoutMasterSet(parent);
+ }
+ }
+
+ class PSM extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new PageSequenceMaster(parent);
+ }
+ }
+
+ class SPMR extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new SinglePageMasterReference(parent);
+ }
+ }
+
+ class RPMR extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new RepeatablePageMasterReference(parent);
+ }
+ }
+
+ class RPMA extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new RepeatablePageMasterAlternatives(parent);
+ }
+ }
+
+ class CPMR extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new ConditionalPageMasterReference(parent);
+ }
+ }
+
+ class SPM extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new SimplePageMaster(parent);
+ }
+ }
+
+ class RB extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new RegionBody(parent);
+ }
+ }
+
+ class RBefore extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new RegionBefore(parent);
+ }
+ }
+
+ class RA extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new RegionAfter(parent);
+ }
+ }
+
+ class RS extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new RegionStart(parent);
+ }
+ }
+
+ class RE extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new RegionEnd(parent);
+ }
+ }
+
+ class Fl extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new Flow(parent);
+ }
+ }
+
+ class SC extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new StaticContent(parent);
+ }
+ }
+
+ class T extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new Title(parent);
+ }
+ }
+
+ class B extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new Block(parent);
+ }
+ }
+
+ class BC extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new BlockContainer(parent);
+ }
+ }
+
+ class BO extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new BidiOverride(parent);
+ }
+ }
+
+ class Ch extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new org.apache.fop.fo.flow.Character(parent);
+ }
+ }
+
+ class IPS extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new InitialPropertySet(parent);
+ }
+ }
+
+ class EG extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new ExternalGraphic(parent);
+ }
+ }
+
+ class IFO extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new InstreamForeignObject(parent);
+ }
+ }
+
+ class In extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new Inline(parent);
+ }
+ }
+
+ class IC extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new InlineContainer(parent);
+ }
+ }
+
+ class L extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new Leader(parent);
+ }
+ }
+
+ class PN extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new PageNumber(parent);
+ }
+ }
+
+ class PNC extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new PageNumberCitation(parent);
+ }
+ }
+
+ class TAC extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new TableAndCaption(parent);
+ }
+ }
+
+ class Ta extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new Table(parent);
+ }
+ }
+
+ class TC extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new TableColumn(parent);
+ }
+ }
+
+ class TCaption extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new TableCaption(parent);
+ }
+ }
+
+ class TH extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new TableHeader(parent);
+ }
+ }
+
+ class TF extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new TableFooter(parent);
+ }
+ }
+
+ class TB extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new TableBody(parent);
+ }
+ }
+
+ class TR extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new TableRow(parent);
+ }
+ }
+
+ class TCell extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new TableCell(parent);
+ }
+ }
+
+ class LB extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new ListBlock(parent);
+ }
+ }
+
+ class LI extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new ListItem(parent);
+ }
+ }
+
+ class LIB extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new ListItemBody(parent);
+ }
+ }
+
+ class LIL extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new ListItemLabel(parent);
+ }
+ }
+
+ class BL extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new BasicLink(parent);
+ }
+ }
+
+ class MS extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new MultiSwitch(parent);
+ }
+ }
+
+ class MC extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new MultiCase(parent);
+ }
+ }
+
+ class MT extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new MultiToggle(parent);
+ }
+ }
+
+ class MP extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new MultiProperties(parent);
+ }
+ }
+
+ class MPS extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new MultiPropertySet(parent);
+ }
+ }
+
+ class F extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new org.apache.fop.fo.flow.Float(parent);
+ }
+ }
+
+ class Foot extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new Footnote(parent);
+ }
+ }
+
+ class FB extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new FootnoteBody(parent);
+ }
+ }
+
+ class W extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new Wrapper(parent);
+ }
+ }
+
+ class M extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new Marker(parent);
+ }
+ }
+
+ class RM extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new RetrieveMarker(parent);
+ }
+ }
+}
diff --git a/src/org/apache/fop/fo/FONode.java b/src/org/apache/fop/fo/FONode.java
index af4791a40..0843f51e1 100644
--- a/src/org/apache/fop/fo/FONode.java
+++ b/src/org/apache/fop/fo/FONode.java
@@ -22,6 +22,8 @@ import org.apache.log.Logger;
import java.util.Vector;
import java.util.Hashtable;
+import org.xml.sax.Attributes;
+
/**
* base class for nodes in the formatting object tree
*
@@ -93,6 +95,9 @@ abstract public class FONode {
log = logger;
}
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ }
+
public void setIsInTableCell() {
this.isInTableCell = true;
// made recursive by Eric Schaeffer
diff --git a/src/org/apache/fop/fo/FOTreeBuilder.java b/src/org/apache/fop/fo/FOTreeBuilder.java
index e4ac25758..6d6fd4172 100644
--- a/src/org/apache/fop/fo/FOTreeBuilder.java
+++ b/src/org/apache/fop/fo/FOTreeBuilder.java
@@ -26,7 +26,6 @@ import org.xml.sax.Attributes;
// Java
import java.util.HashMap;
-import java.util.Stack;
import java.util.ArrayList;
import java.io.IOException;
@@ -41,7 +40,7 @@ import java.io.IOException;
* supresses adding the PageSequence object to the Root,
* since it is parsed immediately.
*/
-public class FOTreeBuilder extends DefaultHandler implements TreeBuilder {
+public class FOTreeBuilder extends DefaultHandler {
/**
* table mapping element names to the makers of objects
@@ -52,11 +51,6 @@ public class FOTreeBuilder extends DefaultHandler implements TreeBuilder {
protected ArrayList namespaces = new ArrayList();
/**
- * class that builds a property list for each formatting object
- */
- protected HashMap propertylistTable = new HashMap();
-
- /**
* current formatting object being handled
*/
protected FObj currentFObj = null;
@@ -105,56 +99,6 @@ public class FOTreeBuilder extends DefaultHandler implements TreeBuilder {
}
/**
- * add a mapping from element name to maker.
- *
- * @param namespaceURI namespace URI of formatting object element
- * @param localName local name of formatting object element
- * @param maker Maker for class representing formatting object
- */
- public void addPropertyList(String namespaceURI, HashMap list) {
- PropertyListBuilder plb;
- plb = (PropertyListBuilder)this.propertylistTable.get(namespaceURI);
- if (plb == null) {
- plb = new PropertyListBuilder();
- plb.addList(list);
- this.propertylistTable.put(namespaceURI, plb);
- } else {
- plb.addList(list);
- }
- }
-
- /**
- * add a mapping from element name to maker.
- *
- * @param namespaceURI namespace URI of formatting object element
- * @param localName local name of formatting object element
- * @param maker Maker for class representing formatting object
- */
- public void addElementPropertyList(String namespaceURI, String localName,
- HashMap list) {
- PropertyListBuilder plb;
- plb = (PropertyListBuilder)this.propertylistTable.get(namespaceURI);
- if (plb == null) {
- plb = new PropertyListBuilder();
- plb.addElementList(localName, list);
- this.propertylistTable.put(namespaceURI, plb);
- } else {
- plb.addElementList(localName, list);
- }
- }
-
- public void addPropertyListBuilder(String namespaceURI,
- PropertyListBuilder propbuilder) {
- PropertyListBuilder plb;
- plb = (PropertyListBuilder)this.propertylistTable.get(namespaceURI);
- if (plb == null) {
- this.propertylistTable.put(namespaceURI, propbuilder);
- } else {
- // Error already added
- }
- }
-
- /**
* SAX Handler for characters
*/
public void characters(char data[], int start, int length) {
@@ -170,18 +114,6 @@ public class FOTreeBuilder extends DefaultHandler implements TreeBuilder {
throws SAXException {
currentFObj.end();
- //
- // mark-fop@inomial.com - tell the stream renderer to render
- // this page-sequence
- //
- if(currentFObj instanceof PageSequence) {
- streamRenderer.render((PageSequence) currentFObj);
- } else if(currentFObj instanceof ExtensionObj) {
- if(!(currentFObj.getParent() instanceof ExtensionObj)) {
- streamRenderer.addExtension((ExtensionObj)currentFObj);
- }
- }
-
currentFObj = (FObj)currentFObj.getParent();
}
@@ -210,16 +142,17 @@ public class FOTreeBuilder extends DefaultHandler implements TreeBuilder {
FObj fobj;
/* the maker for the formatting object started */
- FObj.Maker fobjMaker = null;
+ ElementMapping.Maker fobjMaker = null;
HashMap table = (HashMap)fobjTable.get(uri);
if(table != null) {
- fobjMaker = (FObj.Maker)table.get(localName);
+ fobjMaker = (ElementMapping.Maker)table.get(localName);
+ // try default
+ if(fobjMaker == null) {
+ fobjMaker = (ElementMapping.Maker)table.get("<default>");
+ }
}
- PropertyListBuilder currentListBuilder =
- (PropertyListBuilder)this.propertylistTable.get(uri);
-
boolean foreignXML = false;
if (fobjMaker == null) {
String fullName = uri + "^" + localName;
@@ -232,28 +165,16 @@ public class FOTreeBuilder extends DefaultHandler implements TreeBuilder {
// fall back
fobjMaker = new Unknown.Maker();
} else {
- fobjMaker = new UnknownXMLObj.Maker(uri, localName);
+ fobjMaker = new UnknownXMLObj.Maker(uri);
foreignXML = true;
}
}
try {
- PropertyList list = null;
- if (currentListBuilder != null) {
- list =
- currentListBuilder.makeList(uri, localName, attlist,
- (currentFObj == null) ? null
- : currentFObj.properties, currentFObj);
- } else if(foreignXML) {
- list = new DirectPropertyListBuilder.AttrPropertyList(attlist);
- } else {
- if(currentFObj == null) {
- throw new FOPException("Invalid XML or missing namespace");
- }
- list = currentFObj.properties;
- }
- fobj = fobjMaker.make(currentFObj, list);
+ fobj = fobjMaker.make(currentFObj);
+ fobj.setName(localName);
fobj.setLogger(log);
+ fobj.handleAttrs(attlist);
} catch (FOPException e) {
throw new SAXException(e);
}
diff --git a/src/org/apache/fop/fo/FObj.java b/src/org/apache/fop/fo/FObj.java
index 02d305719..1f626a5ba 100644
--- a/src/org/apache/fop/fo/FObj.java
+++ b/src/org/apache/fop/fo/FObj.java
@@ -11,40 +11,47 @@ package org.apache.fop.fo;
import org.apache.fop.layout.Area;
import org.apache.fop.apps.FOPException;
import org.apache.fop.datatypes.IDReferences;
+import org.apache.fop.fo.properties.FOPropertyMapping;
-// Java
-import java.util.Hashtable;
-import java.util.Enumeration;
+import org.xml.sax.Attributes;
/**
* base class for representation of formatting objects and their processing
*/
public class FObj extends FONode {
- public static class Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new FObj(parent, propertyList);
- }
-
- }
-
- public static Maker maker() {
- return new Maker();
- }
-
- // protected PropertyList properties;
public PropertyList properties;
protected PropertyManager propMgr;
protected String name;
- protected FObj(FObj parent, PropertyList propertyList) {
+ public FObj(FObj parent) {
super(parent);
- this.properties = propertyList; // TO BE REMOVED!!!
- propertyList.setFObj(this);
- this.propMgr = makePropertyManager(propertyList);
- this.name = "default FO";
+ }
+
+ public void setName(String str) {
+ name = "fo:" + str;
+ }
+
+ protected PropertyListBuilder getListBuilder() {
+ PropertyListBuilder plb = new PropertyListBuilder();
+ plb.addList(FOPropertyMapping.getGenericMappings());
+ 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 {
+ String uri = "http://www.w3.org/1999/XSL/Format";
+ properties =
+ getListBuilder().makeList(uri, name, attlist,
+ (parent == null) ? null
+ : parent.properties, parent);
+ properties.setFObj(this);
+ this.propMgr = makePropertyManager(properties);
setWritingMode();
}
diff --git a/src/org/apache/fop/fo/FObjMixed.java b/src/org/apache/fop/fo/FObjMixed.java
index ddab909cc..607211d07 100644
--- a/src/org/apache/fop/fo/FObjMixed.java
+++ b/src/org/apache/fop/fo/FObjMixed.java
@@ -16,20 +16,8 @@ import org.apache.fop.apps.FOPException;
*/
public class FObjMixed extends FObj {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new FObjMixed(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new FObjMixed.Maker();
- }
-
- protected FObjMixed(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public FObjMixed(FObj parent) {
+ super(parent);
}
protected void addCharacters(char data[], int start, int length) {
diff --git a/src/org/apache/fop/fo/StandardElementMapping.java b/src/org/apache/fop/fo/StandardElementMapping.java
deleted file mode 100644
index 5938bf0fd..000000000
--- a/src/org/apache/fop/fo/StandardElementMapping.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * $Id$
- * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
- * For details on use and redistribution please refer to the
- * LICENSE file included with these sources.
- */
-
-package org.apache.fop.fo;
-
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Iterator;
-
-import org.apache.fop.fo.properties.FOPropertyMapping;
-import org.apache.fop.fo.flow.*;
-import org.apache.fop.fo.pagination.*;
-
-public class StandardElementMapping implements ElementMapping {
- private static HashMap foObjs = null;
-
- public synchronized void addToBuilder(TreeBuilder builder) {
-
- if(foObjs == null) {
- foObjs = new HashMap();
-
- // Declarations and Pagination and Layout Formatting Objects
- foObjs.put("root", Root.maker());
- foObjs.put("declarations", Declarations.maker());
- foObjs.put("color-profile", ColorProfile.maker());
- foObjs.put("page-sequence", PageSequence.maker());
- foObjs.put("layout-master-set", LayoutMasterSet.maker());
- foObjs.put("page-sequence-master",
- PageSequenceMaster.maker());
- foObjs.put("single-page-master-reference",
- SinglePageMasterReference.maker());
- foObjs.put("repeatable-page-master-reference",
- RepeatablePageMasterReference.maker());
- foObjs.put("repeatable-page-master-alternatives",
- RepeatablePageMasterAlternatives.maker());
- foObjs.put("conditional-page-master-reference",
- ConditionalPageMasterReference.maker());
- foObjs.put("simple-page-master",
- SimplePageMaster.maker());
- foObjs.put("region-body", RegionBody.maker());
- foObjs.put("region-before", RegionBefore.maker());
- foObjs.put("region-after", RegionAfter.maker());
- foObjs.put("region-start", RegionStart.maker());
- foObjs.put("region-end", RegionEnd.maker());
- foObjs.put("flow", Flow.maker());
- foObjs.put("static-content", StaticContent.maker());
- foObjs.put("title", Title.maker());
-
- // Block-level Formatting Objects
- foObjs.put("block", Block.maker());
- foObjs.put("block-container", BlockContainer.maker());
-
- // Inline-level Formatting Objects
- foObjs.put("bidi-override", BidiOverride.maker());
- foObjs.put("character",
- org.apache.fop.fo.flow.Character.maker());
- foObjs.put("initial-property-set",
- InitialPropertySet.maker());
- foObjs.put("external-graphic", ExternalGraphic.maker());
- foObjs.put("instream-foreign-object",
- InstreamForeignObject.maker());
- foObjs.put("inline", Inline.maker());
- foObjs.put("inline-container", InlineContainer.maker());
- foObjs.put("leader", Leader.maker());
- foObjs.put("page-number", PageNumber.maker());
- foObjs.put("page-number-citation",
- PageNumberCitation.maker());
-
- // Formatting Objects for Tables
- foObjs.put("table-and-caption", TableAndCaption.maker());
- foObjs.put("table", Table.maker());
- foObjs.put("table-column", TableColumn.maker());
- foObjs.put("table-caption", TableCaption.maker());
- foObjs.put("table-header", TableHeader.maker());
- foObjs.put("table-footer", TableFooter.maker());
- foObjs.put("table-body", TableBody.maker());
- foObjs.put("table-row", TableRow.maker());
- foObjs.put("table-cell", TableCell.maker());
-
- // Formatting Objects for Lists
- foObjs.put("list-block", ListBlock.maker());
- foObjs.put("list-item", ListItem.maker());
- foObjs.put("list-item-body", ListItemBody.maker());
- foObjs.put("list-item-label", ListItemLabel.maker());
-
- // Dynamic Effects: Link and Multi Formatting Objects
- foObjs.put("basic-link", BasicLink.maker());
- foObjs.put("multi-switch", MultiSwitch.maker());
- foObjs.put("multi-case", MultiCase.maker());
- foObjs.put("multi-toggle", MultiToggle.maker());
- foObjs.put("multi-properties", MultiProperties.maker());
- foObjs.put("multi-property-set",
- MultiPropertySet.maker());
-
- // Out-of-Line Formatting Objects
- foObjs.put("float",
- org.apache.fop.fo.flow.Float.maker());
- foObjs.put("footnote", Footnote.maker());
- foObjs.put("footnote-body", FootnoteBody.maker());
-
- // Other Formatting Objects
- foObjs.put("wrapper", Wrapper.maker());
- foObjs.put("marker", Marker.maker());
- foObjs.put("retrieve-marker", RetrieveMarker.maker());
- }
-
- String uri = "http://www.w3.org/1999/XSL/Format";
- builder.addMapping(uri, foObjs);
-
- builder.addPropertyList(uri, FOPropertyMapping.getGenericMappings());
- /* Add any element mappings */
- for (Iterator iter = FOPropertyMapping.getElementMappings().iterator();
- iter.hasNext(); ) {
- String elem = (String)iter.next();
- builder.addElementPropertyList(uri, elem,
- FOPropertyMapping.getElementMapping(elem));
- }
-
- }
-
-}
diff --git a/src/org/apache/fop/fo/Title.java b/src/org/apache/fop/fo/Title.java
index b55b0aeea..f5f4648a8 100644
--- a/src/org/apache/fop/fo/Title.java
+++ b/src/org/apache/fop/fo/Title.java
@@ -20,21 +20,8 @@ import org.apache.fop.apps.FOPException;
*/
public class Title extends ToBeImplementedElement {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new Title(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new Title.Maker();
- }
-
- protected Title(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public Title(FObj parent) {
+ super(parent);
this.name = "fo:title";
}
diff --git a/src/org/apache/fop/fo/ToBeImplementedElement.java b/src/org/apache/fop/fo/ToBeImplementedElement.java
index f1df7e563..3243cd522 100644
--- a/src/org/apache/fop/fo/ToBeImplementedElement.java
+++ b/src/org/apache/fop/fo/ToBeImplementedElement.java
@@ -18,9 +18,8 @@ import org.apache.fop.apps.FOPException;
*/
public class ToBeImplementedElement extends FObj {
- protected ToBeImplementedElement(FObj parent, PropertyList propertyList)
- throws FOPException {
- super(parent, propertyList);
+ protected ToBeImplementedElement(FObj parent) {
+ super(parent);
}
public Status layout(Area area) throws FOPException {
diff --git a/src/org/apache/fop/fo/TreeBuilder.java b/src/org/apache/fop/fo/TreeBuilder.java
deleted file mode 100644
index 3076a2d6c..000000000
--- a/src/org/apache/fop/fo/TreeBuilder.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * $Id$
- * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
- * For details on use and redistribution please refer to the
- * LICENSE file included with these sources.
- */
-
-package org.apache.fop.fo;
-
-// Java
-import java.util.HashMap;
-
-/**
- */
-public interface TreeBuilder {
-
-
- /**
- * add a mapping from element name to maker.
- *
- * @param namespaceURI namespace URI of formatting object element
- * @param localName local name of formatting object element
- * @param maker Maker for class representing formatting object
- */
- public void addMapping(String namespaceURI, HashMap table);
-
- /**
- * add a mapping from element name to maker.
- *
- * @param namespaceURI namespace URI of formatting object element
- * @param localName local name of formatting object element
- * @param maker Maker for class representing formatting object
- */
- public void addPropertyList(String namespaceURI, HashMap list);
-
- public void addPropertyListBuilder(String namespaceURI, PropertyListBuilder list);
-
- /**
- * add a mapping from element name to maker.
- *
- * @param namespaceURI namespace URI of formatting object element
- * @param localName local name of formatting object element
- * @param maker Maker for class representing formatting object
- */
- public void addElementPropertyList(String namespaceURI, String localName,
- HashMap list);
-
-}
diff --git a/src/org/apache/fop/fo/Unknown.java b/src/org/apache/fop/fo/Unknown.java
index 43cd255e8..0ab6c80e7 100644
--- a/src/org/apache/fop/fo/Unknown.java
+++ b/src/org/apache/fop/fo/Unknown.java
@@ -23,22 +23,14 @@ import org.apache.fop.apps.FOPException;
*/
public class Unknown extends FObj {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new Unknown(parent, propertyList);
+ public static class Maker extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new Unknown(parent);
}
-
- }
-
- public static FObj.Maker maker() {
- return new Unknown.Maker();
}
- protected Unknown(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
- this.name = "unknown";
+ public Unknown(FObj parent) {
+ super(parent);
}
public Status layout(Area area) throws FOPException {
diff --git a/src/org/apache/fop/fo/UnknownXMLObj.java b/src/org/apache/fop/fo/UnknownXMLObj.java
index 0110dd992..97a3f6e87 100644
--- a/src/org/apache/fop/fo/UnknownXMLObj.java
+++ b/src/org/apache/fop/fo/UnknownXMLObj.java
@@ -18,55 +18,27 @@ import org.w3c.dom.Element;
public class UnknownXMLObj extends XMLObj {
String namespace;
- /**
- * inner class for making unknown xml objects.
- */
- public static class Maker extends FObj.Maker {
+ public static class Maker extends ElementMapping.Maker {
String space;
- String tag;
- Maker(String sp, String t) {
+ Maker(String sp) {
space = sp;
- tag = t;
}
- /**
- * make an unknown xml object.
- *
- * @param parent the parent formatting object
- * @param propertyList the explicit properties of this object
- *
- * @return the unknown xml object
- */
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new UnknownXMLObj(parent, propertyList, space, tag);
+ public FObj make(FObj parent) {
+ return new UnknownXMLObj(parent, space);
}
}
/**
- * returns the maker for this object.
- *
- * @return the maker for an unknown xml object
- */
- public static FObj.Maker maker(String space, String tag) {
- return new UnknownXMLObj.Maker(space, tag);
- }
-
- /**
* constructs an unknown xml object (called by Maker).
*
* @param parent the parent formatting object
* @param propertyList the explicit properties of this object
*/
- protected UnknownXMLObj(FObj parent, PropertyList propertyList, String space, String tag) {
- super(parent, propertyList, tag);
+ protected UnknownXMLObj(FObj parent, String space) {
+ super(parent);
this.namespace = space;
- if(!"".equals(space)) {
- this.name = this.namespace + ":" + tag;
- } else {
- this.name = "(none):" + tag;
- }
}
public String getNameSpace() {
@@ -88,11 +60,11 @@ public class UnknownXMLObj extends XMLObj {
}
public Status layout(Area area) throws FOPException {
- //if (!(area instanceof ForeignObjectArea)) {
- // this is an error
- //throw new FOPException("Foreign XML not in fo:instream-foreign-object");
- //}
- log.error("no handler defined for " + this.name + " foreign xml");
+ if(!"".equals(this.namespace)) {
+ log.error("no handler defined for " + this.namespace + ":" + this.name + " foreign xml");
+ } else {
+ log.error("no handler defined for (none):" + this.name + " foreign xml");
+ }
/* return status */
return new Status(Status.OK);
diff --git a/src/org/apache/fop/fo/XMLElement.java b/src/org/apache/fop/fo/XMLElement.java
index dc8586414..0db6997ed 100644
--- a/src/org/apache/fop/fo/XMLElement.java
+++ b/src/org/apache/fop/fo/XMLElement.java
@@ -13,6 +13,8 @@ import org.apache.fop.layout.Area;
import org.apache.fop.layout.inline.*;
import org.apache.fop.apps.FOPException;
+import org.xml.sax.Attributes;
+
/**
* class representing svg:svg pseudo flow object.
*/
@@ -20,46 +22,17 @@ public class XMLElement extends XMLObj {
String namespace = "";
/**
- * inner class for making XML objects.
- */
- public static class Maker extends FObj.Maker {
- String tag;
-
- Maker(String t) {
- tag = t;
- }
-
- /**
- * make an XML object.
- *
- * @param parent the parent formatting object
- * @param propertyList the explicit properties of this object
- *
- * @return the XML object
- */
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new XMLElement(parent, propertyList, tag);
- }
- }
-
- /**
- * returns the maker for this object.
- *
- * @return the maker for XML objects
- */
- public static FObj.Maker maker(String tag) {
- return new XMLElement.Maker(tag);
- }
-
- /**
* constructs an XML object (called by Maker).
*
* @param parent the parent formatting object
* @param propertyList the explicit properties of this object
*/
- public XMLElement(FObj parent, PropertyList propertyList, String tag) {
- super(parent, propertyList, tag);
+ public XMLElement(FObj parent) {
+ super(parent);
+ }
+
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
init();
}
diff --git a/src/org/apache/fop/fo/XMLObj.java b/src/org/apache/fop/fo/XMLObj.java
index bc56718aa..9658f8552 100644
--- a/src/org/apache/fop/fo/XMLObj.java
+++ b/src/org/apache/fop/fo/XMLObj.java
@@ -28,7 +28,8 @@ import java.util.*;
*/
public abstract class XMLObj extends FObj {
- protected String tagName = "";
+ // temp reference for attributes
+ Attributes attr = null;
protected Element element;
protected Document doc;
@@ -38,21 +39,25 @@ public abstract class XMLObj extends FObj {
* @param parent the parent formatting object
* @param propertyList the explicit properties of this object
*/
- public XMLObj(FObj parent, PropertyList propertyList, String tag) {
- super(parent, propertyList);
- tagName = tag;
+ public XMLObj(FObj parent) {
+ super(parent);
}
+ public void setName(String str) {
+ name = str;
+ }
+
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ attr = attlist;
+ }
public abstract String getNameSpace();
protected static Hashtable ns = new Hashtable();
public void addGraphic(Document doc, Element parent) {
this.doc = doc;
- element = doc.createElementNS(getNameSpace(), tagName);
+ element = doc.createElementNS(getNameSpace(), name);
- if(this.properties instanceof DirectPropertyListBuilder.AttrPropertyList) {
- Attributes attr = ((DirectPropertyListBuilder.AttrPropertyList)this.properties).getAttributes();
for (int count = 0; count < attr.getLength(); count++) {
String rf = attr.getValue(count);
String qname = attr.getQName(count);
@@ -70,16 +75,12 @@ public abstract class XMLObj extends FObj {
qname, rf);
}
}
- } else {
- }
-
+ attr = null;
parent.appendChild(element);
}
public void buildTopLevel(Document doc, Element svgRoot) {
// build up the info for the top level element
- if(this.properties instanceof DirectPropertyListBuilder.AttrPropertyList) {
- Attributes attr = ((DirectPropertyListBuilder.AttrPropertyList)this.properties).getAttributes();
for (int count = 0; count < attr.getLength(); count++) {
String rf = attr.getValue(count);
String qname = attr.getQName(count);
@@ -97,8 +98,6 @@ public abstract class XMLObj extends FObj {
qname, rf);
}
}
- } else {
- }
}
public Document createBasicDocument() {
@@ -109,7 +108,7 @@ public abstract class XMLObj extends FObj {
DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance();
fact.setNamespaceAware(true);
doc = fact.newDocumentBuilder().newDocument();
- Element el = doc.createElement(tagName);
+ Element el = doc.createElement(name);
doc.appendChild(el);
element = doc.getDocumentElement();
diff --git a/src/org/apache/fop/fo/flow/BasicLink.java b/src/org/apache/fop/fo/flow/BasicLink.java
index ae1bad695..e8d19d6e7 100644
--- a/src/org/apache/fop/fo/flow/BasicLink.java
+++ b/src/org/apache/fop/fo/flow/BasicLink.java
@@ -20,21 +20,8 @@ import java.awt.Rectangle;
public class BasicLink extends Inline {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new BasicLink(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new BasicLink.Maker();
- }
-
- public BasicLink(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public BasicLink(FObj parent) {
+ super(parent);
this.name = "fo:basic-link";
}
diff --git a/src/org/apache/fop/fo/flow/BidiOverride.java b/src/org/apache/fop/fo/flow/BidiOverride.java
index 5133369bf..4127cbe00 100644
--- a/src/org/apache/fop/fo/flow/BidiOverride.java
+++ b/src/org/apache/fop/fo/flow/BidiOverride.java
@@ -19,21 +19,8 @@ import org.apache.fop.apps.FOPException;
*/
public class BidiOverride extends ToBeImplementedElement {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new BidiOverride(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new BidiOverride.Maker();
- }
-
- protected BidiOverride(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public BidiOverride(FObj parent) {
+ super(parent);
this.name = "fo:bidi-override";
}
diff --git a/src/org/apache/fop/fo/flow/Block.java b/src/org/apache/fop/fo/flow/Block.java
index 1b6c812fa..687d08bc7 100644
--- a/src/org/apache/fop/fo/flow/Block.java
+++ b/src/org/apache/fop/fo/flow/Block.java
@@ -14,6 +14,8 @@ import org.apache.fop.layout.*;
import org.apache.fop.datatypes.*;
import org.apache.fop.apps.FOPException;
+import org.xml.sax.Attributes;
+
/*
Modified by Mark Lillywhite mark-fop@inomial.com. The changes
here are based on memory profiling and do not change functionality.
@@ -31,18 +33,6 @@ import org.apache.fop.apps.FOPException;
public class Block extends FObjMixed {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new Block(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new Block.Maker();
- }
-
int align;
int alignLast;
int breakAfter;
@@ -66,9 +56,13 @@ public class Block extends FObjMixed {
// this may be helpful on other FOs too
boolean anythingLaidOut = false;
- public Block(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public Block(FObj parent) {
+ super(parent);
this.name = "fo:block";
+ }
+
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
this.span = this.properties.get("span").getEnum();
}
diff --git a/src/org/apache/fop/fo/flow/BlockContainer.java b/src/org/apache/fop/fo/flow/BlockContainer.java
index 563fbbfcc..57084d570 100644
--- a/src/org/apache/fop/fo/flow/BlockContainer.java
+++ b/src/org/apache/fop/fo/flow/BlockContainer.java
@@ -19,6 +19,8 @@ import org.apache.fop.datatypes.*;
import java.util.Hashtable;
import java.util.Enumeration;
+import org.xml.sax.Attributes;
+
public class BlockContainer extends FObj {
ColorType backgroundColor;
@@ -35,24 +37,15 @@ public class BlockContainer extends FObj {
AreaContainer areaContainer;
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new BlockContainer(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new BlockContainer.Maker();
- }
-
PageSequence pageSequence;
- protected BlockContainer(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public BlockContainer(FObj parent) {
+ super(parent);
this.name = "fo:block-container";
+ }
+
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
this.span = this.properties.get("span").getEnum();
}
diff --git a/src/org/apache/fop/fo/flow/Character.java b/src/org/apache/fop/fo/flow/Character.java
index ac8b870ab..ee325b949 100644
--- a/src/org/apache/fop/fo/flow/Character.java
+++ b/src/org/apache/fop/fo/flow/Character.java
@@ -37,25 +37,11 @@ public class Character extends FObj {
public final static int OK = 0;
public final static int DOESNOT_FIT = 1;
- public Character(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public Character(FObj parent) {
+ super(parent);
this.name = "fo:character";
}
- public static FObj.Maker maker() {
- return new Character.Maker();
- }
-
-
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new Character(parent, propertyList);
- }
-
- }
-
-
public Status layout(Area area) throws FOPException {
BlockArea blockArea;
if (!(area instanceof BlockArea)) {
diff --git a/src/org/apache/fop/fo/flow/ExternalGraphic.java b/src/org/apache/fop/fo/flow/ExternalGraphic.java
index e5ce14930..5a988f7a0 100644
--- a/src/org/apache/fop/fo/flow/ExternalGraphic.java
+++ b/src/org/apache/fop/fo/flow/ExternalGraphic.java
@@ -36,13 +36,11 @@ public class ExternalGraphic extends FObj {
ImageArea imageArea;
-
- public ExternalGraphic(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public ExternalGraphic(FObj parent) {
+ super(parent);
this.name = "fo:external-graphic";
}
-
public Status layout(Area area) throws FOPException {
if (this.marker == START) {
@@ -251,18 +249,5 @@ public class ExternalGraphic extends FObj {
return new Status(Status.OK);
}
-
- public static FObj.Maker maker() {
- return new ExternalGraphic.Maker();
- }
-
-
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new ExternalGraphic(parent, propertyList);
- }
-
- }
}
diff --git a/src/org/apache/fop/fo/flow/Float.java b/src/org/apache/fop/fo/flow/Float.java
index b88e7873c..d77c0d635 100644
--- a/src/org/apache/fop/fo/flow/Float.java
+++ b/src/org/apache/fop/fo/flow/Float.java
@@ -18,21 +18,8 @@ import org.apache.fop.apps.FOPException;
*/
public class Float extends ToBeImplementedElement {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new Float(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new Float.Maker();
- }
-
- protected Float(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public Float(FObj parent) {
+ super(parent);
this.name = "fo:float";
}
diff --git a/src/org/apache/fop/fo/flow/Flow.java b/src/org/apache/fop/fo/flow/Flow.java
index 9846c86d7..d705d9cd2 100644
--- a/src/org/apache/fop/fo/flow/Flow.java
+++ b/src/org/apache/fop/fo/flow/Flow.java
@@ -20,19 +20,9 @@ import java.util.Hashtable;
import java.util.Enumeration;
import java.util.Vector;
-public class Flow extends FObj {
-
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new Flow(parent, propertyList);
- }
+import org.xml.sax.Attributes;
- }
-
- public static FObj.Maker maker() {
- return new Flow.Maker();
- }
+public class Flow extends FObj {
/**
* PageSequence container
@@ -62,11 +52,13 @@ public class Flow extends FObj {
private Status _status = new Status(Status.AREA_FULL_NONE);
- protected Flow(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public Flow(FObj parent) {
+ super(parent);
this.name = getElementName();
+ }
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
if (parent.getName().equals("fo:page-sequence")) {
this.pageSequence = (PageSequence)parent;
} else {
@@ -74,14 +66,11 @@ public class Flow extends FObj {
+ "page-sequence, not "
+ parent.getName());
}
- setFlowName(getProperty("flow-name").getString());
-
// 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 (pageSequence.isFlowSet()) {
if (this.name.equals("fo:flow")) {
throw new FOPException("Only a single fo:flow permitted"
+ " per fo:page-sequence");
@@ -90,6 +79,8 @@ public class Flow extends FObj {
+ " not allowed after fo:flow");
}
}
+*/
+ setFlowName(getProperty("flow-name").getString());
pageSequence.addFlow(this);
}
diff --git a/src/org/apache/fop/fo/flow/Footnote.java b/src/org/apache/fop/fo/flow/Footnote.java
index 3348b730d..4cdea7820 100644
--- a/src/org/apache/fop/fo/flow/Footnote.java
+++ b/src/org/apache/fop/fo/flow/Footnote.java
@@ -20,21 +20,8 @@ import java.util.Vector;
public class Footnote extends FObj {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new Footnote(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new Footnote.Maker();
- }
-
- public Footnote(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public Footnote(FObj parent) {
+ super(parent);
this.name = "fo:footnote";
}
diff --git a/src/org/apache/fop/fo/flow/FootnoteBody.java b/src/org/apache/fop/fo/flow/FootnoteBody.java
index 029ea5b92..5a2487126 100644
--- a/src/org/apache/fop/fo/flow/FootnoteBody.java
+++ b/src/org/apache/fop/fo/flow/FootnoteBody.java
@@ -27,26 +27,13 @@ public class FootnoteBody extends FObj {
int endIndent;
int textIndent;
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new FootnoteBody(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new FootnoteBody.Maker();
- }
-
- public FootnoteBody(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public FootnoteBody(FObj parent) {
+ super(parent);
this.name = "fo:footnote-body";
- this.areaClass = AreaClass.setAreaClass(AreaClass.XSL_FOOTNOTE);
}
public Status layout(Area area) throws FOPException {
+ this.areaClass = AreaClass.setAreaClass(AreaClass.XSL_FOOTNOTE);
if (this.marker == START) {
this.marker = 0;
}
diff --git a/src/org/apache/fop/fo/flow/InitialPropertySet.java b/src/org/apache/fop/fo/flow/InitialPropertySet.java
index aa53341a3..3c081007d 100644
--- a/src/org/apache/fop/fo/flow/InitialPropertySet.java
+++ b/src/org/apache/fop/fo/flow/InitialPropertySet.java
@@ -19,21 +19,8 @@ import org.apache.fop.apps.FOPException;
*/
public class InitialPropertySet extends ToBeImplementedElement {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new InitialPropertySet(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new InitialPropertySet.Maker();
- }
-
- protected InitialPropertySet(FObj parent, PropertyList propertyList)
- throws FOPException {
- super(parent, propertyList);
+ public InitialPropertySet(FObj parent) {
+ super(parent);
this.name = "fo:initial-property-set";
}
diff --git a/src/org/apache/fop/fo/flow/Inline.java b/src/org/apache/fop/fo/flow/Inline.java
index 69987b4e7..e954aa86c 100644
--- a/src/org/apache/fop/fo/flow/Inline.java
+++ b/src/org/apache/fop/fo/flow/Inline.java
@@ -16,19 +16,9 @@ import org.apache.fop.fo.properties.*;
// Java
import java.util.Enumeration;
-public class Inline extends FObjMixed {
-
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new Inline(parent, propertyList);
- }
-
- }
+import org.xml.sax.Attributes;
- public static FObj.Maker maker() {
- return new Inline.Maker();
- }
+public class Inline extends FObjMixed {
// Textdecoration
protected boolean underlined = false;
@@ -36,10 +26,14 @@ public class Inline extends FObjMixed {
protected boolean lineThrough = false;
- public Inline(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public Inline(FObj parent) {
+ super(parent);
this.name = "fo:inline";
+ }
+
+ 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");
diff --git a/src/org/apache/fop/fo/flow/InlineContainer.java b/src/org/apache/fop/fo/flow/InlineContainer.java
index 61aba7695..0f003208a 100644
--- a/src/org/apache/fop/fo/flow/InlineContainer.java
+++ b/src/org/apache/fop/fo/flow/InlineContainer.java
@@ -14,27 +14,19 @@ import org.apache.fop.fo.properties.*;
import org.apache.fop.layout.*;
import org.apache.fop.apps.FOPException;
+import org.xml.sax.Attributes;
+
/**
*/
public class InlineContainer extends ToBeImplementedElement {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new InlineContainer(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new InlineContainer.Maker();
- }
-
- protected InlineContainer(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public InlineContainer(FObj parent) {
+ super(parent);
this.name = "fo:inline-container";
+ }
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
// Common Border, Padding, and Background Properties
BorderAndPadding bap = propMgr.getBorderAndPadding();
BackgroundProps bProps = propMgr.getBackgroundProps();
diff --git a/src/org/apache/fop/fo/flow/InstreamForeignObject.java b/src/org/apache/fop/fo/flow/InstreamForeignObject.java
index 27f9dc1c4..6a6e56e87 100644
--- a/src/org/apache/fop/fo/flow/InstreamForeignObject.java
+++ b/src/org/apache/fop/fo/flow/InstreamForeignObject.java
@@ -21,35 +21,6 @@ import java.util.Enumeration;
public class InstreamForeignObject extends FObj {
- /**
- * inner class for making SVG objects.
- */
- public static class Maker extends FObj.Maker {
-
- /**
- * make an SVG object.
- *
- * @param parent the parent formatting object
- * @param propertyList the explicit properties of this object
- *
- * @return the SVG object
- */
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new InstreamForeignObject(parent, propertyList);
- }
-
- }
-
- /**
- * returns the maker for this object.
- *
- * @return the maker for SVG objects
- */
- public static FObj.Maker maker() {
- return new InstreamForeignObject.Maker();
- }
-
int breakBefore;
int breakAfter;
int scaling;
@@ -74,8 +45,8 @@ public class InstreamForeignObject extends FObj {
* @param parent the parent formatting object
* @param propertyList the explicit properties of this object
*/
- public InstreamForeignObject(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public InstreamForeignObject(FObj parent) {
+ super(parent);
this.name = "fo:instream-foreign-object";
}
diff --git a/src/org/apache/fop/fo/flow/Leader.java b/src/org/apache/fop/fo/flow/Leader.java
index b2a29007f..20a82b24d 100644
--- a/src/org/apache/fop/fo/flow/Leader.java
+++ b/src/org/apache/fop/fo/flow/Leader.java
@@ -23,23 +23,10 @@ import org.apache.fop.apps.FOPException;
* The following patterns are treated: rule, space, dots.
* The pattern use-content is ignored, i.e. it still must be implemented.
*/
-
public class Leader extends FObjMixed {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new Leader(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new Leader.Maker();
- }
-
- public Leader(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public Leader(FObj parent) {
+ super(parent);
this.name = "fo:leader";
}
diff --git a/src/org/apache/fop/fo/flow/ListBlock.java b/src/org/apache/fop/fo/flow/ListBlock.java
index 935ba9ccb..ce82cc3b0 100644
--- a/src/org/apache/fop/fo/flow/ListBlock.java
+++ b/src/org/apache/fop/fo/flow/ListBlock.java
@@ -21,18 +21,6 @@ import java.util.Enumeration;
public class ListBlock extends FObj {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new ListBlock(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new ListBlock.Maker();
- }
-
int align;
int alignLast;
int breakBefore;
@@ -45,8 +33,8 @@ public class ListBlock extends FObj {
int spaceBetweenListRows = 0;
ColorType backgroundColor;
- public ListBlock(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public ListBlock(FObj parent) {
+ super(parent);
this.name = "fo:list-block";
}
diff --git a/src/org/apache/fop/fo/flow/ListItem.java b/src/org/apache/fop/fo/flow/ListItem.java
index 683a2b024..06d802cfe 100644
--- a/src/org/apache/fop/fo/flow/ListItem.java
+++ b/src/org/apache/fop/fo/flow/ListItem.java
@@ -20,18 +20,6 @@ import java.util.Enumeration;
public class ListItem extends FObj {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new ListItem(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new ListItem.Maker();
- }
-
int align;
int alignLast;
int breakBefore;
@@ -44,8 +32,8 @@ public class ListItem extends FObj {
String id;
BlockArea blockArea;
- public ListItem(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public ListItem(FObj parent) {
+ super(parent);
this.name = "fo:list-item";
}
diff --git a/src/org/apache/fop/fo/flow/ListItemBody.java b/src/org/apache/fop/fo/flow/ListItemBody.java
index fa00c4b4d..40ed3a35b 100644
--- a/src/org/apache/fop/fo/flow/ListItemBody.java
+++ b/src/org/apache/fop/fo/flow/ListItemBody.java
@@ -19,20 +19,8 @@ import java.util.Enumeration;
public class ListItemBody extends FObj {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new ListItemBody(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new ListItemBody.Maker();
- }
-
- public ListItemBody(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public ListItemBody(FObj parent) {
+ super(parent);
this.name = "fo:list-item-body";
}
diff --git a/src/org/apache/fop/fo/flow/ListItemLabel.java b/src/org/apache/fop/fo/flow/ListItemLabel.java
index a649459d3..890247f57 100644
--- a/src/org/apache/fop/fo/flow/ListItemLabel.java
+++ b/src/org/apache/fop/fo/flow/ListItemLabel.java
@@ -19,20 +19,8 @@ import java.util.Enumeration;
public class ListItemLabel extends FObj {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new ListItemLabel(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new ListItemLabel.Maker();
- }
-
- public ListItemLabel(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public ListItemLabel(FObj parent) {
+ super(parent);
this.name = "fo:list-item-label";
}
diff --git a/src/org/apache/fop/fo/flow/Marker.java b/src/org/apache/fop/fo/flow/Marker.java
index 0eb0baaa5..8267dcdf5 100644
--- a/src/org/apache/fop/fo/flow/Marker.java
+++ b/src/org/apache/fop/fo/flow/Marker.java
@@ -14,27 +14,20 @@ import org.apache.fop.layout.*;
import org.apache.fop.datatypes.*;
import org.apache.fop.apps.FOPException;
+import org.xml.sax.Attributes;
+
public class Marker extends FObjMixed {
private String markerClassName;
private Area registryArea;
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new Marker(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new Marker.Maker();
- }
-
- public Marker(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public Marker(FObj parent) {
+ super(parent);
this.name = "fo:marker";
+ }
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
// do check to see that 'this' is under fo:flow
this.markerClassName =
diff --git a/src/org/apache/fop/fo/flow/MultiCase.java b/src/org/apache/fop/fo/flow/MultiCase.java
index d3c0884c2..5111cadf3 100644
--- a/src/org/apache/fop/fo/flow/MultiCase.java
+++ b/src/org/apache/fop/fo/flow/MultiCase.java
@@ -18,21 +18,8 @@ import org.apache.fop.apps.FOPException;
*/
public class MultiCase extends ToBeImplementedElement {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new MultiCase(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new MultiCase.Maker();
- }
-
- protected MultiCase(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public MultiCase(FObj parent) {
+ super(parent);
this.name = "fo:multi-case";
}
diff --git a/src/org/apache/fop/fo/flow/MultiProperties.java b/src/org/apache/fop/fo/flow/MultiProperties.java
index 19cd50019..c0262a95b 100644
--- a/src/org/apache/fop/fo/flow/MultiProperties.java
+++ b/src/org/apache/fop/fo/flow/MultiProperties.java
@@ -18,21 +18,8 @@ import org.apache.fop.apps.FOPException;
*/
public class MultiProperties extends ToBeImplementedElement {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new MultiProperties(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new MultiProperties.Maker();
- }
-
- protected MultiProperties(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public MultiProperties(FObj parent) {
+ super(parent);
this.name = "fo:multi-properties";
}
diff --git a/src/org/apache/fop/fo/flow/MultiPropertySet.java b/src/org/apache/fop/fo/flow/MultiPropertySet.java
index f9c9fb96e..aebff3405 100644
--- a/src/org/apache/fop/fo/flow/MultiPropertySet.java
+++ b/src/org/apache/fop/fo/flow/MultiPropertySet.java
@@ -18,21 +18,8 @@ import org.apache.fop.apps.FOPException;
*/
public class MultiPropertySet extends ToBeImplementedElement {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new MultiPropertySet(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new MultiPropertySet.Maker();
- }
-
- protected MultiPropertySet(FObj parent, PropertyList propertyList)
- throws FOPException {
- super(parent, propertyList);
+ public MultiPropertySet(FObj parent) {
+ super(parent);
this.name = "fo:multi-property-set";
}
diff --git a/src/org/apache/fop/fo/flow/MultiSwitch.java b/src/org/apache/fop/fo/flow/MultiSwitch.java
index eabd80535..505efef29 100644
--- a/src/org/apache/fop/fo/flow/MultiSwitch.java
+++ b/src/org/apache/fop/fo/flow/MultiSwitch.java
@@ -18,21 +18,8 @@ import org.apache.fop.apps.FOPException;
*/
public class MultiSwitch extends ToBeImplementedElement {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new MultiSwitch(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new MultiSwitch.Maker();
- }
-
- protected MultiSwitch(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public MultiSwitch(FObj parent) {
+ super(parent);
this.name = "fo:multi-switch";
}
diff --git a/src/org/apache/fop/fo/flow/MultiToggle.java b/src/org/apache/fop/fo/flow/MultiToggle.java
index f49fcd170..6605c4fb5 100644
--- a/src/org/apache/fop/fo/flow/MultiToggle.java
+++ b/src/org/apache/fop/fo/flow/MultiToggle.java
@@ -18,21 +18,8 @@ import org.apache.fop.apps.FOPException;
*/
public class MultiToggle extends ToBeImplementedElement {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new MultiToggle(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new MultiToggle.Maker();
- }
-
- protected MultiToggle(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public MultiToggle(FObj parent) {
+ super(parent);
this.name = "fo:multi-toggle";
}
diff --git a/src/org/apache/fop/fo/flow/PageNumber.java b/src/org/apache/fop/fo/flow/PageNumber.java
index 81b807a15..b67f569fd 100644
--- a/src/org/apache/fop/fo/flow/PageNumber.java
+++ b/src/org/apache/fop/fo/flow/PageNumber.java
@@ -20,18 +20,6 @@ import java.util.Enumeration;
public class PageNumber extends FObj {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new PageNumber(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new PageNumber.Maker();
- }
-
float red;
float green;
float blue;
@@ -39,8 +27,8 @@ public class PageNumber extends FObj {
int whiteSpaceCollapse;
TextState ts;
- public PageNumber(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public PageNumber(FObj parent) {
+ super(parent);
this.name = "fo:page-number";
}
diff --git a/src/org/apache/fop/fo/flow/PageNumberCitation.java b/src/org/apache/fop/fo/flow/PageNumberCitation.java
index 447149cce..b0881783e 100644
--- a/src/org/apache/fop/fo/flow/PageNumberCitation.java
+++ b/src/org/apache/fop/fo/flow/PageNumberCitation.java
@@ -72,18 +72,6 @@ import org.apache.fop.apps.FOPException;
*/
public class PageNumberCitation extends FObj {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new PageNumberCitation(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new PageNumberCitation.Maker();
- }
-
float red;
float green;
float blue;
@@ -96,12 +84,11 @@ public class PageNumberCitation extends FObj {
TextState ts;
- public PageNumberCitation(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public PageNumberCitation(FObj parent) {
+ super(parent);
this.name = "fo:page-number-citation";
}
-
public Status layout(Area area) throws FOPException {
if (!(area instanceof BlockArea)) {
log.warn("page-number-citation outside block area");
diff --git a/src/org/apache/fop/fo/flow/RetrieveMarker.java b/src/org/apache/fop/fo/flow/RetrieveMarker.java
index 67e9f5047..b7f322522 100644
--- a/src/org/apache/fop/fo/flow/RetrieveMarker.java
+++ b/src/org/apache/fop/fo/flow/RetrieveMarker.java
@@ -17,28 +17,21 @@ import org.apache.fop.apps.FOPException;
// Java
import java.util.Vector;
+import org.xml.sax.Attributes;
+
public class RetrieveMarker extends FObjMixed {
private String retrieveClassName;
private int retrievePosition;
private int retrieveBoundary;
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new RetrieveMarker(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new RetrieveMarker.Maker();
- }
-
- public RetrieveMarker(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public RetrieveMarker(FObj parent) {
+ super(parent);
this.name = "fo:retrieve-marker";
+ }
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
this.retrieveClassName =
this.properties.get("retrieve-class-name").getString();
this.retrievePosition =
diff --git a/src/org/apache/fop/fo/flow/StaticContent.java b/src/org/apache/fop/fo/flow/StaticContent.java
index 9e50e242b..dd02ff0d3 100644
--- a/src/org/apache/fop/fo/flow/StaticContent.java
+++ b/src/org/apache/fop/fo/flow/StaticContent.java
@@ -19,21 +19,8 @@ import java.util.Enumeration;
public class StaticContent extends Flow {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new StaticContent(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new StaticContent.Maker();
- }
-
- protected StaticContent(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public StaticContent(FObj parent) {
+ super(parent);
((PageSequence)parent).setIsFlowSet(false); // hacquery of sorts
}
diff --git a/src/org/apache/fop/fo/flow/Table.java b/src/org/apache/fop/fo/flow/Table.java
index 6ebd4b711..9349b3f91 100644
--- a/src/org/apache/fop/fo/flow/Table.java
+++ b/src/org/apache/fop/fo/flow/Table.java
@@ -20,18 +20,6 @@ import java.util.Enumeration;
public class Table extends FObj {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new Table(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new Table.Maker();
- }
-
private static final int MINCOLWIDTH = 10000; // 10pt
int breakBefore;
int breakAfter;
@@ -59,8 +47,8 @@ public class Table extends FObj {
AreaContainer areaContainer;
- public Table(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public Table(FObj parent) {
+ super(parent);
this.name = "fo:table";
}
diff --git a/src/org/apache/fop/fo/flow/TableAndCaption.java b/src/org/apache/fop/fo/flow/TableAndCaption.java
index d7cbebf20..22db586c1 100644
--- a/src/org/apache/fop/fo/flow/TableAndCaption.java
+++ b/src/org/apache/fop/fo/flow/TableAndCaption.java
@@ -18,21 +18,8 @@ import org.apache.fop.apps.FOPException;
*/
public class TableAndCaption extends ToBeImplementedElement {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new TableAndCaption(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new TableAndCaption.Maker();
- }
-
- protected TableAndCaption(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public TableAndCaption(FObj parent) {
+ super(parent);
this.name = "fo:table-and-caption";
}
diff --git a/src/org/apache/fop/fo/flow/TableBody.java b/src/org/apache/fop/fo/flow/TableBody.java
index 7ca06d172..3b85e0754 100644
--- a/src/org/apache/fop/fo/flow/TableBody.java
+++ b/src/org/apache/fop/fo/flow/TableBody.java
@@ -20,18 +20,6 @@ import java.util.Enumeration;
public class TableBody extends FObj {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new TableBody(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new TableBody.Maker();
- }
-
int spaceBefore;
int spaceAfter;
ColorType backgroundColor;
@@ -42,8 +30,8 @@ public class TableBody extends FObj {
AreaContainer areaContainer;
- public TableBody(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public TableBody(FObj parent) {
+ super(parent);
this.name = "fo:table-body";
}
diff --git a/src/org/apache/fop/fo/flow/TableCaption.java b/src/org/apache/fop/fo/flow/TableCaption.java
index 396f08863..ef4ccc62e 100644
--- a/src/org/apache/fop/fo/flow/TableCaption.java
+++ b/src/org/apache/fop/fo/flow/TableCaption.java
@@ -18,21 +18,8 @@ import org.apache.fop.apps.FOPException;
*/
public class TableCaption extends ToBeImplementedElement {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new TableCaption(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new TableCaption.Maker();
- }
-
- protected TableCaption(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public TableCaption(FObj parent) {
+ super(parent);
this.name = "fo:table-caption";
}
diff --git a/src/org/apache/fop/fo/flow/TableCell.java b/src/org/apache/fop/fo/flow/TableCell.java
index 4c5fe1c1d..87fc89fef 100644
--- a/src/org/apache/fop/fo/flow/TableCell.java
+++ b/src/org/apache/fop/fo/flow/TableCell.java
@@ -14,19 +14,9 @@ import org.apache.fop.layout.*;
import org.apache.fop.apps.FOPException;
import org.apache.fop.datatypes.*;
-public class TableCell extends FObj {
-
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new TableCell(parent, propertyList);
- }
-
- }
+import org.xml.sax.Attributes;
- public static FObj.Maker maker() {
- return new TableCell.Maker();
- }
+public class TableCell extends FObj {
// int spaceBefore;
// int spaceAfter;
@@ -96,9 +86,13 @@ public class TableCell extends FObj {
AreaContainer cellArea;
- public TableCell(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public TableCell(FObj parent) {
+ super(parent);
this.name = "fo:table-cell";
+ }
+
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
doSetup(); // init some basic property values
}
diff --git a/src/org/apache/fop/fo/flow/TableColumn.java b/src/org/apache/fop/fo/flow/TableColumn.java
index 44684ae33..358fc10a5 100644
--- a/src/org/apache/fop/fo/flow/TableColumn.java
+++ b/src/org/apache/fop/fo/flow/TableColumn.java
@@ -28,20 +28,8 @@ public class TableColumn extends FObj {
AreaContainer areaContainer;
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new TableColumn(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new TableColumn.Maker();
- }
-
- public TableColumn(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public TableColumn(FObj parent) {
+ super(parent);
this.name = "fo:table-column";
}
diff --git a/src/org/apache/fop/fo/flow/TableFooter.java b/src/org/apache/fop/fo/flow/TableFooter.java
index 0a6ebe02d..f69a47308 100644
--- a/src/org/apache/fop/fo/flow/TableFooter.java
+++ b/src/org/apache/fop/fo/flow/TableFooter.java
@@ -14,20 +14,8 @@ import org.apache.fop.datatypes.*;
import org.apache.fop.layout.*;
import org.apache.fop.apps.FOPException;
-// Java
-import java.util.Vector;
-import java.util.Enumeration;
-
public class TableFooter extends TableBody {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new TableFooter(parent, propertyList);
- }
-
- }
-
public int getYPosition() {
return areaContainer.getCurrentYPosition() - spaceBefore;
}
@@ -36,12 +24,8 @@ public class TableFooter extends TableBody {
areaContainer.setYPosition(value + 2 * spaceBefore);
}
- public static FObj.Maker maker() {
- return new TableFooter.Maker();
- }
-
- public TableFooter(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public TableFooter(FObj parent) {
+ super(parent);
this.name = "fo:table-footer";
}
diff --git a/src/org/apache/fop/fo/flow/TableHeader.java b/src/org/apache/fop/fo/flow/TableHeader.java
index 81fd7a69b..c103b6da1 100644
--- a/src/org/apache/fop/fo/flow/TableHeader.java
+++ b/src/org/apache/fop/fo/flow/TableHeader.java
@@ -14,26 +14,10 @@ import org.apache.fop.datatypes.*;
import org.apache.fop.layout.*;
import org.apache.fop.apps.FOPException;
-// Java
-import java.util.Vector;
-import java.util.Enumeration;
-
public class TableHeader extends TableBody {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new TableHeader(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new TableHeader.Maker();
- }
-
- public TableHeader(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public TableHeader(FObj parent) {
+ super(parent);
this.name = "fo:table-header";
}
diff --git a/src/org/apache/fop/fo/flow/TableRow.java b/src/org/apache/fop/fo/flow/TableRow.java
index d06e04784..316d1d814 100644
--- a/src/org/apache/fop/fo/flow/TableRow.java
+++ b/src/org/apache/fop/fo/flow/TableRow.java
@@ -20,18 +20,6 @@ import java.util.Enumeration;
public class TableRow extends FObj {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new TableRow(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new TableRow.Maker();
- }
-
boolean setup = false;
int breakAfter;
@@ -172,8 +160,8 @@ public class TableRow extends FObj {
}
- public TableRow(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public TableRow(FObj parent) {
+ super(parent);
this.name = "fo:table-row";
}
diff --git a/src/org/apache/fop/fo/flow/Wrapper.java b/src/org/apache/fop/fo/flow/Wrapper.java
index da7eaa4f7..9eb8e56df 100644
--- a/src/org/apache/fop/fo/flow/Wrapper.java
+++ b/src/org/apache/fop/fo/flow/Wrapper.java
@@ -23,20 +23,8 @@ import org.apache.fop.layout.*;
*/
public class Wrapper extends FObjMixed {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new Wrapper(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new Wrapper.Maker();
- }
-
- public Wrapper(FObj parent, PropertyList propertyList) {
- super(parent, propertyList);
+ public Wrapper(FObj parent) {
+ super(parent);
// check that this occurs inside an fo:flow
}
diff --git a/src/org/apache/fop/fo/pagination/ConditionalPageMasterReference.java b/src/org/apache/fop/fo/pagination/ConditionalPageMasterReference.java
index 2e3a81431..26ad3ccb9 100644
--- a/src/org/apache/fop/fo/pagination/ConditionalPageMasterReference.java
+++ b/src/org/apache/fop/fo/pagination/ConditionalPageMasterReference.java
@@ -11,19 +11,9 @@ import org.apache.fop.fo.*;
import org.apache.fop.fo.properties.*;
import org.apache.fop.apps.FOPException;
-public class ConditionalPageMasterReference extends FObj {
-
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new ConditionalPageMasterReference(parent, propertyList);
- }
+import org.xml.sax.Attributes;
- }
-
- public static FObj.Maker maker() {
- return new ConditionalPageMasterReference.Maker();
- }
+public class ConditionalPageMasterReference extends FObj {
private RepeatablePageMasterAlternatives repeatablePageMasterAlternatives;
@@ -33,11 +23,14 @@ public class ConditionalPageMasterReference extends FObj {
private int oddOrEven;
private int blankOrNotBlank;
- public ConditionalPageMasterReference(FObj parent, PropertyList propertyList)
- throws FOPException {
- super(parent, propertyList);
+ public ConditionalPageMasterReference(FObj parent) {
+ super(parent);
this.name = getElementName();
+ }
+
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
if (getProperty("master-name") != null) {
setMasterName(getProperty("master-name").getString());
}
@@ -47,8 +40,6 @@ public class ConditionalPageMasterReference extends FObj {
setPagePosition(this.properties.get("page-position").getEnum());
setOddOrEven(this.properties.get("odd-or-even").getEnum());
setBlankOrNotBlank(this.properties.get("blank-or-not-blank").getEnum());
-
-
}
protected void setMasterName(String masterName) {
diff --git a/src/org/apache/fop/fo/pagination/LayoutMasterSet.java b/src/org/apache/fop/fo/pagination/LayoutMasterSet.java
index 1c5b85118..8ac2e8fc9 100644
--- a/src/org/apache/fop/fo/pagination/LayoutMasterSet.java
+++ b/src/org/apache/fop/fo/pagination/LayoutMasterSet.java
@@ -16,19 +16,9 @@ import org.apache.fop.layout.PageMaster;
// Java
import java.util.*;
-public class LayoutMasterSet extends FObj {
-
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new LayoutMasterSet(parent, propertyList);
- }
-
- }
+import org.xml.sax.Attributes;
- public static FObj.Maker maker() {
- return new LayoutMasterSet.Maker();
- }
+public class LayoutMasterSet extends FObj {
private Hashtable simplePageMasters;
private Hashtable pageSequenceMasters;
@@ -36,11 +26,13 @@ public class LayoutMasterSet extends FObj {
private Root root;
- protected LayoutMasterSet(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public LayoutMasterSet(FObj parent) {
+ super(parent);
this.name = "fo:layout-master-set";
+ }
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
this.simplePageMasters = new Hashtable();
this.pageSequenceMasters = new Hashtable();
diff --git a/src/org/apache/fop/fo/pagination/PageMasterReference.java b/src/org/apache/fop/fo/pagination/PageMasterReference.java
index 05300a065..1c9a2f722 100644
--- a/src/org/apache/fop/fo/pagination/PageMasterReference.java
+++ b/src/org/apache/fop/fo/pagination/PageMasterReference.java
@@ -11,6 +11,8 @@ import org.apache.fop.fo.*;
import org.apache.fop.fo.properties.*;
import org.apache.fop.apps.FOPException;
+import org.xml.sax.Attributes;
+
/**
* Base PageMasterReference class. Provides implementation for handling the
* master-name attribute and containment within a PageSequenceMaster
@@ -21,10 +23,13 @@ public abstract class PageMasterReference extends FObj
private String _masterName;
private PageSequenceMaster _pageSequenceMaster;
- public PageMasterReference(FObj parent, PropertyList propertyList)
- throws FOPException {
- super(parent, propertyList);
+ public PageMasterReference(FObj parent) {
+ super(parent);
this.name = getElementName();
+ }
+
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
if (getProperty("master-name") != null) {
setMasterName(getProperty("master-name").getString());
}
diff --git a/src/org/apache/fop/fo/pagination/PageSequence.java b/src/org/apache/fop/fo/pagination/PageSequence.java
index 5b957d8a8..67d55212e 100644
--- a/src/org/apache/fop/fo/pagination/PageSequence.java
+++ b/src/org/apache/fop/fo/pagination/PageSequence.java
@@ -28,6 +28,8 @@ import org.apache.fop.apps.FOPException;
// Java
import java.util.*;
+import org.xml.sax.Attributes;
+
/**
* This provides pagination of flows onto pages. Much of the
* logic for paginating flows is contained in this class.
@@ -35,21 +37,6 @@ import java.util.*;
*/
public class PageSequence extends FObj {
//
- // Factory methods
- //
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new PageSequence(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new PageSequence.Maker();
- }
-
- //
// intial-page-number types
//
private static final int EXPLICIT = 0;
@@ -134,10 +121,13 @@ public class PageSequence extends FObj {
private String currentPageMasterName;
- protected PageSequence(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public PageSequence(FObj parent) {
+ super(parent);
this.name = "fo:page-sequence";
+ }
+
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
if (parent.getName().equals("fo:root")) {
this.root = (Root)parent;
diff --git a/src/org/apache/fop/fo/pagination/PageSequenceMaster.java b/src/org/apache/fop/fo/pagination/PageSequenceMaster.java
index 018356f7a..6be32ac1e 100644
--- a/src/org/apache/fop/fo/pagination/PageSequenceMaster.java
+++ b/src/org/apache/fop/fo/pagination/PageSequenceMaster.java
@@ -16,19 +16,9 @@ import org.apache.fop.apps.FOPException;
// Java
import java.util.*;
-public class PageSequenceMaster extends FObj {
-
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new PageSequenceMaster(parent, propertyList);
- }
-
- }
+import org.xml.sax.Attributes;
- public static FObj.Maker maker() {
- return new PageSequenceMaster.Maker();
- }
+public class PageSequenceMaster extends FObj {
LayoutMasterSet layoutMasterSet;
Vector subSequenceSpecifiers;
@@ -40,10 +30,13 @@ public class PageSequenceMaster extends FObj {
// references to page-masters. So the methods use the former
// terminology ('sub-sequence-specifiers', or SSS),
// but the actual FO's are MasterReferences.
- protected PageSequenceMaster(FObj parent, PropertyList propertyList)
- throws FOPException {
- super(parent, propertyList);
+ public PageSequenceMaster(FObj parent) {
+ super(parent);
this.name = "fo:page-sequence-master";
+ }
+
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
subSequenceSpecifiers = new Vector();
diff --git a/src/org/apache/fop/fo/pagination/Region.java b/src/org/apache/fop/fo/pagination/Region.java
index 18c2d6d15..f0c8be477 100644
--- a/src/org/apache/fop/fo/pagination/Region.java
+++ b/src/org/apache/fop/fo/pagination/Region.java
@@ -13,6 +13,8 @@ import org.apache.fop.fo.PropertyList;
import org.apache.fop.apps.FOPException;
import org.apache.fop.layout.RegionArea;
+import org.xml.sax.Attributes;
+
/**
* This is an abstract base class for pagination regions
*/
@@ -22,10 +24,13 @@ public abstract class Region extends FObj {
private SimplePageMaster _layoutMaster;
private String _regionName;
- protected Region(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ protected Region(FObj parent) {
+ super(parent);
this.name = getElementName();
+ }
+
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
// regions may have name, or default
if (null == this.properties.get(PROP_REGION_NAME)) {
diff --git a/src/org/apache/fop/fo/pagination/RegionAfter.java b/src/org/apache/fop/fo/pagination/RegionAfter.java
index 39fe22d1a..e57034161 100644
--- a/src/org/apache/fop/fo/pagination/RegionAfter.java
+++ b/src/org/apache/fop/fo/pagination/RegionAfter.java
@@ -15,27 +15,20 @@ import org.apache.fop.layout.RegionArea;
import org.apache.fop.layout.BorderAndPadding;
import org.apache.fop.layout.BackgroundProps;
-public class RegionAfter extends Region {
-
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new RegionAfter(parent, propertyList);
- }
-
- }
+import org.xml.sax.Attributes;
- public static FObj.Maker maker() {
- return new RegionAfter.Maker();
- }
+public class RegionAfter extends Region {
public static final String REGION_CLASS = "after";
private int precedence;
- protected RegionAfter(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public RegionAfter(FObj parent) {
+ super(parent);
+ }
+
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
precedence = this.properties.get("precedence").getEnum();
}
diff --git a/src/org/apache/fop/fo/pagination/RegionBefore.java b/src/org/apache/fop/fo/pagination/RegionBefore.java
index e2bcdcf5e..6d96aa365 100644
--- a/src/org/apache/fop/fo/pagination/RegionBefore.java
+++ b/src/org/apache/fop/fo/pagination/RegionBefore.java
@@ -15,30 +15,22 @@ import org.apache.fop.layout.BorderAndPadding;
import org.apache.fop.layout.BackgroundProps;
import org.apache.fop.apps.FOPException;
-public class RegionBefore extends Region {
-
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new RegionBefore(parent, propertyList);
- }
+import org.xml.sax.Attributes;
- }
-
- public static FObj.Maker maker() {
- return new RegionBefore.Maker();
- }
+public class RegionBefore extends Region {
public static final String REGION_CLASS = "before";
private int precedence;
- protected RegionBefore(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
- precedence = this.properties.get("precedence").getEnum();
+ public RegionBefore(FObj parent) {
+ super(parent);
}
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
+ precedence = this.properties.get("precedence").getEnum();
+ }
RegionArea makeRegionArea(int allocationRectangleXPosition,
int allocationRectangleYPosition,
diff --git a/src/org/apache/fop/fo/pagination/RegionBody.java b/src/org/apache/fop/fo/pagination/RegionBody.java
index 9c4d46078..97f55127d 100644
--- a/src/org/apache/fop/fo/pagination/RegionBody.java
+++ b/src/org/apache/fop/fo/pagination/RegionBody.java
@@ -21,26 +21,12 @@ import org.apache.fop.layout.MarginProps;
public class RegionBody extends Region {
-
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new RegionBody(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new RegionBody.Maker();
- }
-
public static final String REGION_CLASS = "body";
ColorType backgroundColor;
- protected RegionBody(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public RegionBody(FObj parent) {
+ super(parent);
}
RegionArea makeRegionArea(int allocationRectangleXPosition,
diff --git a/src/org/apache/fop/fo/pagination/RegionEnd.java b/src/org/apache/fop/fo/pagination/RegionEnd.java
index 0712af5c0..b1fecf325 100644
--- a/src/org/apache/fop/fo/pagination/RegionEnd.java
+++ b/src/org/apache/fop/fo/pagination/RegionEnd.java
@@ -17,27 +17,13 @@ import org.apache.fop.apps.FOPException;
public class RegionEnd extends Region {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new RegionEnd(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new RegionEnd.Maker();
- }
-
public static final String REGION_CLASS = "end";
- protected RegionEnd(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public RegionEnd(FObj parent) {
+ super(parent);
}
-
RegionArea makeRegionArea(int allocationRectangleXPosition,
int allocationRectangleYPosition,
int allocationRectangleWidth,
diff --git a/src/org/apache/fop/fo/pagination/RegionStart.java b/src/org/apache/fop/fo/pagination/RegionStart.java
index 0388340ec..bbd262df3 100644
--- a/src/org/apache/fop/fo/pagination/RegionStart.java
+++ b/src/org/apache/fop/fo/pagination/RegionStart.java
@@ -17,27 +17,13 @@ import org.apache.fop.apps.FOPException;
public class RegionStart extends Region {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new RegionStart(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new RegionStart.Maker();
- }
-
public static final String REGION_CLASS = "start";
- protected RegionStart(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
+ public RegionStart(FObj parent) {
+ super(parent);
}
-
RegionArea makeRegionArea(int allocationRectangleXPosition,
int allocationRectangleYPosition,
int allocationRectangleWidth,
diff --git a/src/org/apache/fop/fo/pagination/RepeatablePageMasterAlternatives.java b/src/org/apache/fop/fo/pagination/RepeatablePageMasterAlternatives.java
index a7ef8632c..3a6dd83bf 100644
--- a/src/org/apache/fop/fo/pagination/RepeatablePageMasterAlternatives.java
+++ b/src/org/apache/fop/fo/pagination/RepeatablePageMasterAlternatives.java
@@ -13,24 +13,13 @@ import org.apache.fop.apps.FOPException;
// Java
import java.util.Vector;
+import org.xml.sax.Attributes;
+
public class RepeatablePageMasterAlternatives extends FObj
implements SubSequenceSpecifier {
private static final int INFINITE = -1;
-
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new RepeatablePageMasterAlternatives(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new RepeatablePageMasterAlternatives.Maker();
- }
-
private PageSequenceMaster pageSequenceMaster;
/**
@@ -42,10 +31,13 @@ public class RepeatablePageMasterAlternatives extends FObj
private Vector conditionalPageMasterRefs;
- public RepeatablePageMasterAlternatives(FObj parent, PropertyList propertyList)
- throws FOPException {
- super(parent, propertyList);
+ public RepeatablePageMasterAlternatives(FObj parent) {
+ super(parent);
this.name = "fo:repeatable-page-master-alternatives";
+ }
+
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
conditionalPageMasterRefs = new Vector();
diff --git a/src/org/apache/fop/fo/pagination/RepeatablePageMasterReference.java b/src/org/apache/fop/fo/pagination/RepeatablePageMasterReference.java
index 85abf8039..521fd02c9 100644
--- a/src/org/apache/fop/fo/pagination/RepeatablePageMasterReference.java
+++ b/src/org/apache/fop/fo/pagination/RepeatablePageMasterReference.java
@@ -10,32 +10,24 @@ package org.apache.fop.fo.pagination;
import org.apache.fop.fo.*;
import org.apache.fop.apps.FOPException;
+import org.xml.sax.Attributes;
+
public class RepeatablePageMasterReference extends PageMasterReference
implements SubSequenceSpecifier {
private static final int INFINITE = -1;
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new RepeatablePageMasterReference(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new RepeatablePageMasterReference.Maker();
- }
-
-
private PageSequenceMaster pageSequenceMaster;
private int maximumRepeats;
private int numberConsumed = 0;
- public RepeatablePageMasterReference(FObj parent, PropertyList propertyList)
- throws FOPException {
- super(parent, propertyList);
+ public RepeatablePageMasterReference(FObj parent) {
+ super(parent);
+ }
+
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
String mr = getProperty("maximum-repeats").getString();
if (mr.equals("no-limit")) {
diff --git a/src/org/apache/fop/fo/pagination/Root.java b/src/org/apache/fop/fo/pagination/Root.java
index eecfb57b3..4a16a7fd1 100644
--- a/src/org/apache/fop/fo/pagination/Root.java
+++ b/src/org/apache/fop/fo/pagination/Root.java
@@ -25,18 +25,6 @@ import java.util.Enumeration;
*/
public class Root extends FObj {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new Root(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new Root.Maker();
- }
-
LayoutMasterSet layoutMasterSet;
Vector pageSequences;
@@ -45,17 +33,15 @@ public class Root extends FObj {
*/
private int runningPageNumberCounter = 0;
- protected Root(FObj parent,
- PropertyList propertyList) throws FOPException {
- super(parent, propertyList);
- this.name = "fo:root";
+ public Root(FObj parent) {
+ super(parent);
// this.properties.get("media-usage");
pageSequences = new Vector();
if (parent != null) {
- throw new FOPException("root must be root element");
+ //throw new FOPException("root must be root element");
}
}
@@ -101,22 +87,4 @@ public class Root extends FObj {
public void setLayoutMasterSet(LayoutMasterSet layoutMasterSet) {
this.layoutMasterSet = layoutMasterSet;
}
-/*
- public void format(AreaTree areaTree) throws FOPException {
- // log.debug(" Root[" + marker + "] ");
- if (layoutMasterSet == null) {
- throw new FOPException("No layout master set.");
- }
-
- Enumeration e = children.elements();
- while (e.hasMoreElements()) {
- Object o = e.nextElement();
- if (o instanceof PageSequence) {
- ((PageSequence)o).format(areaTree);
- } else if (o instanceof ExtensionObj) {
- ((ExtensionObj)o).format(areaTree);
- }
- }
- }
-*/
}
diff --git a/src/org/apache/fop/fo/pagination/SimplePageMaster.java b/src/org/apache/fop/fo/pagination/SimplePageMaster.java
index 92586593c..d50194889 100644
--- a/src/org/apache/fop/fo/pagination/SimplePageMaster.java
+++ b/src/org/apache/fop/fo/pagination/SimplePageMaster.java
@@ -18,26 +18,15 @@ import org.apache.fop.apps.FOPException;
import java.util.*;
-public class SimplePageMaster extends FObj {
-
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new SimplePageMaster(parent, propertyList);
- }
-
- }
+import org.xml.sax.Attributes;
- public static FObj.Maker maker() {
- return new SimplePageMaster.Maker();
- }
+public class SimplePageMaster extends FObj {
/**
* Page regions (regionClass, Region)
*/
private Hashtable _regions;
-
LayoutMasterSet layoutMasterSet;
PageMaster pageMaster;
String masterName;
@@ -48,10 +37,13 @@ public class SimplePageMaster extends FObj {
boolean afterPrecedence;
int afterHeight;
- protected SimplePageMaster(FObj parent, PropertyList propertyList)
- throws FOPException {
- super(parent, propertyList);
+ public SimplePageMaster(FObj parent) {
+ super(parent);
this.name = "fo:simple-page-master";
+ }
+
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
if (parent.getName().equals("fo:layout-master-set")) {
this.layoutMasterSet = (LayoutMasterSet)parent;
diff --git a/src/org/apache/fop/fo/pagination/SinglePageMasterReference.java b/src/org/apache/fop/fo/pagination/SinglePageMasterReference.java
index 7422aa257..c22afb672 100644
--- a/src/org/apache/fop/fo/pagination/SinglePageMasterReference.java
+++ b/src/org/apache/fop/fo/pagination/SinglePageMasterReference.java
@@ -12,28 +12,14 @@ import org.apache.fop.apps.FOPException;
public class SinglePageMasterReference extends PageMasterReference
implements SubSequenceSpecifier {
- public static class Maker extends FObj.Maker {
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new SinglePageMasterReference(parent, propertyList);
- }
-
- }
-
- public static FObj.Maker maker() {
- return new SinglePageMasterReference.Maker();
- }
-
private static final int FIRST = 0;
private static final int DONE = 1;
private int state;
- public SinglePageMasterReference(FObj parent, PropertyList propertyList)
- throws FOPException {
- super(parent, propertyList);
+ public SinglePageMasterReference(FObj parent) {
+ super(parent);
this.state = FIRST;
-
}
public String getNextPageMaster(int currentPageNumber,
diff --git a/src/org/apache/fop/svg/PDFGraphics2D.java b/src/org/apache/fop/svg/PDFGraphics2D.java
index a48c4e7d6..296ef8768 100644
--- a/src/org/apache/fop/svg/PDFGraphics2D.java
+++ b/src/org/apache/fop/svg/PDFGraphics2D.java
@@ -1250,6 +1250,12 @@ System.out.println("getting getNormalizingTransform");
return new PDFGraphicsDevice(this);
}
+/*
+// for jdk1.4
+public java.awt.image.VolatileImage createCompatibleVolatileImage(int width, int height) {
+return null;
+}
+*/
}
/**
diff --git a/src/org/apache/fop/svg/SVGElement.java b/src/org/apache/fop/svg/SVGElement.java
index 3d098e32c..4c49334ef 100644
--- a/src/org/apache/fop/svg/SVGElement.java
+++ b/src/org/apache/fop/svg/SVGElement.java
@@ -21,6 +21,7 @@ import org.apache.batik.dom.util.XMLSupport;
import org.w3c.dom.*;
import org.w3c.dom.svg.*;
import org.w3c.dom.svg.SVGLength;
+import org.xml.sax.Attributes;
import org.apache.batik.bridge.*;
import org.apache.batik.swing.svg.*;
import org.apache.batik.swing.gvt.*;
@@ -43,34 +44,6 @@ import java.awt.geom.AffineTransform;
*/
public class SVGElement extends SVGObj {
- /**
- * inner class for making SVG objects.
- */
- public static class Maker extends FObj.Maker {
-
- /**
- * make an SVG object.
- *
- * @param parent the parent formatting object
- * @param propertyList the explicit properties of this object
- *
- * @return the SVG object
- */
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new SVGElement(parent, propertyList);
- }
- }
-
- /**
- * returns the maker for this object.
- *
- * @return the maker for SVG objects
- */
- public static FObj.Maker maker() {
- return new SVGElement.Maker();
- }
-
FontState fs;
/**
@@ -79,8 +52,12 @@ public class SVGElement extends SVGObj {
* @param parent the parent formatting object
* @param propertyList the explicit properties of this object
*/
- public SVGElement(FObj parent, PropertyList propertyList) {
- super(parent, propertyList, "svg");
+ public SVGElement(FObj parent) {
+ super(parent);
+ }
+
+ public void handleAttrs(Attributes attlist) throws FOPException {
+ super.handleAttrs(attlist);
init();
}
diff --git a/src/org/apache/fop/svg/SVGElementMapping.java b/src/org/apache/fop/svg/SVGElementMapping.java
index dc7df3dfb..cea2ea287 100644
--- a/src/org/apache/fop/svg/SVGElementMapping.java
+++ b/src/org/apache/fop/svg/SVGElementMapping.java
@@ -10,8 +10,7 @@ package org.apache.fop.svg;
import java.util.Enumeration;
import java.util.HashMap;
-import org.apache.fop.fo.DirectPropertyListBuilder;
-import org.apache.fop.fo.TreeBuilder;
+import org.apache.fop.fo.FObj;
import org.apache.fop.fo.FOTreeBuilder;
import org.apache.fop.fo.ElementMapping;
import org.apache.fop.apps.Driver;
@@ -23,7 +22,7 @@ public class SVGElementMapping implements ElementMapping {
private static HashMap foObjs = null;
- public synchronized void addToBuilder(TreeBuilder builder) {
+ public synchronized void addToBuilder(FOTreeBuilder builder) {
try {
if (foObjs == null) {
// this sets the parser that will be used
@@ -33,68 +32,26 @@ public class SVGElementMapping implements ElementMapping {
Driver.getParserClassName());
foObjs = new HashMap();
- foObjs.put("svg", SVGElement.maker());
- foObjs.put("rect", SVGObj.maker("rect"));
- foObjs.put("line", SVGObj.maker("line"));
- foObjs.put("text", SVGObj.maker("text"));
-
- foObjs.put("desc", SVGObj.maker("desc"));
- foObjs.put("title", SVGObj.maker("title"));
- foObjs.put("circle", SVGObj.maker("circle"));
- foObjs.put("ellipse", SVGObj.maker("ellipse"));
- foObjs.put("g", SVGObj.maker("g"));
- foObjs.put("polyline", SVGObj.maker("polyline"));
- foObjs.put("polygon", SVGObj.maker("polygon"));
- foObjs.put("defs", SVGObj.maker("defs"));
- foObjs.put("path", SVGObj.maker("path"));
- foObjs.put("use", SVGObj.maker("use"));
- foObjs.put("tspan", SVGObj.maker("tspan"));
- foObjs.put("tref", SVGObj.maker("tref"));
- foObjs.put("image", SVGObj.maker("image"));
- foObjs.put("style", SVGObj.maker("style"));
-
- foObjs.put("textPath", SVGObj.maker("textPath"));
- foObjs.put("clipPath", SVGObj.maker("clipPath"));
- foObjs.put("mask", SVGObj.maker("mask"));
- foObjs.put("linearGradient", SVGObj.maker("linearGradient"));
- foObjs.put("radialGradient", SVGObj.maker("radialGradient"));
- foObjs.put("stop", SVGObj.maker("stop"));
- foObjs.put("a", SVGObj.maker("a"));
- foObjs.put("switch", SVGObj.maker("switch"));
- foObjs.put("symbol", SVGObj.maker("symbol"));
-
- foObjs.put("pattern", SVGObj.maker("pattern"));
-
- foObjs.put("marker", SVGObj.maker("marker"));
- foObjs.put("animate", SVGObj.maker("animate"));
- foObjs.put("altGlyph", SVGObj.maker("altGlyph"));
- foObjs.put("font", SVGObj.maker("font"));
- foObjs.put("glyph", SVGObj.maker("glyph"));
- foObjs.put("missing-glyph", SVGObj.maker("missing-glyph"));
- foObjs.put("hkern", SVGObj.maker("hkern"));
- foObjs.put("vkern", SVGObj.maker("vkern"));
- foObjs.put("set", SVGObj.maker("set"));
- foObjs.put("animateMotion", SVGObj.maker("animateMotion"));
- foObjs.put("animateColor", SVGObj.maker("animateColor"));
- foObjs.put("animateTransform", SVGObj.maker("animateTransform"));
- foObjs.put("cursor", SVGObj.maker("cursor"));
- foObjs.put("filter", SVGObj.maker("filter"));
-
- foObjs.put("feFlood", SVGObj.maker("feFlood"));
- foObjs.put("feGaussianBlur", SVGObj.maker("feGaussianBlur"));
- foObjs.put("feOffset", SVGObj.maker("feOffset"));
- foObjs.put("feMerge", SVGObj.maker("feMerge"));
- foObjs.put("feMergeNode", SVGObj.maker("feMergeNode"));
+ foObjs.put("svg", new SE());
+ foObjs.put("<default>", new SVGMaker());
}
String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;
builder.addMapping(svgNS, foObjs);
-
- builder.addPropertyListBuilder(svgNS,
- new DirectPropertyListBuilder());
} catch (Throwable t) {
// if the classes are not available
}
}
+ class SVGMaker extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new SVGObj(parent);
+ }
+ }
+
+ class SE extends ElementMapping.Maker {
+ public FObj make(FObj parent) {
+ return new SVGElement(parent);
+ }
+ }
}
diff --git a/src/org/apache/fop/svg/SVGObj.java b/src/org/apache/fop/svg/SVGObj.java
index 78a84bdda..f3f72b12a 100644
--- a/src/org/apache/fop/svg/SVGObj.java
+++ b/src/org/apache/fop/svg/SVGObj.java
@@ -16,51 +16,18 @@ import org.w3c.dom.Element;
public class SVGObj extends XMLObj {
/**
- * inner class for making svg objects.
- */
- public static class Maker extends FObj.Maker {
- String tag;
-
- Maker(String str) {
- tag = str;
- }
-
- /**
- * make an svg object.
- *
- * @param parent the parent formatting object
- * @param propertyList the explicit properties of this object
- *
- * @return the svg object
- */
- public FObj make(FObj parent,
- PropertyList propertyList) throws FOPException {
- return new SVGObj(parent, propertyList, tag);
- }
- }
-
- /**
- * returns the maker for this object.
- *
- * @return the maker for an svg object
- */
- public static FObj.Maker maker(String str) {
- return new SVGObj.Maker(str);
- }
-
- /**
* constructs an svg object (called by Maker).
*
* @param parent the parent formatting object
* @param propertyList the explicit properties of this object
*/
- protected SVGObj(FObj parent, PropertyList propertyList, String tag) {
- super(parent, propertyList, tag);
- this.name = "svg:" + tag;
+ public SVGObj(FObj parent) {
+ super(parent);
}
public String getNameSpace() {
return "http://www.w3.org/2000/svg";
}
+
}