Author: jeremias
Date: Mon Mar 17 08:59:02 2008
New Revision: 637952

URL: http://svn.apache.org/viewvc?rev=637952&view=rev
Log:
Events on FOTreeBuilder.

Modified:
    
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/events/EventFormatter.xml
    
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOTreeBuilder.java
    
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOValidationEventProducer.java

Modified: 
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/events/EventFormatter.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/events/EventFormatter.xml?rev=637952&r1=637951&r2=637952&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/events/EventFormatter.xml
 (original)
+++ 
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/events/EventFormatter.xml
 Mon Mar 17 08:59:02 2008
@@ -46,6 +46,8 @@
   <message 
key="org.apache.fop.fo.FOValidationEventProducer.illegalRegionName">The 
region-name "{regionName}" for {elementName} is not 
permitted.{{locator}}</message>
   <message 
key="org.apache.fop.fo.FOValidationEventProducer.nonZeroBorderPaddingOnRegion">Border
 and padding for {elementName} "{regionName}" must be '0' (See 6.4.13 in XSL 
1.0).{{locator}}</message>
   <message 
key="org.apache.fop.fo.FOValidationEventProducer.columnCountErrorOnRegionBodyOverflowScroll">If
 overflow property is set to "scroll" on {elementName}, a column-count other 
than "1" may not be specified.{{locator}}</message>
+  <message 
key="org.apache.fop.fo.FOValidationEventProducer.invalidFORoot">First element 
must be the fo:root formatting object. Found {elementName} instead. Please make 
sure you're producing a valid XSL-FO document.</message>
+  <message 
key="org.apache.fop.fo.FOValidationEventProducer.emptyDocument">Document is 
empty (something might be wrong with your XSLT stylesheet).</message>
   <message 
key="org.apache.fop.fo.flow.table.TableEventProducer.nonAutoBPDOnTable">Only a 
value of "auto" for block-progression-dimension has a well-specified behavior 
on fo:table. Falling back to "auto".{{locator}}</message>
   <message 
