pbwest      2002/11/07 15:56:51

  Modified:    src/org/apache/fop/fo Tag: FOP_0-20-0_Alt-Design FoRoot.java
  Log:
  Added child offset int fields.
  Consolidated all child processing within a single try{} block.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.15  +47 -21    xml-fop/src/org/apache/fop/fo/Attic/FoRoot.java
  
  Index: FoRoot.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/Attic/FoRoot.java,v
  retrieving revision 1.1.2.14
  retrieving revision 1.1.2.15
  diff -u -r1.1.2.14 -r1.1.2.15
  --- FoRoot.java       5 Nov 2002 14:24:58 -0000       1.1.2.14
  +++ FoRoot.java       7 Nov 2002 23:56:51 -0000       1.1.2.15
  @@ -20,6 +20,7 @@
   import org.apache.fop.fo.expr.PropertyException;
   import org.apache.fop.fo.pagination.FoLayoutMasterSet;
   import org.apache.fop.fo.declarations.FoDeclarations;
  +import org.apache.fop.fo.flow.FoPageSequence;
   import org.apache.fop.xml.FoXMLEvent;
   import org.apache.fop.xml.XMLEvent;
   import org.apache.fop.xml.XMLNamespaces;
  @@ -44,8 +45,6 @@
       private static final String tag = "$Name$";
       private static final String revision = "$Revision$";
   
  -    private HashMap pageSequenceMasters;
  -
       /** Map of <tt>Integer</tt> indices of <i>sparsePropsSet</i> array.
           It is indexed by the FO index of the FO associated with a given
           position in the <i>sparsePropsSet</i> array.  See
  @@ -72,6 +71,18 @@
               (Ints.consts.get(PropNames.MEDIA_USAGE), Ints.consts.get(0));
       }
   
  +    /** 
  +     * The HashMap of PageSequenceMaster objects produced from the
  +     * layout-master-set.
  +     */
  +    private HashMap pageSequenceMasters;
  +
  +    /** Offset of declarations child node. */
  +    private int declarations = -1;
  +
  +    /** Offset of first page-sequence child node. */
  +    private int firstPageSeq = -1;
  +
       /**
        * @param foTree the FO tree being built
        * @param event the <tt>FoXMLEvent</tt> that triggered the creation of this
  @@ -112,42 +123,57 @@
        */
       public void buildFoTree() throws FOPException{
           FoXMLEvent ev;
  +        String nowProcessing;
           //System.out.println("buildFoTree: " + event);
  -        // Look for layout-master-set
  +        nowProcessing = "layout-master-set";
           try {
  +            // Look for layout-master-set.  Must be one.
               ev = xmlevents.expectStartElement
                   (FObjectNames.LAYOUT_MASTER_SET, XMLEvent.DISCARD_W_SPACE);
  -        } catch (NoSuchElementException e) {
  -            throw new FOPException
  -                        ("buildFoTree: Unexpected EOF in layout-master-set.");
  -        }
  -        // Process the layout-master-set
  -        try {
  +            // Process the layout-master-set
               FoLayoutMasterSet layoutMasters =
                                   new FoLayoutMasterSet(getFOTree(), this, ev);
               // Clean up the fo:layout-master-set event
               pageSequenceMasters = layoutMasters.getPageSequenceMasters();
               xmlevents.getEndElement(ev);
               layoutMasters.deleteSubTree();
  -        } catch(TreeException e) {
  -            throw new FOPException("TreeException: " + e.getMessage());
  -        } catch(PropertyException e) {
  -            throw new FOPException("PropertyException: " + e.getMessage());
  -        }
  -        // Look for optional declarations
  -        try {
  +
  +            // Look for optional declarations
  +            nowProcessing = "declarations";
               ev = xmlevents.expectStartElement
                           (FObjectNames.DECLARATIONS, XMLEvent.DISCARD_W_SPACE);
               if (ev != null) {
                   // process the declarations
  +                declarations = numChildren();
                   new FoDeclarations(getFOTree(), this, ev);
                   xmlevents.getEndElement(FObjectNames.DECLARATIONS);
               }
  +
  +            // Process page-sequences here
  +            // must have at least one
  +            nowProcessing = "page-sequence";
  +            ev = xmlevents.expectStartElement
  +                        (FObjectNames.PAGE_SEQUENCE, XMLEvent.DISCARD_W_SPACE);
  +            if (ev == null)
  +                throw new FOPException("No page-sequence found.");
  +            firstPageSeq = numChildren();
  +            new FoPageSequence(getFOTree(), this, ev);
  +            xmlevents.getEndElement(FObjectNames.PAGE_SEQUENCE);
  +            while ((ev = xmlevents.expectStartElement
  +                    (FObjectNames.PAGE_SEQUENCE, XMLEvent.DISCARD_W_SPACE))
  +                   != null) {
  +                // Loop over remaining fo:page-sequences
  +                new FoPageSequence(getFOTree(), this, ev);
  +                xmlevents.getEndElement(FObjectNames.PAGE_SEQUENCE);
  +            }
           } catch (NoSuchElementException e) {
               throw new FOPException
  -                ("Unexpected EOF while processing declarations.");
  +                ("Unexpected EOF while processing " + nowProcessing + ".");
  +        } catch(TreeException e) {
  +            throw new FOPException("TreeException: " + e.getMessage());
  +        } catch(PropertyException e) {
  +            throw new FOPException("PropertyException: " + e.getMessage());
           }
  -        // Process page-sequences here
           // Clean up root's FO tree build environment
           makeSparsePropsSet();
       }
  
  
  

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

Reply via email to