aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/org
diff options
context:
space:
mode:
authorAndreas L. Delmelle <adelmelle@apache.org>2008-05-01 21:34:19 +0000
committerAndreas L. Delmelle <adelmelle@apache.org>2008-05-01 21:34:19 +0000
commit1363d649560c5cc6f76a849aff880eb7c802cc45 (patch)
tree61ab157a0d8a8cee12f85b273c134ab0669fc5e0 /src/java/org
parent3d594ae70ccb3f629f61ba2d55915213cc1b34e7 (diff)
downloadxmlgraphics-fop-1363d649560c5cc6f76a849aff880eb7c802cc45.tar.gz
xmlgraphics-fop-1363d649560c5cc6f76a849aff880eb7c802cc45.zip
First steps towards fo:retrieve-table-marker
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@652673 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java/org')
-rw-r--r--src/java/org/apache/fop/events/EventFormatter.xml3
-rw-r--r--src/java/org/apache/fop/fo/Constants.java22
-rw-r--r--src/java/org/apache/fop/fo/FOElementMapping.java6
-rw-r--r--src/java/org/apache/fop/fo/FOPropertyMapping.java19
-rw-r--r--src/java/org/apache/fop/fo/flow/AbstractRetrieveMarker.java168
-rw-r--r--src/java/org/apache/fop/fo/flow/RetrieveMarker.java145
-rw-r--r--src/java/org/apache/fop/fo/flow/RetrieveTableMarker.java111
-rw-r--r--src/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java19
8 files changed, 350 insertions, 143 deletions
diff --git a/src/java/org/apache/fop/events/EventFormatter.xml b/src/java/org/apache/fop/events/EventFormatter.xml
index f5e4609e9..74e120407 100644
--- a/src/java/org/apache/fop/events/EventFormatter.xml
+++ b/src/java/org/apache/fop/events/EventFormatter.xml
@@ -19,7 +19,8 @@
<catalogue xml:lang="en">
<message key="locator">[ (See position {loc})| (See {#gatherContextInfo})| (No context info available)]</message>
<message key="rule.markerDescendantOfFlow">An fo:marker is permitted only as the descendant of an fo:flow.</message>
- <message key="rule.retrieveMarkerDescendatOfStaticContent">An fo:retrieve-marker is permitted only as the descendant of an fo:static-content.</message>
+ <message key="rule.retrieveMarkerDescendantOfStaticContent">An fo:retrieve-marker is permitted only as the descendant of an fo:static-content.</message>
+ <message key="rule.retrieveTableMarkerDescendantOfHeaderOrFooter">An fo:retrieve-table-marker is permitted only as the descendant of an fo:table-header or an fo:table-footer.</message>
<message key="rule.bidiOverrideContent">An fo:bidi-override that is a descendant of an fo:leader or of the fo:inline child of an fo:footnote may not have block-level children, unless it has a nearer ancestor that is an fo:inline-container.</message>
<message key="rule.inlineContent">An fo:inline that is a descendant of an fo:leader or fo:footnote may not have block-level children, unless it has a nearer ancestor that is an fo:inline-container.</message>
<message key="rule.childOfSPM">The element must be a child of fo:simple-page-master.</message>
diff --git a/src/java/org/apache/fop/fo/Constants.java b/src/java/org/apache/fop/fo/Constants.java
index 25c2fe371..2a7f7e0c9 100644
--- a/src/java/org/apache/fop/fo/Constants.java
+++ b/src/java/org/apache/fop/fo/Constants.java
@@ -159,8 +159,10 @@ public interface Constants {
int FO_PAGE_SEQUENCE_WRAPPER = 60;
/** FO element constant - XSL 1.1 */
int FO_PAGE_NUMBER_CITATION_LAST = 61;
+ /** FO element constant - XSL 1.1 */
+ int FO_RETRIEVE_TABLE_MARKER = 62;
/** Number of FO element constants defined */
- int FRM_OBJ_COUNT = 61;
+ int FRM_OBJ_COUNT = 62;
// Masks
/**
@@ -688,8 +690,12 @@ public interface Constants {
int PR_X_WIDOW_CONTENT_LIMIT = 252;
/** Property constant - FOP proprietary: limit for orphan content in lists and tables */
int PR_X_ORPHAN_CONTENT_LIMIT = 253;
+ /** Property constant */
+ int PR_RETRIEVE_POSITION_WITHIN_TABLE = 254;
+ /** Property constant */
+ int PR_RETRIEVE_BOUNDARY_WITHIN_TABLE = 255;
/** Number of property constants defined */
- int PROPERTY_COUNT = 253;
+ int PROPERTY_COUNT = 255;
// compound property constants
@@ -1097,6 +1103,16 @@ public interface Constants {
int EN_REPLACE = 189;
/** Enumeration constant -- for fo:basic-link show-destination */
int EN_NEW = 190;
+ /** Enumeration constant -- for fo:retrieve-table-marker */
+ int EN_FIRST_STARTING = 191;
+ /** Enumeration constant -- for fo:retrieve-table-marker */
+ int EN_LAST_STARTING = 192;
+ /** Enumeration constant -- for fo:retrieve-table-marker */
+ int EN_LAST_ENDING = 193;
+ /** Enumeration constant -- for fo:retrieve-table-marker */
+ int EN_TABLE = 194;
+ /** Enumeration constant -- for fo:retrieve-table-marker */
+ int EN_TABLE_FRAGMENT = 195;
/** Number of enumeration constants defined */
- int ENUM_COUNT = 190;
+ int ENUM_COUNT = 195;
}
diff --git a/src/java/org/apache/fop/fo/FOElementMapping.java b/src/java/org/apache/fop/fo/FOElementMapping.java
index 62721afeb..facb1c304 100644
--- a/src/java/org/apache/fop/fo/FOElementMapping.java
+++ b/src/java/org/apache/fop/fo/FOElementMapping.java
@@ -135,6 +135,7 @@ public class FOElementMapping extends ElementMapping {
foObjs.put("wrapper", new WrapperMaker());
foObjs.put("marker", new MarkerMaker());
foObjs.put("retrieve-marker", new RetrieveMarkerMaker());
+ foObjs.put("retrieve-table-marker", new RetrieveTableMarkerMaker());
}
}
@@ -514,4 +515,9 @@ public class FOElementMapping extends ElementMapping {
}
}
+ static class RetrieveTableMarkerMaker extends ElementMapping.Maker {
+ public FONode make(FONode parent) {
+ return new org.apache.fop.fo.flow.RetrieveTableMarker(parent);
+ }
+ }
}
diff --git a/src/java/org/apache/fop/fo/FOPropertyMapping.java b/src/java/org/apache/fop/fo/FOPropertyMapping.java
index 6d136535b..643fc7b73 100644
--- a/src/java/org/apache/fop/fo/FOPropertyMapping.java
+++ b/src/java/org/apache/fop/fo/FOPropertyMapping.java
@@ -2097,6 +2097,25 @@ public final class FOPropertyMapping implements Constants {
m.addEnum("document", getEnumProperty(EN_DOCUMENT, "DOCUMENT"));
m.setDefault("page-sequence");
addPropertyMaker("retrieve-boundary", m);
+
+ // retrieve-position-within-table
+ m = new EnumProperty.Maker(PR_RETRIEVE_POSITION_WITHIN_TABLE);
+ m.setInherited(false);
+ m.addEnum("first-starting", getEnumProperty(EN_FIRST_STARTING, "FIRST_STARTING"));
+ m.addEnum("first-including-carryover", getEnumProperty(EN_FIC, "FIC"));
+ m.addEnum("last-starting", getEnumProperty(EN_LAST_STARTING, "LAST_STARTING"));
+ m.addEnum("last-ending", getEnumProperty(EN_LAST_ENDING, "LAST_ENDING"));
+ m.setDefault("first-starting");
+ addPropertyMaker("retrieve-position-within-table", m);
+
+ // retrieve-boundary-within-table
+ m = new EnumProperty.Maker(PR_RETRIEVE_BOUNDARY_WITHIN_TABLE);
+ m.setInherited(false);
+ m.addEnum("table", getEnumProperty(EN_TABLE, "TABLE"));
+ m.addEnum("table-fragment", getEnumProperty(EN_TABLE_FRAGMENT, "TABLE_FRAGMENT"));
+ m.addEnum("page", getEnumProperty(EN_DOCUMENT, "PAGE"));
+ m.setDefault("table");
+ addPropertyMaker("retrieve-boundary-within-table", m);
}
private void createNumberToStringProperties() {
diff --git a/src/java/org/apache/fop/fo/flow/AbstractRetrieveMarker.java b/src/java/org/apache/fop/fo/flow/AbstractRetrieveMarker.java
new file mode 100644
index 000000000..30bb3fbf1
--- /dev/null
+++ b/src/java/org/apache/fop/fo/flow/AbstractRetrieveMarker.java
@@ -0,0 +1,168 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id:$ */
+package org.apache.fop.fo.flow;
+
+import org.apache.fop.fo.*;
+import org.apache.fop.fo.flow.table.TableFObj;
+import org.apache.fop.fo.flow.table.Table;
+import org.apache.fop.apps.FOPException;
+
+import java.util.Iterator;
+
+/**
+ * Abstract base class for the <a href="http://www.w3.org/TR/xsl/#fo_retrieve-marker">
+ * <code>fo:retrieve-marker</code></a> and
+ * <a href="http://www.w3.org/TR/xsl/#fo_retrieve-table-marker">
+ * <code>fo:retrieve-table-marker</code></a> formatting objects.
+
+ */
+public abstract class AbstractRetrieveMarker extends FObjMixed {
+
+ private PropertyList propertyList;
+
+ /**
+ * Create a new AbstractRetrieveMarker instance that
+ * is a child of the given {@link FONode}
+ *
+ * @param parent the parent {@link FONode}
+ */
+ public AbstractRetrieveMarker(FONode parent) {
+ super(parent);
+ }
+
+ /**
+ * {@inheritDoc}
+ * Store a reference to the parent {@link PropertyList}
+ * to be used when the retrieve-marker is resolved.
+ */
+ public void bind(PropertyList pList) throws FOPException {
+ super.bind(pList);
+ this.propertyList = pList.getParentPropertyList();
+ }
+
+ private PropertyList createPropertyListFor(FObj fo, PropertyList parent) {
+ return getFOEventHandler().getPropertyListMaker().make(fo, parent);
+ }
+
+ private void cloneSingleNode(FONode child, FONode newParent,
+ Marker marker, PropertyList parentPropertyList)
+ throws FOPException {
+
+ if (child != null) {
+ FONode newChild = child.clone(newParent, true);
+ if (child instanceof FObj) {
+ Marker.MarkerPropertyList pList;
+ PropertyList newPropertyList = createPropertyListFor(
+ (FObj) newChild, parentPropertyList);
+
+ pList = marker.getPropertyListFor(child);
+ newChild.processNode(
+ child.getLocalName(),
+ getLocator(),
+ pList,
+ newPropertyList);
+ if (newChild instanceof TableFObj) {
+ // TODO calling startOfNode (and endOfNode, below) on other fobjs may
+ // have undesirable side-effects. This is really ugly and will need to
+ // be addressed sooner or later
+ ((TableFObj) newChild).startOfNode();
+ }
+ addChildTo(newChild, (FObj) newParent);
+ if (newChild.getNameId() == FO_TABLE) {
+ Table t = (Table) child;
+ cloneSubtree(t.getColumns().listIterator(),
+ newChild, marker, newPropertyList);
+ cloneSingleNode(t.getTableHeader(),
+ newChild, marker, newPropertyList);
+ cloneSingleNode(t.getTableFooter(),
+ newChild, marker, newPropertyList);
+ }
+ cloneSubtree(child.getChildNodes(), newChild,
+ marker, newPropertyList);
+ if (newChild instanceof TableFObj) {
+ // TODO this is ugly
+ ((TableFObj) newChild).endOfNode();
+ }
+ } else if (child instanceof FOText) {
+ FOText ft = (FOText) newChild;
+ ft.bind(parentPropertyList);
+ addChildTo(newChild, (FObj) newParent);
+ }
+ if (newChild instanceof FObjMixed) {
+ handleWhiteSpaceFor((FObjMixed) newChild);
+ }
+ }
+ }
+
+ /**
+ * Clone the FO nodes in the parent iterator,
+ * attach the new nodes to the new parent,
+ * and map the new nodes to the existing property lists.
+ * FOText nodes are also in the new map, with a null value.
+ * Clone the subtree by a recursive call to this method.
+ * @param parentIter the iterator over the children of the old parent
+ * @param newParent the new parent for the cloned nodes
+ * @param marker the marker that contains the old property list mapping
+ * @param parentPropertyList the parent PropertyList
+ * @throws FOPException in case there was an error
+ */
+ private void cloneSubtree(Iterator parentIter, FONode newParent,
+ Marker marker, PropertyList parentPropertyList)
+ throws FOPException {
+ if (parentIter != null) {
+ FONode child;
+ while (parentIter.hasNext()) {
+ child = (FONode) parentIter.next();
+ cloneSingleNode(child, newParent,
+ marker, parentPropertyList);
+ }
+ }
+ }
+
+ private void cloneFromMarker(Marker marker)
+ throws FOPException {
+ // clean up remnants from a possible earlier layout
+ if (firstChild != null) {
+ currentTextNode = null;
+ firstChild = null;
+ }
+ cloneSubtree(marker.getChildNodes(), this,
+ marker, propertyList);
+ handleWhiteSpaceFor(this);
+ }
+
+ /**
+ * Clone the subtree of the given marker
+ *
+ * @param marker the marker that is to be cloned
+ */
+ public void bindMarker(Marker marker) {
+ if (marker.getChildNodes() != null) {
+ try {
+ cloneFromMarker(marker);
+ } catch (FOPException exc) {
+ getFOValidationEventProducer().markerCloningFailed(this,
+ marker.getMarkerClassName(), exc, getLocator());
+ }
+ } else if (log.isDebugEnabled()) {
+ log.debug("Empty marker retrieved...");
+ }
+ }
+
+}
diff --git a/src/java/org/apache/fop/fo/flow/RetrieveMarker.java b/src/java/org/apache/fop/fo/flow/RetrieveMarker.java
index 0283dc7da..b75e14664 100644
--- a/src/java/org/apache/fop/fo/flow/RetrieveMarker.java
+++ b/src/java/org/apache/fop/fo/flow/RetrieveMarker.java
@@ -23,29 +23,25 @@ import java.util.Iterator;
import org.apache.fop.apps.FOPException;
import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FOText;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.fo.FObjMixed;
import org.apache.fop.fo.PropertyList;
import org.apache.fop.fo.ValidationException;
-import org.apache.fop.fo.flow.table.Table;
-import org.apache.fop.fo.flow.table.TableFObj;
import org.xml.sax.Locator;
+import org.xml.sax.Attributes;
/**
- * Class modelling the fo:retrieve-marker object.
+ * Class modelling the <a href="http://www.w3.org/TR/xsl/#fo_retrieve-marker">
+ * <code>fo:retrieve-marker</code></a> formatting object.
* This will create a layout manager that will retrieve
* a marker based on the information.
*/
-public class RetrieveMarker extends FObjMixed {
+public class RetrieveMarker extends AbstractRetrieveMarker {
+
// The value of properties relevant for fo:retrieve-marker.
private String retrieveClassName;
private int retrievePosition;
private int retrieveBoundary;
// End of property values
- private PropertyList propertyList;
-
/**
* Create a new RetrieveMarker instance that is a
* child of the given {@link FONode}.
@@ -56,12 +52,26 @@ public class RetrieveMarker extends FObjMixed {
super(parent);
}
- /** {@inheritDoc} */
- public void bind(PropertyList pList) throws FOPException {
+ /**
+ * {@inheritDoc}
+ * <i>NOTE: An <code>fo:retrieve-marker</code> is only permitted as a descendant
+ * of an <code>fo:static-content</code>.</i>
+ */
+ public void processNode(String elementName,
+ Locator locator,
+ Attributes attlist,
+ PropertyList pList)
+ throws FOPException {
if (findAncestor(FO_STATIC_CONTENT) < 0) {
invalidChildError(locator, getParent().getName(), FO_URI, getName(),
- "rule.retrieveMarkerDescendatOfStaticContent");
+ "rule.retrieveMarkerDescendantOfStaticContent");
+ } else {
+ super.processNode(elementName, locator, attlist, pList);
}
+ }
+
+ /** {@inheritDoc} */
+ public void bind(PropertyList pList) throws FOPException {
retrieveClassName = pList.get(PR_RETRIEVE_CLASS_NAME).getString();
retrievePosition = pList.get(PR_RETRIEVE_POSITION).getEnum();
@@ -70,8 +80,6 @@ public class RetrieveMarker extends FObjMixed {
if (retrieveClassName == null || retrieveClassName.equals("")) {
missingPropertyError("retrieve-class-name");
}
-
- propertyList = pList.getParentPropertyList();
super.bind(pList);
}
@@ -107,115 +115,6 @@ public class RetrieveMarker extends FObjMixed {
return retrieveBoundary;
}
- private PropertyList createPropertyListFor(FObj fo, PropertyList parent) {
- return getFOEventHandler().getPropertyListMaker().make(fo, parent);
- }
-
- private void cloneSingleNode(FONode child, FONode newParent,
- Marker marker, PropertyList parentPropertyList)
- throws FOPException {
-
- if (child != null) {
- FONode newChild = child.clone(newParent, true);
- if (child instanceof FObj) {
- Marker.MarkerPropertyList pList;
- PropertyList newPropertyList = createPropertyListFor(
- (FObj) newChild, parentPropertyList);
-
- pList = marker.getPropertyListFor(child);
- newChild.processNode(
- child.getLocalName(),
- getLocator(),
- pList,
- newPropertyList);
- if (newChild instanceof TableFObj) {
- // TODO calling startOfNode (and endOfNode, below) on other fobjs may
- // have undesirable side-effects. This is really ugly and will need to
- // be addressed sooner or later
- ((TableFObj) newChild).startOfNode();
- }
- addChildTo(newChild, (FObj) newParent);
- if (newChild.getNameId() == FO_TABLE) {
- Table t = (Table) child;
- cloneSubtree(t.getColumns().listIterator(),
- newChild, marker, newPropertyList);
- cloneSingleNode(t.getTableHeader(),
- newChild, marker, newPropertyList);
- cloneSingleNode(t.getTableFooter(),
- newChild, marker, newPropertyList);
- }
- cloneSubtree(child.getChildNodes(), newChild,
- marker, newPropertyList);
- if (newChild instanceof TableFObj) {
- // TODO this is ugly
- ((TableFObj) newChild).endOfNode();
- }
- } else if (child instanceof FOText) {
- FOText ft = (FOText) newChild;
- ft.bind(parentPropertyList);
- addChildTo(newChild, (FObj) newParent);
- }
- if (newChild instanceof FObjMixed) {
- handleWhiteSpaceFor((FObjMixed) newChild);
- }
- }
- }
-
- /**
- * Clone the FO nodes in the parent iterator,
- * attach the new nodes to the new parent,
- * and map the new nodes to the existing property lists.
- * FOText nodes are also in the new map, with a null value.
- * Clone the subtree by a recursive call to this method.
- * @param parentIter the iterator over the children of the old parent
- * @param newParent the new parent for the cloned nodes
- * @param marker the marker that contains the old property list mapping
- * @param descPLists the map of the new nodes to property lists
- */
- private void cloneSubtree(Iterator parentIter, FONode newParent,
- Marker marker, PropertyList parentPropertyList)
- throws FOPException {
- if (parentIter != null) {
- FONode child;
- while (parentIter.hasNext()) {
- child = (FONode) parentIter.next();
- cloneSingleNode(child, newParent,
- marker, parentPropertyList);
- }
- }
- }
-
- private void cloneFromMarker(Marker marker)
- throws FOPException {
- // clean up remnants from a possible earlier layout
- if (firstChild != null) {
- currentTextNode = null;
- firstChild = null;
- }
- cloneSubtree(marker.getChildNodes(), this,
- marker, propertyList);
- handleWhiteSpaceFor(this);
- }
-
- /**
- * Clone the subtree of the given marker
- *
- * @param marker the marker that is to be cloned
- */
- public void bindMarker(Marker marker) {
- if (marker.getChildNodes() != null) {
- try {
- cloneFromMarker(marker);
- } catch (FOPException exc) {
- getFOValidationEventProducer().markerCloningFailed(this,
- marker.getMarkerClassName(), exc, getLocator());
- return;
- }
- } else if (log.isDebugEnabled()) {
- log.debug("Empty marker retrieved...");
- }
- }
-
/** {@inheritDoc} */
public String getLocalName() {
return "retrieve-marker";
diff --git a/src/java/org/apache/fop/fo/flow/RetrieveTableMarker.java b/src/java/org/apache/fop/fo/flow/RetrieveTableMarker.java
new file mode 100644
index 000000000..4a7b8af0d
--- /dev/null
+++ b/src/java/org/apache/fop/fo/flow/RetrieveTableMarker.java
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id:$ */
+package org.apache.fop.fo.flow;
+
+import org.apache.fop.fo.FONode;
+import org.apache.fop.fo.PropertyList;
+import org.apache.fop.apps.FOPException;
+import org.xml.sax.Locator;
+import org.xml.sax.Attributes;
+
+/**
+ * Class modelling the <a href="http://www.w3.org/TR/xsl/#fo_retrieve-table-marker">
+ * <code>fo:retrieve-table-marker</code></a> formatting object.
+ */
+public class RetrieveTableMarker extends AbstractRetrieveMarker {
+
+ // The value of properties relevant for fo:retrieve-marker.
+ private String retrieveClassName;
+ private int retrievePositionWithinTable;
+ private int retrieveBoundaryWithinTable;
+ // end property values
+
+ /**
+ * Create a new RetrieveTableMarker instance that is
+ * a child of the given {@link FONode}.
+ *
+ * @param parent the parent {@link FONode}
+ */
+ public RetrieveTableMarker(FONode parent) {
+ super(parent);
+ }
+
+ /** {@inheritDoc} */
+ public void processNode(String elementName, Locator locator, Attributes attlist, PropertyList pList) throws FOPException {
+ if (findAncestor(FO_TABLE_HEADER) < 0
+ && findAncestor(FO_TABLE_FOOTER) < 0) {
+ invalidChildError(locator, getParent().getName(), FO_URI, getName(),
+ "rule.retrieveTableMarkerDescendantOfHeaderOrFooter");
+ } else {
+ super.processNode(elementName, locator, attlist, pList);
+ }
+ }
+
+ /** {@inheritDoc} */
+ public void bind(PropertyList pList) throws FOPException {
+ this.retrieveClassName = pList.get(PR_RETRIEVE_CLASS_NAME).getString();
+ this.retrievePositionWithinTable
+ = pList.get(PR_RETRIEVE_POSITION_WITHIN_TABLE).getEnum();
+ this.retrieveBoundaryWithinTable
+ = pList.get(PR_RETRIEVE_BOUNDARY_WITHIN_TABLE).getEnum();
+ }
+
+ /** {@inheritDoc} */
+ public String getRetrieveClassName() {
+ return this.retrieveClassName;
+ }
+
+ /**
+ * Return the value for the <code>retrieve-position-within-table</code>
+ * property
+ * @return the value for retrieve-position-within-table; one of
+ * {@link org.apache.fop.fo.Constants#EN_FIRST_STARTING},
+ * {@link org.apache.fop.fo.Constants#EN_FIC},
+ * {@link org.apache.fop.fo.Constants#EN_LAST_STARTING},
+ * {@link org.apache.fop.fo.Constants#EN_LAST_ENDING}.
+ */
+ public int getRetrievePositionWithinTable() {
+ return this.retrievePositionWithinTable;
+ }
+
+ /**
+ * Return the value for the <code>retrieve-boundary-within-table</code>
+ * property
+ * @return the value for retrieve-boundary-within-table; one of
+ * {@link org.apache.fop.fo.Constants#EN_TABLE},
+ * {@link org.apache.fop.fo.Constants#EN_TABLE_FRAGMENT},
+ * {@link org.apache.fop.fo.Constants#EN_PAGE}.
+ */
+ public int getRetrieveBoundaryWithinTable() {
+ return this.retrieveBoundaryWithinTable;
+ }
+
+ /** {@inheritDoc} */
+ public String getLocalName() {
+ return "retrieve-table-marker";
+ }
+
+ /**
+ * {@inheritDoc}
+ * @return {@link org.apache.fop.fo.Constants#FO_RETRIEVE_TABLE_MARKER}
+ */
+ public int getNameId() {
+ return FO_RETRIEVE_TABLE_MARKER;
+ }
+}
diff --git a/src/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java b/src/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java
index ad7d48caf..087963013 100644
--- a/src/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java
+++ b/src/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java
@@ -51,6 +51,7 @@ import org.apache.fop.fo.flow.PageNumber;
import org.apache.fop.fo.flow.PageNumberCitation;
import org.apache.fop.fo.flow.PageNumberCitationLast;
import org.apache.fop.fo.flow.RetrieveMarker;
+import org.apache.fop.fo.flow.RetrieveTableMarker;
import org.apache.fop.fo.flow.Wrapper;
import org.apache.fop.fo.flow.table.Table;
import org.apache.fop.fo.flow.table.TableBody;
@@ -117,6 +118,7 @@ public class LayoutManagerMapping implements LayoutManagerMaker {
makers.put(Block.class, new BlockLayoutManagerMaker());
makers.put(Leader.class, new LeaderLayoutManagerMaker());
makers.put(RetrieveMarker.class, new RetrieveMarkerLayoutManagerMaker());
+ makers.put(RetrieveTableMarker.class, new Maker());
makers.put(Character.class, new CharacterLayoutManagerMaker());
makers.put(ExternalGraphic.class,
new ExternalGraphicLayoutManagerMaker());
@@ -207,9 +209,7 @@ public class LayoutManagerMapping implements LayoutManagerMaker {
return new StaticContentLayoutManager(pslm, sc, reg);
}
- /*
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
public StaticContentLayoutManager makeStaticContentLayoutManager(
PageSequenceLayoutManager pslm, StaticContent sc, org.apache.fop.area.Block block) {
return new StaticContentLayoutManager(pslm, sc, block);
@@ -218,7 +218,6 @@ public class LayoutManagerMapping implements LayoutManagerMaker {
public static class Maker {
public void make(FONode node, List lms) {
// no layout manager
- return;
}
}
@@ -231,18 +230,6 @@ public class LayoutManagerMapping implements LayoutManagerMaker {
}
}
- /*
- public static class FObjMixedLayoutManagerMaker extends Maker {
- public void make(FONode node, List lms) {
- if (node.getChildNodes() != null) {
- InlineStackingLayoutManager lm;
- lm = new InlineStackingLayoutManager((FObjMixed) node);
- lms.add(lm);
- }
- }
- }
- */
-
public static class BidiOverrideLayoutManagerMaker extends Maker {
// public static class BidiOverrideLayoutManagerMaker extends FObjMixedLayoutManagerMaker {
public void make(BidiOverride node, List lms) {