Class PathContentProvider
- All Implemented Interfaces:
Iterable<ByteBuffer>
,ContentProvider
,ContentProvider.Typed
A ContentProvider
for files using JDK 7's java.nio.file
APIs.
It is possible to specify, at the constructor, a buffer size used to read
content from the stream, by default 4096 bytes.
If a ByteBufferPool
is provided via setByteBufferPool(ByteBufferPool)
,
the buffer will be allocated from that pool, otherwise one buffer will be
allocated and used to read the file.
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface org.eclipse.jetty.client.api.ContentProvider
ContentProvider.Typed
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate ByteBufferPool
private final int
private final Path
private final long
private static final Logger
-
Constructor Summary
ConstructorsConstructorDescriptionPathContentProvider
(String contentType, Path filePath) PathContentProvider
(String contentType, Path filePath, int bufferSize) PathContentProvider
(Path filePath) PathContentProvider
(Path filePath, int bufferSize) -
Method Summary
Modifier and TypeMethodDescriptionlong
boolean
Whether this ContentProvider can produce exactly the same content more than once.iterator()
void
setByteBufferPool
(ByteBufferPool byteBufferPool) Methods inherited from class org.eclipse.jetty.client.util.AbstractTypedContentProvider
getContentType
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
LOG
-
filePath
-
fileSize
private final long fileSize -
bufferSize
private final int bufferSize -
bufferPool
-
-
Constructor Details
-
PathContentProvider
- Throws:
IOException
-
PathContentProvider
- Throws:
IOException
-
PathContentProvider
- Throws:
IOException
-
PathContentProvider
- Throws:
IOException
-
-
Method Details
-
getLength
public long getLength()- Returns:
- the content length, if known, or -1 if the content length is unknown
-
isReproducible
public boolean isReproducible()Description copied from interface:ContentProvider
Whether this ContentProvider can produce exactly the same content more than once.
Implementations should return
true
only if the content can be produced more than once, which means that invocations toIterable.iterator()
must return a new, independent, iterator instance over the content.The
HttpClient
implementation may use this method in particular cases where it detects that it is safe to retry a request that failed.- Returns:
- whether the content can be produced more than once
-
getByteBufferPool
-
setByteBufferPool
-
iterator
-