Package org.apache.commons.io.input
Class ThrottledInputStream.Builder
- java.lang.Object
-
- org.apache.commons.io.build.AbstractSupplier<T,B>
-
- org.apache.commons.io.build.AbstractOriginSupplier<T,B>
-
- org.apache.commons.io.build.AbstractStreamBuilder<T,B>
-
- org.apache.commons.io.input.ThrottledInputStream.Builder
-
- All Implemented Interfaces:
IOSupplier<ThrottledInputStream>
- Enclosing class:
- ThrottledInputStream
public static class ThrottledInputStream.Builder extends AbstractStreamBuilder<T,B>
Builds a newThrottledInputStream.Using NIO
ThrottledInputStream in = ThrottledInputStream.builder() .setPath(Paths.get("MyFile.xml")) .setMaxBytes(100_000, ChronoUnit.SECONDS) .get();Using IO
ThrottledInputStream in = ThrottledInputStream.builder() .setFile(new File("MyFile.xml")) .setMaxBytes(100_000, ChronoUnit.SECONDS) .get();ThrottledInputStream in = ThrottledInputStream.builder() .setInputStream(inputStream) .setMaxBytes(100_000, ChronoUnit.SECONDS) .get();- See Also:
get()
-
-
Constructor Summary
Constructors Constructor Description Builder()Constructs a new builder ofThrottledInputStream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ThrottledInputStreamget()Builds a newThrottledInputStream.ThrottledInputStream.BuildersetMaxBytes(long value, java.time.temporal.ChronoUnit chronoUnit)Sets the maximum bytes per time period unit.voidsetMaxBytesPerSecond(long maxBytesPerSecond)Sets the maximum bytes per second.-
Methods inherited from class org.apache.commons.io.build.AbstractStreamBuilder
getBufferSize, getBufferSizeDefault, getCharSequence, getCharset, getCharsetDefault, getFile, getInputStream, getOpenOptions, getOutputStream, getPath, getRandomAccessFile, getReader, getWriter, setBufferSize, setBufferSize, setBufferSizeChecker, setBufferSizeMax, setCharset, setCharset, setOpenOptions
-
Methods inherited from class org.apache.commons.io.build.AbstractOriginSupplier
setByteArray, setCharSequence, setFile, setFile, setInputStream, setOutputStream, setPath, setPath, setRandomAccessFile, setRandomAccessFile, setReader, setURI, setWriter
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.commons.io.function.IOSupplier
asSupplier, getUnchecked
-
-
-
-
Constructor Detail
-
Builder
public Builder()
Constructs a new builder ofThrottledInputStream.
-
-
Method Detail
-
get
public ThrottledInputStream get() throws java.io.IOException
Builds a newThrottledInputStream.You must set an aspect that supports
AbstractStreamBuilder.getInputStream(), otherwise, this method throws an exception.This builder uses the following aspects:
AbstractStreamBuilder.getInputStream()gets the target aspect.- maxBytesPerSecond
- Returns:
- a new instance.
- Throws:
java.lang.IllegalStateException- if theoriginisnull.java.lang.UnsupportedOperationException- if the origin cannot be converted to anInputStream.java.io.IOException- if an I/O error occurs converting to anInputStreamusingAbstractStreamBuilder.getInputStream().- See Also:
AbstractStreamBuilder.getInputStream(),IOSupplier.getUnchecked()
-
setMaxBytes
public ThrottledInputStream.Builder setMaxBytes(long value, java.time.temporal.ChronoUnit chronoUnit)
Sets the maximum bytes per time period unit.For example, to throttle reading to 100K per second, use:
builder.setMaxBytes(100_000, ChronoUnit.SECONDS)
To test idle timeouts for example, use 1 byte per minute, 1 byte per 30 seconds, and so on.
- Parameters:
value- the maximum byteschronoUnit- a duration scale goal.- Returns:
- this instance.
- Throws:
java.lang.IllegalArgumentException- Thrown if maxBytesPerSecond <= 0.- Since:
- 2.19.0
-
setMaxBytesPerSecond
public void setMaxBytesPerSecond(long maxBytesPerSecond)
Sets the maximum bytes per second.- Parameters:
maxBytesPerSecond- the maximum bytes per second.- Throws:
java.lang.IllegalArgumentException- Thrown if maxBytesPerSecond <= 0.
-
-