Class AbstractDataFetcher
- java.lang.Object
-
- net.markenwerk.utils.data.fetcher.AbstractDataFetcher
-
- All Implemented Interfaces:
DataFetcher
- Direct Known Subclasses:
AbstractBufferedDataFetcher
public abstract class AbstractDataFetcher extends Object implements DataFetcher
AbstractDataFetcher
is a sensible base implementation ofDataFetcher
.Implementers must only implement a single simplified method that copies all bytes from an
InputStream
to anOutputStream
:doCopy(InputStream, OutputStream, DataFetchProgressListener)
.- Since:
- 4.0.0
- Author:
- Torsten Krause (tk at markenwerk dot net)
-
-
Constructor Summary
Constructors Constructor Description AbstractDataFetcher()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
copy(InputStream in, OutputStream out)
Copies the content of a givenInputStream
into a givenOutputStream
.void
copy(InputStream in, OutputStream out, boolean closeIn, boolean closeOut)
Copies the content of a givenInputStream
into a givenOutputStream
.void
copy(InputStream in, OutputStream out, DataFetchProgressListener listener)
Copies the content of a givenInputStream
into a givenOutputStream
.void
copy(InputStream in, OutputStream out, DataFetchProgressListener listener, boolean closeIn, boolean closeOut)
Copies the content of a givenInputStream
into a givenOutputStream
.protected abstract void
doCopy(InputStream in, OutputStream out, DataFetchProgressListener listener)
Copies the content of a givenInputStream
into a givenOutputStream
.byte[]
fetch(InputStream in)
Fetches the content of a givenInputStream
into a fresh byte[].byte[]
fetch(InputStream in, boolean close)
Fetches the content of a givenInputStream
into a fresh byte[].byte[]
fetch(InputStream in, DataFetchProgressListener listener)
Fetches the content of a givenInputStream
into a fresh byte[].byte[]
fetch(InputStream in, DataFetchProgressListener listener, boolean close)
Fetches the content of a givenInputStream
into a fresh byte[].
-
-
-
Method Detail
-
fetch
public final byte[] fetch(InputStream in) throws DataFetchException
Description copied from interface:DataFetcher
Fetches the content of a givenInputStream
into a fresh byte[].See
DataFetcher.copy(InputStream, OutputStream, boolean, boolean)
for the handling of missing or invalid arguments.- Specified by:
fetch
in interfaceDataFetcher
- Parameters:
in
- TheInputStream
to read from.- Returns:
- A new
byte[]
, containing the content of the givenInputStream
. - Throws:
DataFetchException
- If anything went wrong while reading from the givenInputStream
.
-
fetch
public final byte[] fetch(InputStream in, boolean close) throws DataFetchException
Description copied from interface:DataFetcher
Fetches the content of a givenInputStream
into a fresh byte[].See
DataFetcher.copy(InputStream, OutputStream, boolean, boolean)
for the handling of missing or invalid arguments.- Specified by:
fetch
in interfaceDataFetcher
- Parameters:
in
- TheInputStream
to read from.close
- Whether to close the givenInputStream
, after reading from it.- Returns:
- A new
byte[]
, containing the content of the givenInputStream
. - Throws:
DataFetchException
- If anything went wrong while reading from the givenInputStream
.FetchExceptions
thrown while trying to close the givenInputStream
, if requested, are ignored.
-
fetch
public final byte[] fetch(InputStream in, DataFetchProgressListener listener) throws DataFetchException
Description copied from interface:DataFetcher
Fetches the content of a givenInputStream
into a fresh byte[].See
DataFetcher.copy(InputStream, OutputStream, boolean, boolean)
for the handling of missing or invalid arguments.- Specified by:
fetch
in interfaceDataFetcher
- Parameters:
in
- TheInputStream
to read from.listener
- TheDataFetchProgressListener
to report to.- Returns:
- A new
byte[]
, containing the content of the givenInputStream
. - Throws:
DataFetchException
- If anything went wrong while reading from the givenInputStream
.
-
fetch
public final byte[] fetch(InputStream in, DataFetchProgressListener listener, boolean close) throws DataFetchException
Description copied from interface:DataFetcher
Fetches the content of a givenInputStream
into a fresh byte[].See
DataFetcher.copy(InputStream, OutputStream, boolean, boolean)
for the handling of missing or invalid arguments.- Specified by:
fetch
in interfaceDataFetcher
- Parameters:
in
- TheInputStream
to read from.listener
- TheDataFetchProgressListener
to report to.close
- Whether to close the givenInputStream
, after reading from it.- Returns:
- A new
byte[]
, containing the content of the givenInputStream
. - Throws:
DataFetchException
- If anything went wrong while reading from the givenInputStream
.FetchExceptions
thrown while trying to close the givenInputStream
, if requested, are ignored.
-
copy
public final void copy(InputStream in, OutputStream out) throws DataFetchException
Description copied from interface:DataFetcher
Copies the content of a givenInputStream
into a givenOutputStream
.See
DataFetcher.copy(InputStream, OutputStream, boolean, boolean)
for the handling of missing or invalid arguments.- Specified by:
copy
in interfaceDataFetcher
- Parameters:
in
- TheInputStream
to read from.out
- TheOutputStream
to write to.- Throws:
DataFetchException
- If anything went wrong while reading from the givenInputStream
or writing to the givenOutputStream
.
-
copy
public final void copy(InputStream in, OutputStream out, boolean closeIn, boolean closeOut) throws DataFetchException
Description copied from interface:DataFetcher
Copies the content of a givenInputStream
into a givenOutputStream
.Missing or invalid arguments are handled gracefully with the following behaviour.
A
null
is given as anInputStream
, it is simply ignored and handled as if there was nothing to read. IfcloseOut
is true, the givenOutputStream
will be closed anywayA
null
is given as anOutputStream
, it is simply ignored, but the content of givenInputStream
is fetched anyway. IfcloseIn
is true, the givenInputStream
will be closed anyway- Specified by:
copy
in interfaceDataFetcher
- Parameters:
in
- TheInputStream
to read from.out
- TheOutputStream
to write to.closeIn
- Whether to close the givenInputStream
, after reading from it.closeOut
- Whether to close the givenOutputStream
, after writing to it.- Throws:
DataFetchException
- If anything went wrong while reading from the givenInputStream
or writing to the givenOutputStream
.FetchExceptions
thrown while trying to close one of the given streams, if requested, are ignored.
-
copy
public final void copy(InputStream in, OutputStream out, DataFetchProgressListener listener) throws DataFetchException
Description copied from interface:DataFetcher
Copies the content of a givenInputStream
into a givenOutputStream
.See
DataFetcher.copy(InputStream, OutputStream, boolean, boolean)
for the handling of missing or invalid arguments.- Specified by:
copy
in interfaceDataFetcher
- Parameters:
in
- TheInputStream
to read from.out
- TheOutputStream
to write to.listener
- TheDataFetchProgressListener
to report to.- Throws:
DataFetchException
- If anything went wrong while reading from the givenInputStream
or writing to the givenOutputStream
.
-
copy
public final void copy(InputStream in, OutputStream out, DataFetchProgressListener listener, boolean closeIn, boolean closeOut) throws DataFetchException
Description copied from interface:DataFetcher
Copies the content of a givenInputStream
into a givenOutputStream
.Missing or invalid arguments are handled gracefully with the following behaviour.
A
null
is given as anInputStream
, it is simply ignored and handled as if there was nothing to read. IfcloseOut
is true, the givenOutputStream
will be closed anywayA
null
is given as anOutputStream
, it is simply ignored, but the content of givenInputStream
is fetched anyway. IfcloseIn
is true, the givenInputStream
will be closed anyway- Specified by:
copy
in interfaceDataFetcher
- Parameters:
in
- TheInputStream
to read from.out
- TheOutputStream
to write to.listener
- TheDataFetchProgressListener
to report to.closeIn
- Whether to close the givenInputStream
, after reading from it.closeOut
- Whether to close the givenOutputStream
, after writing to it.- Throws:
DataFetchException
- If anything went wrong while reading from the givenInputStream
or writing to the givenOutputStream
.FetchExceptions
thrown while trying to close one of the given streams, if requested, are ignored.
-
doCopy
protected abstract void doCopy(InputStream in, OutputStream out, DataFetchProgressListener listener) throws DataFetchException
Copies the content of a givenInputStream
into a givenOutputStream
.It is guaranteed that neither the given
InputStream
nor the givenOutputStream
nor the givenDataFetchProgressListener
is null.Implementers must not close either of the given streams.
- Parameters:
in
- TheInputStream
to read from.out
- TheOutputStream
to write to.listener
- TheDataFetchProgressListener
to report to.- Throws:
DataFetchException
- If anything went wrong while reading from the givenInputStream
or writing to the givenOutputStream
.
-
-