pbwest      2002/11/11 09:24:18

  Modified:    src/org/apache/fop/xml Tag: FOP_0-20-0_Alt-Design
                        SyncedFoXmlEventsBuffer.java
  Log:
  Added expectBlock(), expectNormalPcdataOrInline(),
  expectOutOfLinePcdataOrInline(), expectNormalPcdataOrInlineOrBlock(),
  expectOutOfLinePcdataOrInlineOrBlock().
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.3   +59 -5     
xml-fop/src/org/apache/fop/xml/Attic/SyncedFoXmlEventsBuffer.java
  
  Index: SyncedFoXmlEventsBuffer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-fop/src/org/apache/fop/xml/Attic/SyncedFoXmlEventsBuffer.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- SyncedFoXmlEventsBuffer.java      7 Nov 2002 15:30:50 -0000       1.1.2.2
  +++ SyncedFoXmlEventsBuffer.java      11 Nov 2002 17:24:18 -0000      1.1.2.3
  @@ -3,6 +3,7 @@
   import org.apache.fop.datastructs.SyncedCircularBuffer;
   import org.apache.fop.apps.FOPException;
   import org.apache.fop.fo.FObjectNames;
  +import org.apache.fop.fo.FObjectSets;
   
   import java.util.NoSuchElementException;
   import java.util.LinkedList;
  @@ -771,6 +772,7 @@
       {
           FoXMLEvent ev;
           do {
  +            try {
               ev = expectStartElement(set, discardWhiteSpace);
               if (ev != null) return ev;
               // The non-matching event has been pushed back.
  @@ -778,6 +780,9 @@
               // getEvent() returns null, the expectStartElement() calls
               // will throw a NoSuchElementException
               ev = getEvent();
  +            } catch(UnexpectedStartElementException e) {
  +                ev = getEvent();
  +            }
           } while (ev != null);
           // Exit from this while loop is only by discovery of null event
           throw new NoSuchElementException
  @@ -803,7 +808,7 @@
        */
       public FoXMLEvent expectStartElement
                                       (BitSet set, boolean discardWhiteSpace)
  -        throws FOPException
  +        throws FOPException, UnexpectedStartElementException
       {
           FoXMLEvent ev;
           ev = expectTypedEvent(XMLEvent.STARTELEMENT, discardWhiteSpace);
  @@ -813,9 +818,58 @@
               if (ev.foType == i)
                   return ev; // Found it!
           }
  -        // Not found - push the STARTELEMENT event back
  +        // Not found - push the STARTELEMENT event back and throw an
  +        // UnexpectedStartElementException
           pushBack(ev);
  -        return null;
  +        throw new UnexpectedStartElementException
  +                ("Unexpected START element: " + ev.getQName());
  +    }
  +
  +    public FoXMLEvent expectBlock()
  +        throws FOPException, UnexpectedStartElementException
  +    {
  +        return expectStartElement
  +                (FObjectSets.blockEntity, XMLEvent.DISCARD_W_SPACE);
  +    }
  +
  +    public FoXMLEvent expectNormalPcdataOrInline()
  +        throws FOPException, UnexpectedStartElementException
  +    {
  +        FoXMLEvent ev = expectStartElement
  +                (FObjectSets.normalPcdataInlineSet, XMLEvent.RETAIN_W_SPACE);
  +        if (ev == null)
  +            ev = expectCharacters();
  +        return ev;
  +    }
  +
  +    public FoXMLEvent expectOutOfLinePcdataOrInline()
  +        throws FOPException, UnexpectedStartElementException
  +    {
  +        FoXMLEvent ev = expectStartElement
  +                    (FObjectSets.inlineEntity, XMLEvent.RETAIN_W_SPACE);
  +        if (ev == null)
  +            ev = expectCharacters();
  +        return ev;
  +    }
  +
  +    public FoXMLEvent expectNormalPcdataOrInlineOrBlock()
  +        throws FOPException, UnexpectedStartElementException
  +    {
  +        FoXMLEvent ev = expectStartElement
  +            (FObjectSets.normalPcdataBlockInlineSet, XMLEvent.RETAIN_W_SPACE);
  +        if (ev == null)
  +            ev = expectCharacters();
  +        return ev;
  +    }
  +
  +    public FoXMLEvent expectOutOfLinePcdataOrInlineOrBlock()
  +        throws FOPException, UnexpectedStartElementException
  +    {
  +        FoXMLEvent ev = expectStartElement
  +            (FObjectSets.pcdataBlockInlineSet, XMLEvent.RETAIN_W_SPACE);
  +        if (ev == null)
  +            ev = expectCharacters();
  +        return ev;
       }
   
       /**
  
  
  

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

Reply via email to