package rabbit.zip;

/** The state a gzip packing can be in.
 *
 * @author <a href="mailto:robo@khelekore.org">Robert Olofsson</a>
 */
interface GZipPackState {
    /** Check if the packer currently needs more data 
     */
    boolean needsInput ();

    /** Handle a buffer. 
     * @param buf the data to be handled.
     * @param off the start offset of the data.
     * @param len the length of the data.
     * @return the new State of gzip unpacking.
     */
    void handleBuffer (GZipPacker packer, byte[] buf, int off, int len);

    /** Handle the next block of the current data. 
     */
    void handleCurrentData (GZipPacker packer);

    /** Tell the current state that packing is finished.
     */
    void finish ();

    /** Check if packing is finished. */
    boolean finished ();
}

@@ -219,63 +219,192 @@
    *
-/%0A    boolean needsInput ();%0A%0A    /** Handle a buffer. 
+ @return true if more input data is currently needed%0A     */%0A    boolean needsInput ();%0A%0A    /** Handle a buffer. %0A     * @param packer the GZipPacker that is coordinating the packing.
 %0A   
@@ -536,56 +536,8 @@
 ta.%0A
-     * @return the new State of gzip unpacking.%0A
     
@@ -666,16 +666,86 @@
  data. %0A
+     * @param packer the GZipPacker that is coordinating the packing.%0A
      */%0A
@@ -916,16 +916,91 @@
 inished.
+%0A     * @return true if packing has finished (according to this state)%0A    
  */%0A    

Add some javadoc.