key="org.apache.fop.fo.flow.table.TableEventProducer.noTablePaddingWithCollapsingBorderModel">In
 collapsing border model a table does not have padding (see 
http://www.w3.org/TR/REC-CSS2/tables.html#collapsing-borders), but a non-zero 
value for padding was found. The padding will be ignored.{{locator}}</message>
   <message 
key="org.apache.fop.fo.flow.table.TableEventProducer.noMixRowsAndCells">Either 
fo:table-rows or fo:table-cells may be children of an {elementName} but not 
both.{{locator}}</message>
@@ -56,9 +58,9 @@
   <message 
key="org.apache.fop.fo.flow.table.TableEventProducer.warnImplicitColumns">table-layout=\"fixed\"
 and column-width unspecified =&gt; falling back to 
proportional-column-width(1){{locator}}</message>
   <message 
key="org.apache.fop.fo.flow.table.TableEventProducer.paddingNotApplicable">padding-*
 properties are not applicable to {elementName}, but a non-zero value for 
padding was found.{{locator}}</message>
   <message 
key="org.apache.fop.fo.flow.table.TableEventProducer.cellOverlap">{elementName} 
overlaps in column {column}.<!-- no locator here, exception will be wrapped 
--></message>
+  <message 
key="org.apache.fop.fo.flow.table.TableEventProducer.breakIgnoredDueToRowSpanning">{breakBefore,if,break-before,break-after}
 ignored on {elementName} because of row spanning in progress (See XSL 1.1, 
{breakBefore,if,7.20.2,7.20.1}){{locator}}</message>
   <message 
key="org.apache.fop.events.ResourceEventProducer.imageNotFound">Image not 
found. URI: {uri}{{locator}}</message>
   <message key="org.apache.fop.events.ResourceEventProducer.imageError">Image 
not available. URI: {uri}. Reason: {e}{{locator}}</message>
   <message key="org.apache.fop.events.ResourceEventProducer.imageIOError">I/O 
error while loading image.  URI: {uri}. Reason: {ioe}{{locator}}</message>
   <message 
key="org.apache.fop.events.ResourceEventProducer.ifoNoIntrinsiceSize">The 
intrinsic dimensions of an instream-foreign-object could not be 
determined.{{locator}}</message>
-  <message 
key="org.apache.fop.fo.flow.table.TableEventProducer.breakIgnoredDueToRowSpanning">{breakBefore,if,break-before,break-after}
 ignored on {elementName} because of row spanning in progress (See XSL 1.1, 
{breakBefore,if,7.20.2,7.20.1}){{locator}}</message>
 </catalogue>

Modified: 
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOTreeBuilder.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOTreeBuilder.java?rev=637952&r1=637951&r2=637952&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOTreeBuilder.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOTreeBuilder.java
 Mon Mar 17 08:59:02 2008
@@ -158,8 +158,10 @@
     public void endDocument() throws SAXException {
         this.delegate.endDocument();
         if (this.rootFObj == null && empty) {
-            throw new ValidationException(
-                    "Document is empty (something might be wrong with your 
XSLT stylesheet).");
+            FOValidationEventProducer eventProducer
+                = FOValidationEventProducer.Factory.create(
+                    foEventHandler.getUserAgent().getEventBroadcaster());
+            eventProducer.emptyDocument(this);
         }
         rootFObj = null;
         if (log.isDebugEnabled()) {
@@ -274,12 +276,12 @@
             if (rootFObj == null) {
                 empty = false;
                 if (!namespaceURI.equals(FOElementMapping.URI) 
-                    || !localName.equals("root")) {
-                    throw new ValidationException(
-                        "Error: First element must be the fo:root formatting 
object. "
-                        + "Found " + FONode.getNodeString(namespaceURI, 
localName) 
-                        + " instead."
-                        + " Please make sure you're producing a valid XSL-FO 
document.");
+                        || !localName.equals("root")) {
+                    FOValidationEventProducer eventProducer
+                        = FOValidationEventProducer.Factory.create(
+                                
foEventHandler.getUserAgent().getEventBroadcaster());
+                    eventProducer.invalidFORoot(this, 
FONode.getNodeString(namespaceURI, localName),
+                            getEffectiveLocator());
                 }
             } else { // check that incoming node is valid for currentFObj
                 if (currentFObj.getNamespaceURI().equals(FOElementMapping.URI)
@@ -288,8 +290,7 @@
                 }
             }
             
-            ElementMapping.Maker fobjMaker = 
-                findFOMaker(namespaceURI, localName);
+            ElementMapping.Maker fobjMaker = findFOMaker(namespaceURI, 
localName);
 
             try {
                 foNode = fobjMaker.make(currentFObj);
@@ -358,8 +359,7 @@
             if (currentPropertyList != null
                     && currentPropertyList.getFObj() == currentFObj
                     && !foEventHandler.inMarker()) {
-                currentPropertyList = 
-                    currentPropertyList.getParentPropertyList();
+                currentPropertyList = 
currentPropertyList.getParentPropertyList();
             }
             
             if (currentFObj.getNameId() == Constants.FO_MARKER) {

Modified: 
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOValidationEventProducer.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOValidationEventProducer.java?rev=637952&r1=637951&r2=637952&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOValidationEventProducer.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOValidationEventProducer.java
 Mon Mar 17 08:59:02 2008
@@ -315,4 +315,23 @@
     void columnCountErrorOnRegionBodyOverflowScroll(Object source, String 
elementName,
             Locator loc) throws ValidationException;
 
+    /**
+     * fo:root must be root.
+     * @param source the event source
+     * @param elementName the name of the context node
+     * @param loc the location of the error or null
+     * @throws ValidationException the validation error provoked by the method 
call
+     * @event.severity FATAL
+     */
+    void invalidFORoot(Object source, String elementName,
+            Locator loc) throws ValidationException;
+    
+    /**
+     * No FO document was found.
+     * @param source the event source
+     * @throws ValidationException the validation error provoked by the method 
call
+     * @event.severity FATAL
+     */
+    void emptyDocument(Object source) throws ValidationException;
+    
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to