Package org.eclipse.jgit.util.io
Class LimitedInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- org.eclipse.jgit.util.io.LimitedInputStream
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
public abstract class LimitedInputStream extends FilterInputStream
Wraps aInputStream
, limiting the number of bytes which can be read. This class was copied and modifed from the Google Guava 16.0. Differently from the original Guava code, when a caller tries to read from this stream past the given limit and the wrapped stream hasn't yet reached its EOF this class will call the limitExceeded method instead of returning EOF.- Since:
- 3.3
-
-
Field Summary
Fields Modifier and Type Field Description protected long
limit
Max number of bytes to be read from the wrapped stream-
Fields inherited from class java.io.FilterInputStream
in
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
LimitedInputStream(InputStream in, long limit)
Create a new LimitedInputStream
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description int
available()
protected abstract void
limitExceeded()
Called when trying to read past the givenlimit
and the wrapped InputStreamFilterInputStream.in
hasn't yet reached its EOFvoid
mark(int readLimit)
int
read()
int
read(byte[] b, int off, int len)
void
reset()
long
skip(long n)
-
Methods inherited from class java.io.FilterInputStream
close, markSupported, read
-
Methods inherited from class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, transferTo
-
-
-
-
Constructor Detail
-
LimitedInputStream
protected LimitedInputStream(InputStream in, long limit)
Create a new LimitedInputStream- Parameters:
in
- an InputStreamlimit
- max number of bytes to read from the InputStream
-
-
Method Detail
-
available
public int available() throws IOException
- Overrides:
available
in classFilterInputStream
- Throws:
IOException
-
mark
public void mark(int readLimit)
- Overrides:
mark
in classFilterInputStream
-
read
public int read() throws IOException
- Overrides:
read
in classFilterInputStream
- Throws:
IOException
-
read
public int read(byte[] b, int off, int len) throws IOException
- Overrides:
read
in classFilterInputStream
- Throws:
IOException
-
reset
public void reset() throws IOException
- Overrides:
reset
in classFilterInputStream
- Throws:
IOException
-
skip
public long skip(long n) throws IOException
- Overrides:
skip
in classFilterInputStream
- Throws:
IOException
-
limitExceeded
protected abstract void limitExceeded() throws IOException
Called when trying to read past the givenlimit
and the wrapped InputStreamFilterInputStream.in
hasn't yet reached its EOF- Throws:
IOException
- subclasses can throw anIOException
when the limit is exceeded. The throws java.io.IOException will be forwarded back to the caller of the read method which read the stream past the limit.
-
-