[prev in list] [next in list] [prev in thread] [next in thread]
List: fop-cvs
Subject: cvs commit: xml-fop/src/java/org/apache/fop/fo FObj.java
From: gmazza () apache ! org
Date: 2004-07-25 16:11:05
Message-ID: 20040725161105.92977.qmail () minotaur ! apache ! org
[Download RAW message or body]
gmazza 2004/07/25 09:11:05
Modified: src/java/org/apache/fop/fo FObj.java
Log:
Created a "isOutOfLineFODescendant" member variable to FObj, needed for
input FOValidation. As defined in Sect. 6.2 of the spec, certain child FO's
are not valid if the parent FO is a descendant of an out of line FO (sect. 6.10)
Revision Changes Path
1.53 +34 -6 xml-fop/src/java/org/apache/fop/fo/FObj.java
Index: FObj.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -r1.52 -r1.53
--- FObj.java 25 Jul 2004 01:14:25 -0000 1.52
+++ FObj.java 25 Jul 2004 16:11:04 -0000 1.53
@@ -56,6 +56,13 @@
/** Dynamic layout dimension. Used to resolve relative lengths. */
protected Map layoutDimension = null;
+ /** During input FO validation, certain FO's are not valid as
+ child nodes if this FO is a descendant of an Out Of Line
+ Formatting Object as defined in specification.
+ See Section 6.2 of 1.0/1.2 spec for more information.
+ */
+ protected boolean isOutOfLineFODescendant = false;
+
/**
* Create a new formatting object.
* All formatting object classes extend this class.
@@ -64,7 +71,18 @@
*/
public FObj(FONode parent) {
super(parent);
-
+
+ // determine if isOutOfLineFODescendant should be set
+ if (parent != null && parent instanceof FObj) {
+ if (((FObj)parent).getIsOutOfLineFODescendant() == true) {
+ isOutOfLineFODescendant = true;
+ } else if (parent.getName().equals("fo:float")
+ || parent.getName().equals("fo:footnote")
+ || parent.getName().equals("fo:footnote-body")) {
+ isOutOfLineFODescendant = true;
+ }
+ }
+
if (propertyListTable == null) {
propertyListTable = new PropertyMaker[Constants.PROPERTY_COUNT+1];
PropertyMaker[] list = FOPropertyMapping.getGenericMappings();
@@ -76,6 +94,16 @@
}
/**
+ * Used to indicate if this FO is the descendant of an out-of-line
+ * formatting object (From Sect. 6.10, fo:float, fo:footnote,
+ * fo:footnote-body). Important for validating child nodes.
+ * @return true if descendant, false otherwise
+ */
+ public boolean getIsOutOfLineFODescendant() {
+ return isOutOfLineFODescendant;
+ }
+
+ /**
* @see org.apache.fop.fo.FONode#processNode
*/
public void processNode(String elementName, Locator locator,
@@ -446,7 +474,7 @@
* @param lName local name (i.e., no prefix) of incoming node
* @return true if a member, false if not
*/
- protected static boolean isBlockItem(String nsURI, String lName) {
+ protected boolean isBlockItem(String nsURI, String lName) {
return (nsURI == FOElementMapping.URI &&
(lName.equals("block")
|| lName.equals("table")
@@ -465,7 +493,7 @@
* @param lName local name (i.e., no prefix) of incoming node
* @return true if a member, false if not
*/
- protected static boolean isInlineItem(String nsURI, String lName) {
+ protected boolean isInlineItem(String nsURI, String lName) {
return (nsURI == FOElementMapping.URI &&
(lName.equals("bidi-override")
|| lName.equals("character")
@@ -478,7 +506,7 @@
|| lName.equals("page-number-citation")
|| lName.equals("basic-link")
|| lName.equals("multi-toggle")
- || lName.equals("footnote") // temp only -- not always correct (see spec)
+ || (!isOutOfLineFODescendant && lName.equals("footnote"))
|| isNeutralItem(nsURI, lName)));
}
@@ -490,12 +518,12 @@
* @param lName local name (i.e., no prefix) of incoming node
* @return true if a member, false if not
*/
- protected static boolean isNeutralItem(String nsURI, String lName) {
+ protected boolean isNeutralItem(String nsURI, String lName) {
return (nsURI == FOElementMapping.URI &&
(lName.equals("multi-switch")
|| lName.equals("multi-properties")
|| lName.equals("wrapper")
- || lName.equals("float") // temp only -- not always correct (see spec)
+ || (!isOutOfLineFODescendant && lName.equals("float"))
|| lName.equals("retrieve-marker")));
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic