]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Added boolean isExhausted to allow SyncedXmlEventsBuffer
authorPeter Bernard West <pbwest@apache.org>
Fri, 16 Jan 2004 15:24:25 +0000 (15:24 +0000)
committerPeter Bernard West <pbwest@apache.org>
Fri, 16 Jan 2004 15:24:25 +0000 (15:24 +0000)
(which extends SyncedCircularBuffer) to implement the interface
XmlEventSource.

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/FOP_0-20-0_Alt-Design@197201 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/datastructs/SyncedCircularBuffer.java

index d1ee5e400ea02dd4d72d2ba13f839d96f496f111..370af72acade49dd0ed9a5eadec8738bde315b09 100644 (file)
@@ -1,10 +1,4 @@
 /*
- * SyncedCircularBuffer.java
- * $Id$
- * 
- * Created: Tue Nov  6 10:19:03 2001
- * 
- * 
  * ============================================================================
  *                   The Apache Software License, Version 1.1
  * ============================================================================
@@ -53,8 +47,8 @@
  * Software Foundation, please see <http://www.apache.org/>.
  *  
  *
- * @author <a href="mailto:pbwest@powerup.com.au">Peter B. West</a>
- * @version $Revision$ $Name$
+ * $Id$
+ * Created: Tue Nov  6 10:19:03 2001
  */
 package org.apache.fop.datastructs;
 
@@ -70,6 +64,9 @@ import java.lang.IndexOutOfBoundsException;
  * <b>Warning</b>: if the producer or consumer thread dies unexpectedly,
  * without interrupting the complementary thread's <tt>wait()</tt>, that
  * process will hang on the <tt>wait()</tt>.
+ * 
+ * @author <a href="mailto:pbwest@powerup.com.au">Peter B. West</a>
+ * @version $Revision$ $Name$
  */
 public class SyncedCircularBuffer {
 
@@ -234,7 +231,8 @@ public class SyncedCircularBuffer {
 
     /**
      * Notifies the consumer that the producer has terminated.
-     * The <tt>notifyAll()</tt> call allows for processing of the buffer before it fills.
+     * The <tt>notifyAll()</tt> call allows for processing of the buffer before
+     * it fills.
      */
     public void producerExhausted() {
         synchronized (this) {
@@ -245,5 +243,14 @@ public class SyncedCircularBuffer {
             }
         }
     }
+    
+    /**
+     * Is this source of XmlEvents exhausted?
+     * @return true if the last event from the input stream (END_DOCUMENT)
+     * has been processed, and the buffer is empty.
+     */
+    public boolean isExhausted() {
+        return producerFinished && isEmpty(); 
+    }
 
 }