]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
1.) Moved from FOPException to SAXParseException for addProperties()
authorGlen Mazza <gmazza@apache.org>
Sun, 1 Aug 2004 04:20:50 +0000 (04:20 +0000)
committerGlen Mazza <gmazza@apache.org>
Sun, 1 Aug 2004 04:20:50 +0000 (04:20 +0000)
2.) FONode: locator object added, its three components (file, line, col) removed
3.) FONode: new attributeError() method created for attribute problems in input FO.
4.) Removed some setup() methods in the FO's, placed them in addProperties() instead.

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197847 13f79535-47bb-0310-9956-ffa450edef68

38 files changed:
src/java/org/apache/fop/fo/FONode.java
src/java/org/apache/fop/fo/FOTreeBuilder.java
src/java/org/apache/fop/fo/FObj.java
src/java/org/apache/fop/fo/PropertyList.java
src/java/org/apache/fop/fo/XMLElement.java
src/java/org/apache/fop/fo/XMLObj.java
src/java/org/apache/fop/fo/extensions/Outline.java
src/java/org/apache/fop/fo/extensions/svg/SVGElement.java
src/java/org/apache/fop/fo/flow/BasicLink.java
src/java/org/apache/fop/fo/flow/Block.java
src/java/org/apache/fop/fo/flow/BlockContainer.java
src/java/org/apache/fop/fo/flow/ExternalGraphic.java
src/java/org/apache/fop/fo/flow/Footnote.java
src/java/org/apache/fop/fo/flow/FootnoteBody.java
src/java/org/apache/fop/fo/flow/Inline.java
src/java/org/apache/fop/fo/flow/InlineContainer.java
src/java/org/apache/fop/fo/flow/ListBlock.java
src/java/org/apache/fop/fo/flow/ListItem.java
src/java/org/apache/fop/fo/flow/ListItemLabel.java
src/java/org/apache/fop/fo/flow/Marker.java
src/java/org/apache/fop/fo/flow/PageNumber.java
src/java/org/apache/fop/fo/flow/RetrieveMarker.java
src/java/org/apache/fop/fo/flow/Table.java
src/java/org/apache/fop/fo/flow/TableBody.java
src/java/org/apache/fop/fo/flow/TableCell.java
src/java/org/apache/fop/fo/flow/TableColumn.java
src/java/org/apache/fop/fo/flow/TableRow.java
src/java/org/apache/fop/fo/pagination/ConditionalPageMasterReference.java
src/java/org/apache/fop/fo/pagination/Flow.java
src/java/org/apache/fop/fo/pagination/LayoutMasterSet.java
src/java/org/apache/fop/fo/pagination/PageMasterReference.java
src/java/org/apache/fop/fo/pagination/PageSequence.java
src/java/org/apache/fop/fo/pagination/PageSequenceMaster.java
src/java/org/apache/fop/fo/pagination/Region.java
src/java/org/apache/fop/fo/pagination/RepeatablePageMasterAlternatives.java
src/java/org/apache/fop/fo/pagination/RepeatablePageMasterReference.java
src/java/org/apache/fop/fo/pagination/SimplePageMaster.java
src/java/org/apache/fop/fo/pagination/StaticContent.java

index 54ffcd6f234866e0437251e1128c5317a3892c69..acea124dc27ffa4493e94e23bfc92ba71c7ab1a4 100644 (file)
@@ -29,7 +29,6 @@ import org.xml.sax.Locator;
 import org.xml.sax.SAXParseException;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.util.CharUtilities;
 import org.apache.fop.fo.extensions.ExtensionElementMapping;
