org.shiftone.jrat.inject.process
Class OpenInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by org.shiftone.jrat.inject.process.OpenInputStream
All Implemented Interfaces:
java.io.Closeable

public class OpenInputStream
extends java.io.InputStream

Class OpenInputStream wrapps/proxies to a real InputStream and prevents the caller from closing the underlying input stream. This is useful when reading chunks from a ZipInputStream passing the archive entry inputStreams to code that calls close(). This would typically close the entire ZipInputStream, which would prevent any other archive entries from being read.

Author:
jeff@shiftone.org (Jeff Drost)

Constructor Summary
OpenInputStream(java.io.InputStream inputStream)
           
 
Method Summary
 void assertOpen()
           
 int available()
           
 void close()
          Method close does not call close() on the underlying input stream.
 void mark(int readlimit)
           
 boolean markSupported()
           
 int read()
           
 int read(byte[] b)
           
 int read(byte[] b, int off, int len)
           
 void reset()
           
 long skip(long n)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OpenInputStream

public OpenInputStream(java.io.InputStream inputStream)
Method Detail

assertOpen

public void assertOpen()
                throws java.io.IOException
Throws:
java.io.IOException

available

public int available()
              throws java.io.IOException
Overrides:
available in class java.io.InputStream
Throws:
java.io.IOException

close

public void close()
           throws java.io.IOException
Method close does not call close() on the underlying input stream. It set's a flag that is used assertions in the read methods of this class.

Specified by:
close in interface java.io.Closeable
Overrides:
close in class java.io.InputStream
Throws:
java.io.IOException

mark

public void mark(int readlimit)
Overrides:
mark in class java.io.InputStream

markSupported

public boolean markSupported()
Overrides:
markSupported in class java.io.InputStream

read

public int read()
         throws java.io.IOException
Specified by:
read in class java.io.InputStream
Throws:
java.io.IOException

read

public int read(byte[] b)
         throws java.io.IOException
Overrides:
read in class java.io.InputStream
Throws:
java.io.IOException

read

public int read(byte[] b,
                int off,
                int len)
         throws java.io.IOException
Overrides:
read in class java.io.InputStream
Throws:
java.io.IOException

reset

public void reset()
           throws java.io.IOException
Overrides:
reset in class java.io.InputStream
Throws:
java.io.IOException

skip

public long skip(long n)
          throws java.io.IOException
Overrides:
skip in class java.io.InputStream
Throws:
java.io.IOException