- 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 longlimitMax number of bytes to be read from the wrapped stream-
Fields inherited from class java.io.FilterInputStream
in
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedLimitedInputStream(InputStream in, long limit)Create a new LimitedInputStream
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description intavailable()protected abstract voidlimitExceeded()Called when trying to read past the givenlimitand the wrapped InputStreamFilterInputStream.inhasn't yet reached its EOFvoidmark(int readLimit)intread()intread(byte[] b, int off, int len)voidreset()longskip(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:
availablein classFilterInputStream- Throws:
IOException
-
mark
public void mark(int readLimit)
- Overrides:
markin classFilterInputStream
-
read
public int read() throws IOException- Overrides:
readin classFilterInputStream- Throws:
IOException
-
read
public int read(byte[] b, int off, int len) throws IOException- Overrides:
readin classFilterInputStream- Throws:
IOException
-
reset
public void reset() throws IOException- Overrides:
resetin classFilterInputStream- Throws:
IOException
-
skip
public long skip(long n) throws IOException- Overrides:
skipin classFilterInputStream- Throws:
IOException
-
limitExceeded
protected abstract void limitExceeded() throws IOExceptionCalled when trying to read past the givenlimitand the wrapped InputStreamFilterInputStream.inhasn't yet reached its EOF- Throws:
IOException- subclasses can throw anIOExceptionwhen 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.
-
-