@@ -47,14 +46,12 @@ public abstract class FONode {
     /** Parent FO node */
     protected FONode parent;
 
-    /** Marks input file containing this object **/
-    public String systemId;
-
-    /** Marks line number of this object in the input file **/
-    public int line;
-
-    /** Marks column number of this object in the input file **/
-    public int column;
+    /**  Marks location of this object from the input FO
+     *   Call locator.getSystemId(), getLineNumber(),
+     *   getColumnNumber() for file, line, column
+     *   information
+     */
+    public Locator locator;
 
     /** Logger for fo-tree related messages **/
     private static Log log = LogFactory.getLog(FONode.class);
@@ -73,9 +70,7 @@ public abstract class FONode {
      */
     public void setLocation(Locator locator) {
         if (locator != null) {
-            line = locator.getLineNumber();
-            column = locator.getColumnNumber();
-            systemId = locator.getSystemId();
+            this.locator = locator;
         }
     }
 
@@ -111,9 +106,9 @@ public abstract class FONode {
      * @param elementName element name (e.g., "fo:block")
      * @param locator Locator object (ignored by default)
      * @param attlist Collection of attributes passed to us from the parser.
-     * @throws FOPException for errors or inconsistencies in the attributes
+     * @throws SAXParseException for errors or inconsistencies in the attributes
     */
-    public void processNode(String elementName, Locator locator, Attributes attlist) throws FOPException {
+    public void processNode(String elementName, Locator locator, Attributes attlist) throws SAXParseException {
         System.out.println("name = " + elementName);
     }
 
@@ -234,6 +229,18 @@ public abstract class FONode {
                 "Local Name: \"" + localName + "\")";
     }
 
+    /**
+     * Helper function to standardize "too many" error exceptions
+     * (e.g., two fo:declarations within fo:root)
+     * @param loc org.xml.sax.Locator object of the error (*not* parent node)
+     * @param offendingNode incoming node that would cause a duplication.
+     */
+    protected void attributeError(String problem) 
+        throws SAXParseException {
+        throw new SAXParseException (errorText(locator) + getName() + ", " + 
+            problem, locator);
+    }
+
     /**
      * Helper function to standardize "too many" error exceptions
      * (e.g., two fo:declarations within fo:root)
@@ -280,9 +287,9 @@ public abstract class FONode {
      */
     protected void missingChildElementError(String contentModel)
         throws SAXParseException {
-        throw new SAXParseException(errorText(line, column) + getName() + 
+        throw new SAXParseException(errorText(locator) + getName() + 
             " is missing child elements. \nRequired Content Model: " 
-            + contentModel, null, null, line, column);
+            + contentModel, locator);
     }
 
     /**
@@ -298,16 +305,5 @@ public abstract class FONode {
             return "Error(" + loc.getLineNumber() + "/" + loc.getColumnNumber() + "): ";
         }
     }
-    
-    /**
-     * Helper function to return "Error (line#/column#)" string for
-     * above exception messages
-     * @param lineNumber - line number of node with error
-     * @param columnNumber - column number of node with error
-     * @return String opening error text
-     */
-    protected static String errorText(int lineNumber, int columnNumber) {
-        return "Error(" + lineNumber + "/" + columnNumber + "): ";
-    }
 }
 
index 9fbdbab49904511937a426aa3d70c7e3f6ad3d84..97cbe637ef460a61371054d329b487f6110c43e6 100644 (file)
@@ -268,8 +268,6 @@ public class FOTreeBuilder extends DefaultHandler {
             foNode.processNode(localName, locator, attlist);
         } catch (IllegalArgumentException e) {
             throw new SAXException(e);
-        } catch (FOPException e) {
-            throw new SAXException(e);
         }
 
         if (rootFObj == null) {
index 702a78683da1d71af22271e663443ff6f8414003..a9272333b3d579d7f9f8a195b1d3fc6f1d9d7d5a 100644 (file)
@@ -25,13 +25,14 @@ import java.util.ListIterator;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.fo.flow.Marker;
 import org.apache.fop.fo.properties.Property;
 import org.apache.fop.fo.properties.PropertyMaker;
 import org.apache.fop.layoutmgr.AddLMVisitor;
+
 import org.xml.sax.Attributes;
 import org.xml.sax.Locator;
+import org.xml.sax.SAXParseException;
 
 /**
  * Base class for representation of formatting objects and their processing.
@@ -98,7 +99,7 @@ public class FObj extends FONode implements Constants {
      * @see org.apache.fop.fo.FONode#processNode
      */
     public void processNode(String elementName, Locator locator, 
-                            Attributes attlist) throws FOPException {
+                            Attributes attlist) throws SAXParseException {
         setLocation(locator);
         addProperties(attlist);
     }
@@ -107,7 +108,7 @@ public class FObj extends FONode implements Constants {
      * Set properties for this FO based on node attributes
      * @param attlist Collection of attributes passed to us from the parser.
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         FObj parentFO = findNearestAncestorFObj();
         PropertyList parentPL = null;
 
index 39ce8a7f1ce28ceae3704d2711120a39815269ee..e15374156b0d91aa8e05be642ddaf3c7ff7129c7 100644 (file)
@@ -422,8 +422,7 @@ public class PropertyList extends HashMap {
      * @param attributes Collection of attributes passed to us from the parser.
      * @throws FOPException If an error occurs while building the PropertyList
      */
-    public void addAttributesToList(Attributes attributes) 
-        throws FOPException {
+    public void addAttributesToList(Attributes attributes) {
             /*
              * If font-size is set on this FO, must set it first, since
              * other attributes specified in terms of "ems" depend on it.
index 360b5f49c51a8ee51b26ccdaf5517787f2c5199f..accd4f45ae520bdbce3a21e8f778b5e03f100e79 100644 (file)
@@ -21,9 +21,9 @@ package org.apache.fop.fo;
 // XML
 import org.xml.sax.Attributes;
 import org.xml.sax.Locator;
+import org.xml.sax.SAXParseException;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.layoutmgr.AddLMVisitor;
 
 /**
@@ -46,7 +46,7 @@ public class XMLElement extends XMLObj {
      * @see org.apache.fop.fo.FONode#processNode
      */
     public void processNode(String elementName, Locator locator, 
-                            Attributes attlist) throws FOPException {
+                            Attributes attlist) throws SAXParseException {
         super.processNode(elementName, locator, attlist);
         init();
     }
index f74607245331a1dd3b7aa1b75f0d1d2af82b64ce..f48d2077fcd43fd035275aa9f40ac332f5684528 100644 (file)
@@ -26,10 +26,10 @@ import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.xml.sax.Attributes;
 import org.xml.sax.Locator;
+import org.xml.sax.SAXParseException;
 import javax.xml.parsers.DocumentBuilderFactory;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.layoutmgr.AddLMVisitor;
 
 /**
@@ -61,10 +61,11 @@ public abstract class XMLObj extends FONode {
     /**
      * @see org.apache.fop.fo.FONode#processNode
      */
-    public void processNode(String elementName, Locator locator, Attributes attlist) throws FOPException {
-        setLocation(locator);
-        name = elementName;
-        attr = attlist;
+    public void processNode(String elementName, Locator locator, 
+        Attributes attlist) throws SAXParseException {
+            setLocation(locator);
+            name = elementName;
+            attr = attlist;
     }
 
     /**
index 3d5e5f6b56a825a27a28b6ad8a08008370f0f2b7..d3e293306daac36b4a40d465d6078034bee824e6 100644 (file)
@@ -20,11 +20,11 @@ package org.apache.fop.fo.extensions;
 
 import org.apache.fop.fo.FONode;
 import org.apache.fop.layoutmgr.AddLMVisitor;
-import org.apache.fop.apps.FOPException;
 
 import java.util.ArrayList;
 
 import org.xml.sax.Attributes;
+import org.xml.sax.SAXParseException;
 
 
 /**
@@ -53,7 +53,7 @@ public class Outline extends ExtensionObj {
      *
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         internalDestination =
             attlist.getValue("internal-destination");
         externalDestination =
index 883c90a27fabf78efdc7bffe18c44a67c2f9e869..6c0d4718ed18b07f98885f2b6acd673fd8995b04 100644 (file)
@@ -21,7 +21,6 @@ package org.apache.fop.fo.extensions.svg;
 // FOP
 import org.apache.fop.fo.FONode;
 import org.apache.fop.layoutmgr.AddLMVisitor;
-import org.apache.fop.apps.FOPException;
 
 import org.apache.batik.dom.svg.SVGOMDocument;
 import org.apache.batik.dom.svg.SVGOMElement;
@@ -31,6 +30,7 @@ import org.w3c.dom.Element;
 import org.w3c.dom.svg.SVGDocument;
 import org.xml.sax.Attributes;
 import org.xml.sax.Locator;
+import org.xml.sax.SAXParseException;
 import org.apache.batik.bridge.UnitProcessor;
 import org.apache.batik.util.SVGConstants;
 
@@ -62,7 +62,7 @@ public class SVGElement extends SVGObj {
      * @see org.apache.fop.fo.FONode#processNode
      */
     public void processNode(String elementName, Locator locator, 
-                            Attributes attlist) throws FOPException {
+                            Attributes attlist) throws SAXParseException {
         super.processNode(elementName, locator, attlist);
         init();
     }
index 4a4821bd7fd3628b6474a8f9a18e4c7954c59d25..89fbc7e0b92519db57476f00bf91c93f809c39a9 100644 (file)
@@ -24,7 +24,6 @@ import org.xml.sax.Locator;
 import org.xml.sax.SAXParseException;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.fo.FOElementMapping;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.layoutmgr.AddLMVisitor;
@@ -57,8 +56,25 @@ public class BasicLink extends Inline {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
+
+        setupID();
+        String ext =  propertyList.get(PR_EXTERNAL_DESTINATION).getString();
+        String internal = propertyList.get(PR_INTERNAL_DESTINATION).getString();
+
+        // per spec, internal takes precedence if both specified
+        if (internal.length() > 0) {
+            link = internal;
+        } else if (ext.length() > 0) {
+            link = ext;
+            external = true;
+        } else {
+            // slightly stronger than spec "should be specified"
+            attributeError("Missing attribute:  Either external-destination or " +
+                "internal-destination must be specified.");
+        }
+        
         getFOInputHandler().startLink(this);
     }
 
@@ -105,44 +121,6 @@ public class BasicLink extends Inline {
         return "fo:basic-link";
     }
 
-    /**
-     * @todo check if needed; not being called currently
-     */
-    private void setup() {
-        String destination;
-        int linkType;
-
-        // Common Accessibility Properties
-        CommonAccessibility mAccProps = propMgr.getAccessibilityProps();
-
-        // Common Aural Properties
-        CommonAural mAurProps = propMgr.getAuralProps();
-
-        // Common Border, Padding, and Background Properties
-        CommonBorderAndPadding bap = propMgr.getBorderAndPadding();
-        CommonBackground bProps = propMgr.getBackgroundProps();
-
-        // Common Margin Properties-Inline
-        CommonMarginInline mProps = propMgr.getMarginInlineProps();
-
-        // Common Relative Position Properties
-        CommonRelativePosition mRelProps = propMgr.getRelativePositionProps();
-
-        String ext =  propertyList.get(PR_EXTERNAL_DESTINATION).getString();
-        setupID();
-
-        String internal = propertyList.get(PR_INTERNAL_DESTINATION).getString();
-
-        if (ext.length() > 0) {
-            link = ext;
-            external = true;
-        } else if (internal.length() > 0) {
-            link = internal;
-        } else {
-            getLogger().error("basic-link requires an internal or external destination");
-        }
-    }
-
     /**
      * @return true (BasicLink can contain Markers)
     */
@@ -156,7 +134,6 @@ public class BasicLink extends Inline {
      * @param aLMV the AddLMVisitor object that can access this object.
      */
     public void acceptVisitor(AddLMVisitor aLMV) {
-        setup();
         aLMV.serveBasicLink(this);
     }
 }
index 06ff3b5c6894612c0438c8fce14b632c336e1393..69131a5be66747ad920d81194c4e414b95360a22 100644 (file)
@@ -24,7 +24,6 @@ import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.datatypes.ColorType;
 import org.apache.fop.fo.CharIterator;
 import org.apache.fop.fo.FONode;
@@ -100,7 +99,7 @@ public class Block extends FObjMixed {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         this.span = this.propertyList.get(PR_SPAN).getEnum();
         this.wsTreatment =
@@ -112,89 +111,33 @@ public class Block extends FObjMixed {
           this.propertyList.get(PR_LINEFEED_TREATMENT).getEnum();
 
         setupID();
+        this.align = this.propertyList.get(PR_TEXT_ALIGN).getEnum();
+        this.alignLast =
+          this.propertyList.get(PR_TEXT_ALIGN_LAST).getEnum();
+        this.breakAfter = this.propertyList.get(PR_BREAK_AFTER).getEnum();
+        this.lineHeight = this.propertyList.get(
+                            PR_LINE_HEIGHT).getLength().getValue();
+        this.startIndent = this.propertyList.get(
+                             PR_START_INDENT).getLength().getValue();
+        this.endIndent = this.propertyList.get(
+                           PR_END_INDENT).getLength().getValue();
+        this.spaceBefore = this.propertyList.get(
+                             PR_SPACE_BEFORE | CP_OPTIMUM).getLength().getValue();
+        this.spaceAfter = this.propertyList.get(
+                            PR_SPACE_AFTER | CP_OPTIMUM).getLength().getValue();
+        this.textIndent = this.propertyList.get(
+                            PR_TEXT_INDENT).getLength().getValue();
+        this.keepWithNext =
+          this.propertyList.get(PR_KEEP_WITH_NEXT).getEnum();
+
+        this.blockWidows =
+          this.propertyList.get(PR_WIDOWS).getNumber().intValue();
+        this.blockOrphans =
+          this.propertyList.get(PR_ORPHANS).getNumber().intValue();
 
         getFOInputHandler().startBlock(this);
     }
 
-    private void setup() {
-
-            // Common Accessibility Properties
-            CommonAccessibility mAccProps = propMgr.getAccessibilityProps();
-
-            // Common Aural Properties
-            CommonAural mAurProps = propMgr.getAuralProps();
-
-            // Common Border, Padding, and Background Properties
-            CommonBorderAndPadding bap = propMgr.getBorderAndPadding();
-            CommonBackground bProps = propMgr.getBackgroundProps();
-
-            // Common Font Properties
-            //this.fontState = propMgr.getFontState(area.getFontInfo());
-
-            // Common Hyphenation Properties
-            CommonHyphenation mHyphProps = propMgr.getHyphenationProps();
-
-            // Common Margin Properties-Block
-            CommonMarginBlock mProps = propMgr.getMarginProps();
-
-            // Common Relative Position Properties
-            CommonRelativePosition mRelProps =
-              propMgr.getRelativePositionProps();
-
-            // this.propertyList.get("break-after");
-            // this.propertyList.get("break-before");
-            // this.propertyList.get("color");
-            // this.propertyList.get("text-depth");
-            // this.propertyList.get("text-altitude");
-            // this.propertyList.get("hyphenation-keep");
-            // this.propertyList.get("hyphenation-ladder-count");
-            setupID();
-            // this.propertyList.get("keep-together");
-            // this.propertyList.get("keep-with-next");
-            // this.propertyList.get("keep-with-previous");
-            // this.propertyList.get("last-line-end-indent");
-            // this.propertyList.get("linefeed-treatment");
-            // this.propertyList.get("line-height");
-            // this.propertyList.get("line-height-shift-adjustment");
-            // this.propertyList.get("line-stacking-strategy");
-            // this.propertyList.get("orphans");
-            // this.propertyList.get("white-space-treatment");
-            // this.propertyList.get("span");
-            // this.propertyList.get("text-align");
-            // this.propertyList.get("text-align-last");
-            // this.propertyList.get("text-indent");
-            // this.propertyList.get("visibility");
-            // this.propertyList.get("white-space-collapse");
-            // this.propertyList.get("widows");
-            // this.propertyList.get("wrap-option");
-            // this.propertyList.get("z-index");
-
-            this.align = this.propertyList.get(PR_TEXT_ALIGN).getEnum();
-            this.alignLast =
-              this.propertyList.get(PR_TEXT_ALIGN_LAST).getEnum();
-            this.breakAfter = this.propertyList.get(PR_BREAK_AFTER).getEnum();
-            this.lineHeight = this.propertyList.get(
-                                PR_LINE_HEIGHT).getLength().getValue();
-            this.startIndent = this.propertyList.get(
-                                 PR_START_INDENT).getLength().getValue();
-            this.endIndent = this.propertyList.get(
-                               PR_END_INDENT).getLength().getValue();
-            this.spaceBefore = this.propertyList.get(
-                                 PR_SPACE_BEFORE | CP_OPTIMUM).getLength().getValue();
-            this.spaceAfter = this.propertyList.get(
-                                PR_SPACE_AFTER | CP_OPTIMUM).getLength().getValue();
-            this.textIndent = this.propertyList.get(
-                                PR_TEXT_INDENT).getLength().getValue();
-            this.keepWithNext =
-              this.propertyList.get(PR_KEEP_WITH_NEXT).getEnum();
-
-            this.blockWidows =
-              this.propertyList.get(PR_WIDOWS).getNumber().intValue();
-            this.blockOrphans =
-              this.propertyList.get(PR_ORPHANS).getNumber().intValue();
-
-    }
-
     /**
      * @return true (Block can contain Markers)
      */
index 51bef903606c105aa7db75ff0efae0f1477d1b4c..29adbbe7e819b95e172ea793f3c8646224d2d238 100644 (file)
@@ -19,7 +19,6 @@
 package org.apache.fop.fo.flow;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.datatypes.ColorType;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
@@ -30,6 +29,7 @@ import org.apache.fop.fo.properties.CommonBorderAndPadding;
 import org.apache.fop.fo.properties.CommonMarginBlock;
 
 import org.xml.sax.Attributes;
+import org.xml.sax.SAXParseException;
 
 /**
  * Class modelling the fo:block-container object. See Sec. 6.5.3 of the XSL-FO
@@ -59,7 +59,7 @@ public class BlockContainer extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         this.span = this.propertyList.get(PR_SPAN).getEnum();
         setupID();
index d1c66374d3399c2f05012a0fbed8ccd225bcfa1d..3c12b7899649b9a942cb51b61d8929ab1c9b1219 100644 (file)
@@ -26,7 +26,6 @@ import org.xml.sax.Attributes;
 import org.xml.sax.Locator;
 import org.xml.sax.SAXParseException;
 
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.datatypes.Length;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.layoutmgr.AddLMVisitor;
@@ -75,7 +74,7 @@ public class ExternalGraphic extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         getFOInputHandler().image(this);
     }
index df36b77246659b79f80fa1b1680bfb9873f9cb48..f234927e9e37274590cbe4b6bec4e2cd25dbdb20 100644 (file)
@@ -24,7 +24,6 @@ import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.layoutmgr.AddLMVisitor;
 import org.apache.fop.fo.FObj;
@@ -48,7 +47,7 @@ public class Footnote extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         getFOInputHandler().startFootnote(this);
     }
index 413a6bda4f4f6bac0636b947d4444ad3ac794ea7..1674ecc31d1a1d7acc71a95135cf07e9a3004e80 100644 (file)
@@ -24,7 +24,6 @@ import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
 import org.apache.fop.layoutmgr.AddLMVisitor;
@@ -52,7 +51,7 @@ public class FootnoteBody extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         getFOInputHandler().startFootnoteBody(this);
     }
index b60c20141b63ddd4954b208029ece9c2ed066789..adb33d0d154b7a87f29e3cfc5a0b674fc493e039 100644 (file)
@@ -59,12 +59,12 @@ public class Inline extends FObjMixed {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
 
         if (parent.getName().equals("fo:flow")) {
-            throw new FOPException("inline formatting objects cannot"
-                                   + " be directly under flow");
+            throw new SAXParseException("inline formatting objects cannot"
+                                   + " be directly under flow", locator);
         }
 
         // Common Accessibility Properties
index a581353518d39b50b26a4894f788af93ef535c4c..050507da4bfbebea013bf30ac3ec9ca3768849a0 100644 (file)
@@ -20,12 +20,12 @@ package org.apache.fop.fo.flow;
 
 // XML
 import org.xml.sax.Attributes;
+import org.xml.sax.SAXParseException;
 
 // FOP
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
 import org.apache.fop.layoutmgr.AddLMVisitor;
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.fo.properties.CommonBackground;
 import org.apache.fop.fo.properties.CommonBorderAndPadding;
 import org.apache.fop.fo.properties.CommonMarginInline;
@@ -47,7 +47,7 @@ public class InlineContainer extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         // Common Border, Padding, and Background Properties
         CommonBorderAndPadding bap = propMgr.getBorderAndPadding();
index 6f76e4ebc36788adbe70e56b0f18ac6f534e357a..d36b3c72ae373ca8ed1fa31cad9541eb39b66212 100644 (file)
@@ -23,7 +23,6 @@ import org.xml.sax.Attributes;
 import org.xml.sax.SAXParseException;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.datatypes.ColorType;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
@@ -63,56 +62,28 @@ public class ListBlock extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
+        setupID();
+
+        this.align = this.propertyList.get(PR_TEXT_ALIGN).getEnum();
+        this.alignLast = this.propertyList.get(PR_TEXT_ALIGN_LAST).getEnum();
+        this.lineHeight =
+            this.propertyList.get(PR_LINE_HEIGHT).getLength().getValue();
+        this.startIndent =
+            this.propertyList.get(PR_START_INDENT).getLength().getValue();
+        this.endIndent =
+            this.propertyList.get(PR_END_INDENT).getLength().getValue();
+        this.spaceBefore =
+            this.propertyList.get(PR_SPACE_BEFORE | CP_OPTIMUM).getLength().getValue();
+        this.spaceAfter =
+            this.propertyList.get(PR_SPACE_AFTER | CP_OPTIMUM).getLength().getValue();
+        this.spaceBetweenListRows = 0;    // not used at present
+        this.backgroundColor =
+            this.propertyList.get(PR_BACKGROUND_COLOR).getColorType();
         getFOInputHandler().startList(this);
     }
 
-    private void setup() throws FOPException {
-
-            // Common Accessibility Properties
-            CommonAccessibility mAccProps = propMgr.getAccessibilityProps();
-
-            // Common Aural Properties
-            CommonAural mAurProps = propMgr.getAuralProps();
-
-            // Common Border, Padding, and Background Properties
-            CommonBorderAndPadding bap = propMgr.getBorderAndPadding();
-            CommonBackground bProps = propMgr.getBackgroundProps();
-
-            // Common Margin Properties-Block
-            CommonMarginBlock mProps = propMgr.getMarginProps();
-
-            // Common Relative Position Properties
-            CommonRelativePosition mRelProps = propMgr.getRelativePositionProps();
-
-            // this.propertyList.get("break-after");
-            // this.propertyList.get("break-before");
-            setupID();
-            // this.propertyList.get("keep-together");
-            // this.propertyList.get("keep-with-next");
-            // this.propertyList.get("keep-with-previous");
-            // this.propertyList.get("provisional-distance-between-starts");
-            // this.propertyList.get("provisional-label-separation");
-
-            this.align = this.propertyList.get(PR_TEXT_ALIGN).getEnum();
-            this.alignLast = this.propertyList.get(PR_TEXT_ALIGN_LAST).getEnum();
-            this.lineHeight =
-                this.propertyList.get(PR_LINE_HEIGHT).getLength().getValue();
-            this.startIndent =
-                this.propertyList.get(PR_START_INDENT).getLength().getValue();
-            this.endIndent =
-                this.propertyList.get(PR_END_INDENT).getLength().getValue();
-            this.spaceBefore =
-                this.propertyList.get(PR_SPACE_BEFORE | CP_OPTIMUM).getLength().getValue();
-            this.spaceAfter =
-                this.propertyList.get(PR_SPACE_AFTER | CP_OPTIMUM).getLength().getValue();
-            this.spaceBetweenListRows = 0;    // not used at present
-            this.backgroundColor =
-                this.propertyList.get(PR_BACKGROUND_COLOR).getColorType();
-
-    }
-
     /**
      * @return false (ListBlock does not generate inline areas)
      */
index 75a2cd37f2283460088885bb24b64192f9307269..25d75391858cfa783a338d8b2e905f883f02d229 100644 (file)
@@ -63,7 +63,7 @@ public class ListItem extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         getFOInputHandler().startListItem(this);
     }
index 24146d539d1f3f66bd3829bae7f5bdf88d660e55..81b631282786606bb5fe94a48cb5517287230040 100644 (file)
@@ -23,7 +23,6 @@ import org.xml.sax.Attributes;
 import org.xml.sax.SAXParseException;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
 import org.apache.fop.layoutmgr.AddLMVisitor;
@@ -45,7 +44,7 @@ public class ListItemLabel extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         getFOInputHandler().startListLabel();
     }
index bfcbf7250391d6d06eb0426eca99e0685bb9f6af..a090d78fc3d84103c609b39e922f288ca9299d29 100644 (file)
@@ -20,9 +20,9 @@ package org.apache.fop.fo.flow;
 
 // XML
 import org.xml.sax.Attributes;
+import org.xml.sax.SAXParseException;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObjMixed;
 import org.apache.fop.layoutmgr.AddLMVisitor;
@@ -48,7 +48,7 @@ public class Marker extends FObjMixed {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         this.markerClassName =
             this.propertyList.get(PR_MARKER_CLASS_NAME).getString();
index 7df1350a5d80a0fbe083e68410ebaa32092d28ba..ba8e4327b1551de76a746109f28dfa930c2e4b4f 100644 (file)
@@ -24,7 +24,6 @@ import org.xml.sax.Locator;
 import org.xml.sax.SAXParseException;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.datatypes.ColorType;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.layoutmgr.AddLMVisitor;
@@ -69,7 +68,7 @@ public class PageNumber extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         setup();
         getFOInputHandler().startPageNumber(this);
index e023f96cdd1eab9308aa931adf0a106eb3e4fe63..3ae22e38572a08c9f1d30692c27e996e92dea08e 100644 (file)
@@ -24,7 +24,6 @@ import org.xml.sax.Locator;
 import org.xml.sax.SAXParseException;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObjMixed;
 import org.apache.fop.layoutmgr.AddLMVisitor;
@@ -61,7 +60,7 @@ public class RetrieveMarker extends FObjMixed {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         this.retrieveClassName =
             this.propertyList.get(PR_RETRIEVE_CLASS_NAME).getString();
index 5babb90bb22fc66101bea16c1dfe14f033a5baa1..55b0a7abf623bcfce6ea1ae1d08fdf79871bc58d 100644 (file)
@@ -26,7 +26,6 @@ import org.xml.sax.Attributes;
 import org.xml.sax.SAXParseException;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.datatypes.ColorType;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
@@ -79,7 +78,7 @@ public class Table extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         setupID();
         getFOInputHandler().startTable(this);
index 8f6197d17c096da954ab091fee52ea9659ec74f3..4aa034b11a9fcd45df4cc2dc586a6180990cc81d 100644 (file)
@@ -24,7 +24,6 @@ import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.datatypes.ColorType;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
@@ -56,13 +55,13 @@ public class TableBody extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         setupID();
         getFOInputHandler().startBody(this);
     }
 
-    private void setup() throws FOPException {
+    private void setup() {
         // Common Accessibility Properties
         CommonAccessibility mAccProps = propMgr.getAccessibilityProps();
 
index dd06524b6a4c782277bf784a2fd541dddcbeadb5..412fdc02aec25682bda2fb35c34199309f95f6fc 100644 (file)
@@ -24,7 +24,6 @@ import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.datatypes.ColorType;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
@@ -122,7 +121,7 @@ public class TableCell extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         doSetup();    // init some basic property values
         getFOInputHandler().startCell(this);
index 936cdddb74aa06fbcda7fd8b8bd3f795aad0a985..172b15475a291ce6cc65a37f176a73e7aa49e274 100644 (file)
@@ -24,7 +24,6 @@ import org.xml.sax.Locator;
 import org.xml.sax.SAXParseException;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.datatypes.ColorType;
 import org.apache.fop.datatypes.Length;
 import org.apache.fop.fo.FONode;
@@ -68,7 +67,7 @@ public class TableColumn extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         initialize();    // init some basic property values
         getFOInputHandler().startColumn(this);
index 71c89590d4b3c0394407efde42eecc87dc4805c4..54db3cd6a220644e33bf0b576934ef298fa77ab9 100644 (file)
@@ -23,7 +23,6 @@ import org.xml.sax.Attributes;
 import org.xml.sax.SAXParseException;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.datatypes.ColorType;
 import org.apache.fop.datatypes.KeepValue;
 import org.apache.fop.fo.FONode;
@@ -66,7 +65,7 @@ public class TableRow extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         setupID();
         getFOInputHandler().startRow(this);
index 02c9e4fca60b5b506e69bf5dc29e3ab0e83e5ae1..3d3c42576ee11b795011c32cd581e188a57a55f9 100644 (file)
@@ -27,7 +27,6 @@ import org.xml.sax.SAXParseException;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
 import org.apache.fop.layoutmgr.AddLMVisitor;
-import org.apache.fop.apps.FOPException;
 
 /**
  * A conditional-page-master-reference formatting object.
@@ -66,7 +65,7 @@ public class ConditionalPageMasterReference extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         if (getProperty(PR_MASTER_REFERENCE) != null) {
             setMasterName(getProperty(PR_MASTER_REFERENCE).getString());
@@ -156,7 +155,7 @@ public class ConditionalPageMasterReference extends FObj {
      * @param parent parent node
      * @throws FOPException If the parent is invalid
      */
-    protected void validateParent(FONode parent) throws FOPException {
+    protected void validateParent(FONode parent) throws SAXParseException {
         if (parent.getName().equals("fo:repeatable-page-master-alternatives")) {
             this.repeatablePageMasterAlternatives =
                 (RepeatablePageMasterAlternatives)parent;
@@ -168,9 +167,9 @@ public class ConditionalPageMasterReference extends FObj {
                 this.repeatablePageMasterAlternatives.addConditionalPageMasterReference(this);
             }
         } else {
-            throw new FOPException("fo:conditional-page-master-reference must be child "
+            throw new SAXParseException("fo:conditional-page-master-reference must be child "
                                    + "of fo:repeatable-page-master-alternatives, not "
-                                   + parent.getName());
+                                   + parent.getName(), locator);
         }
     }
 
index d333d13f268ab479658c6cea4da66426b7f745bd..cbfbecb664a2a09da0c7092d67cd367c7b1ebc61 100644 (file)
@@ -31,7 +31,6 @@ import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
 import org.apache.fop.fo.FOElementMapping;
 import org.apache.fop.layoutmgr.AddLMVisitor;
-import org.apache.fop.apps.FOPException;
 
 /**
  * Class modelling the fo:flow object. See Sec. 6.4.18 in the XSL-FO Standard.
@@ -100,13 +99,13 @@ public class Flow extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         if (parent.getName().equals("fo:page-sequence")) {
             this.pageSequence = (PageSequence) parent;
         } else {
-            throw new FOPException("flow must be child of "
-                                 + "page-sequence, not " + parent.getName());
+            throw new SAXParseException("flow must be child of "
+                                 + "page-sequence, not " + parent.getName(), locator);
         }
         // according to communication from Paul Grosso (XSL-List,
         // 001228, Number 406), confusion in spec section 6.4.5 about
@@ -134,10 +133,10 @@ public class Flow extends FObj {
      * @param name the name of the flow to set
      * @throws FOPException for an empty name
      */
-    protected void setFlowName(String name) throws FOPException {
+    protected void setFlowName(String name) throws SAXParseException {
         if (name == null || name.equals("")) {
-            throw new FOPException("A 'flow-name' is required for "
-                         + getName());
+            throw new SAXParseException("A 'flow-name' is required for "
+                         + getName(), locator);
         } else {
             flowName = name;
         }
index 94303e4660f2f2799e8c79598fbafa7c3dd7fa37..356ecc71d7e3b97abca07c6d8052e3f010d92178 100644 (file)
@@ -83,15 +83,15 @@ public class LayoutMasterSet extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
 
         if (parent.getName().equals("fo:root")) {
             Root root = (Root)parent;
             root.setLayoutMasterSet(this);
         } else {
-            throw new FOPException("fo:layout-master-set must be child of fo:root, not "
-                                   + parent.getName());
+            throw new SAXParseException("fo:layout-master-set must be child of fo:root, not "
+                                   + parent.getName(), locator);
         }
 
         this.simplePageMasters = new java.util.HashMap();
@@ -170,9 +170,9 @@ public class LayoutMasterSet extends FObj {
     /**
      * Section 7.25.7: check to see that if a region-name is a
      * duplicate, that it maps to the same fo region-class.
-     * @throws FOPException if there's a name duplication
+     * @throws SAXParseException if there's a name duplication
      */
-    public void checkRegionNames() throws FOPException {
+    public void checkRegionNames() throws SAXParseException {
         // (user-entered) region-name to default region map.
         Map allRegions = new java.util.HashMap();
         for (Iterator spm = simplePageMasters.values().iterator();
@@ -187,13 +187,13 @@ public class LayoutMasterSet extends FObj {
                     String defaultRegionName =
                         (String) allRegions.get(region.getRegionName());
                     if (!defaultRegionName.equals(region.getDefaultRegionName())) {
-                        throw new FOPException("Region-name ("
+                        throw new SAXParseException("Region-name ("
                                                + region.getRegionName()
                                                + ") is being mapped to multiple "
                                                + "region-classes ("
                                                + defaultRegionName + " and "
                                                + region.getDefaultRegionName()
-                                               + ")");
+                                               + ")", locator);
                     }
                 }
                 allRegions.put(region.getRegionName(),
index 2b6426c6d5ad9601048fa6cc7a2d28bd73fe5c1a..3e7c971a303c565274a204cda4bea6ae495bfc85 100644 (file)
@@ -20,11 +20,11 @@ package org.apache.fop.fo.pagination;
 
 // SAX
 import org.xml.sax.Attributes;
+import org.xml.sax.SAXParseException;
 
 // FOP
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.layoutmgr.AddLMVisitor;
 
 /**
@@ -46,7 +46,7 @@ public abstract class PageMasterReference extends FObj
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         if (getProperty(PR_MASTER_REFERENCE) != null) {
             this.masterName = getProperty(PR_MASTER_REFERENCE).getString();
@@ -69,7 +69,7 @@ public abstract class PageMasterReference extends FObj
      * @param parent parent node
      * @throws FOPException If the parent is invalid.
      */
-    protected void validateParent(FONode parent) throws FOPException {
+    protected void validateParent(FONode parent) throws SAXParseException {
         if (parent.getName().equals("fo:page-sequence-master")) {
             PageSequenceMaster pageSequenceMaster = (PageSequenceMaster)parent;
 
@@ -80,9 +80,9 @@ public abstract class PageMasterReference extends FObj
                 pageSequenceMaster.addSubsequenceSpecifier(this);
             }
         } else {
-            throw new FOPException(getName() + " must be"
+            throw new SAXParseException(getName() + " must be"
                                    + "child of fo:page-sequence-master, not "
-                                   + parent.getName());
+                                   + parent.getName(), locator);
         }
     }
 
index 3e37adcf5a01d8f02f2f04f9a4eb81ae6e50660e..9f1a7ee3d2f9f8b64bdf6a8f9b1828b9ecb1b970 100644 (file)
@@ -27,6 +27,7 @@ import org.xml.sax.Locator;
 import org.xml.sax.SAXParseException;
 
 // FOP
+import org.apache.fop.apps.FOPException;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
 import org.apache.fop.fo.FOElementMapping;
@@ -230,7 +231,7 @@ public class PageSequence extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
 
         this.root = (Root) parent;
@@ -258,8 +259,8 @@ public class PageSequence extends FObj {
                 int pageStart = new Integer(ipnValue).intValue();
                 this.explicitFirstNumber = (pageStart > 0) ? pageStart : 1;
             } catch (NumberFormatException nfe) {
-                throw new FOPException("\"" + ipnValue
-                                       + "\" is not a valid value for initial-page-number");
+                throw new SAXParseException("\"" + ipnValue
+                                       + "\" is not a valid value for initial-page-number", locator);
             }
         }
 
@@ -270,9 +271,9 @@ public class PageSequence extends FObj {
             this.pageSequenceMaster =
                     this.layoutMasterSet.getPageSequenceMaster(masterName);
             if (this.pageSequenceMaster == null) {
-                throw new FOPException("master-reference '" + masterName
+                throw new SAXParseException("master-reference '" + masterName
                                        + "' for fo:page-sequence matches no"
-                                       + " simple-page-master or page-sequence-master");
+                                       + " simple-page-master or page-sequence-master", locator);
             }
         }
 
index ecb542ef5413f51fa57510e02515c4676de1e9c1..cc746780d51261bff825e946fe57a7ff10210b4d 100644 (file)
@@ -92,7 +92,7 @@ public class PageSequenceMaster extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         subSequenceSpecifiers = new java.util.ArrayList();
         if (parent.getName().equals("fo:layout-master-set")) {
@@ -102,12 +102,17 @@ public class PageSequenceMaster extends FObj {
                 getLogger().warn("page-sequence-master does not have "
                                        + "a master-name and so is being ignored");
             } else {
-                this.layoutMasterSet.addPageSequenceMaster(masterName, this);
+                try {
+                    this.layoutMasterSet.addPageSequenceMaster(masterName, this);
+                } catch (Exception e) {
+                    throw new SAXParseException("Error with adding Page Sequence Master: " 
+                        + e.getMessage(), locator);
+                }
             }
         } else {
-            throw new FOPException("fo:page-sequence-master must be child "
+            throw new SAXParseException("fo:page-sequence-master must be child "
                                    + "of fo:layout-master-set, not "
-                                   + parent.getName());
+                                   + parent.getName(), locator);
         }
     }
 
index 056a651252932e7d23bfffa96217caf333302d35..b04c51a2960f9eac0dd52d796ab453e742b403ea 100644 (file)
@@ -26,7 +26,6 @@ import org.xml.sax.Locator;
 import org.xml.sax.SAXParseException;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.datatypes.FODimension;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.layoutmgr.AddLMVisitor;
@@ -78,7 +77,7 @@ public abstract class Region extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
 
         // regions may have name, or default
@@ -91,18 +90,18 @@ public abstract class Region extends FObj {
             // check that name is OK. Not very pretty.
             if (isReserved(getRegionName())
                     && !getRegionName().equals(getDefaultRegionName())) {
-                throw new FOPException("region-name '" + regionName
+                throw new SAXParseException("region-name '" + regionName
                         + "' for " + this.getName()
-                        + " not permitted.");
+                        + " not permitted.", locator);
             }
         }
 
         if (parent instanceof SimplePageMaster) {
             layoutMaster = (SimplePageMaster)parent;
         } else {
-            throw new FOPException(this.getName() + " must be child "
+            throw new SAXParseException(this.getName() + " must be child "
                     + "of simple-page-master, not "
-                    + parent.getName());
+                    + parent.getName(), locator);
         }
         this.wm = this.propertyList.get(PR_WRITING_MODE).getEnum();
 
index f43f3f5ae47387356fb183528c2a30ae2f962c8b..9dde9b90fbb4d7bac571168438317c706d23d5f6 100644 (file)
@@ -31,7 +31,6 @@ import org.apache.fop.fo.FOElementMapping;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
 import org.apache.fop.layoutmgr.AddLMVisitor;
-import org.apache.fop.apps.FOPException;
 
 /**
  * A repeatable-page-master-alternatives formatting object.
@@ -84,7 +83,7 @@ public class RepeatablePageMasterAlternatives extends FObj
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         conditionalPageMasterRefs = new ArrayList();
 
@@ -92,9 +91,9 @@ public class RepeatablePageMasterAlternatives extends FObj
             PageSequenceMaster pageSequenceMaster = (PageSequenceMaster)parent;
             pageSequenceMaster.addSubsequenceSpecifier(this);
         } else {
-            throw new FOPException("fo:repeatable-page-master-alternatives "
+            throw new SAXParseException("fo:repeatable-page-master-alternatives "
                                    + "must be child of fo:page-sequence-master, not "
-                                   + parent.getName());
+                                   + parent.getName(), locator);
         }
 
         String mr = getProperty(PR_MAXIMUM_REPEATS).getString();
@@ -109,8 +108,8 @@ public class RepeatablePageMasterAlternatives extends FObj
                     this.maximumRepeats = 0;
                 }
             } catch (NumberFormatException nfe) {
-                throw new FOPException("Invalid number for "
-                                       + "'maximum-repeats' property");
+                throw new SAXParseException("Invalid number for "
+                                       + "'maximum-repeats' property", locator);
             }
         }
     }
index 04f15fdc6f6bd216b9955a3c72c8ec2544c69536..8c0267b84f4fa567bb223ec400d398c2322e77e5 100644 (file)
@@ -26,7 +26,6 @@ import org.xml.sax.SAXParseException;
 // FOP
 import org.apache.fop.fo.FONode;
 import org.apache.fop.layoutmgr.AddLMVisitor;
-import org.apache.fop.apps.FOPException;
 
 /**
  * A repeatable-page-master-reference formatting object.
@@ -62,7 +61,7 @@ public class RepeatablePageMasterReference extends PageMasterReference
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
         String mr = getProperty(PR_MAXIMUM_REPEATS).getString();
         if (mr.equals("no-limit")) {
@@ -76,8 +75,8 @@ public class RepeatablePageMasterReference extends PageMasterReference
                     this.maximumRepeats = 0;
                 }
             } catch (NumberFormatException nfe) {
-                throw new FOPException("Invalid number for "
-                                       + "'maximum-repeats' property");
+                throw new SAXParseException("Invalid number for "
+                                       + "'maximum-repeats' property", locator);
             }
         }
     }
index 722ee8cb61e5502f7d5111f447d224d362cfc9b0..76b422ad673530a07a628adc59bc6600e065cd8b 100644 (file)
@@ -25,12 +25,12 @@ import java.util.Map;
 
 // XML
 import org.xml.sax.Attributes;
+import org.xml.sax.SAXParseException;
 
 // FOP
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
 import org.apache.fop.layoutmgr.AddLMVisitor;
-import org.apache.fop.apps.FOPException;
 
 /**
  * A simple-page-master formatting object.
@@ -55,7 +55,7 @@ public class SimplePageMaster extends FObj {
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
-    protected void addProperties(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
 
         if (parent.getName().equals("fo:layout-master-set")) {
@@ -65,12 +65,17 @@ public class SimplePageMaster extends FObj {
                 getLogger().warn("simple-page-master does not have "
                         + "a master-name and so is being ignored");
             } else {
-                layoutMasterSet.addSimplePageMaster(this);
+                try {
+                    layoutMasterSet.addSimplePageMaster(this);
+                } catch (Exception e) {
+                    throw new SAXParseException("Error with adding Page Sequence Master: " 
+                        + e.getMessage(), locator);
+                }
             }
         } else {
-            throw new FOPException("fo:simple-page-master must be child "
+            throw new SAXParseException("fo:simple-page-master must be child "
                     + "of fo:layout-master-set, not "
-                    + parent.getName());
+                    + parent.getName(), locator);
         }
         //Well, there are only 5 regions so we can save a bit of memory here
         regions = new HashMap(5);
index d0b5ef71c4bbb8803a5fd8d18117bbd4cf0cc302..e1fcbd7345609c0307b0bbc8dd7abb94fb09655c 100644 (file)
@@ -24,7 +24,6 @@ import org.xml.sax.Locator;
 import org.xml.sax.SAXParseException;
 
 // FOP
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.fo.FOElementMapping;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.layoutmgr.AddLMVisitor;
@@ -73,10 +72,10 @@ public class StaticContent extends Flow {
      * @param name the flow-name to set
      * @throws FOPException for a missing flow name
      */
-    protected void setFlowName(String name) throws FOPException {
+    protected void setFlowName(String name) throws SAXParseException {
         if (name == null || name.equals("")) {
-            throw new FOPException("A 'flow-name' is required for "
-                                   + getName() + ".");
+            throw new SAXParseException("A 'flow-name' is required for "
+                                   + getName() + ".", locator);
         } else {
             super.setFlowName(name);
         }