public abstract class AbstractTransporter extends Object implements Transporter
ERROR_NOT_FOUND, ERROR_OTHER
Modifier | Constructor and Description |
---|---|
protected |
AbstractTransporter()
Enables subclassing.
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes this transporter and frees any network resources associated with it.
|
void |
get(GetTask task)
Downloads a resource from the repository.
|
protected abstract void |
implClose()
Implements
close() , gets only called if the transporter has not already been closed. |
protected abstract void |
implGet(GetTask task)
Implements
get(GetTask) , gets only called if the transporter has not been closed. |
protected abstract void |
implPeek(PeekTask task)
Implements
peek(PeekTask) , gets only called if the transporter has not been closed. |
protected abstract void |
implPut(PutTask task)
Implements
put(PutTask) , gets only called if the transporter has not been closed. |
void |
peek(PeekTask task)
Checks the existence of a resource in the repository.
|
void |
put(PutTask task)
Uploads a resource to the repository.
|
protected void |
utilGet(GetTask task,
InputStream is,
boolean close,
long length,
boolean resume)
Performs stream-based I/O for the specified download task and notifies the configured transport listener.
|
protected void |
utilPut(PutTask task,
OutputStream os,
boolean close)
Performs stream-based I/O for the specified upload task and notifies the configured transport listener.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
classify
protected AbstractTransporter()
public void peek(PeekTask task) throws Exception
Transporter
Transporter.classify(Throwable)
with that exception yields Transporter.ERROR_NOT_FOUND
.peek
in interface Transporter
task
- The existence check to perform, must not be null
.Exception
- If the existence of the specified resource could not be confirmed.protected abstract void implPeek(PeekTask task) throws Exception
peek(PeekTask)
, gets only called if the transporter has not been closed.task
- The existence check to perform, must not be null
.Exception
- If the existence of the specified resource could not be confirmed.public void get(GetTask task) throws Exception
Transporter
GetTask.getDataFile()
and the operation fails midway, the transporter should not delete the partial file
but leave its management to the caller.get
in interface Transporter
task
- The download to perform, must not be null
.Exception
- If the transfer failed.protected abstract void implGet(GetTask task) throws Exception
get(GetTask)
, gets only called if the transporter has not been closed.task
- The download to perform, must not be null
.Exception
- If the transfer failed.protected void utilGet(GetTask task, InputStream is, boolean close, long length, boolean resume) throws IOException, TransferCancelledException
implGet(GetTask)
to avoid
boilerplate I/O code.task
- The download to perform, must not be null
.is
- The input stream to download the data from, must not be null
.close
- true
if the supplied input stream should be automatically closed, false
to leave the
stream open.length
- The size in bytes of the downloaded resource or -1
if unknown, not to be confused with the
length of the supplied input stream which might be smaller if the download is resumed.resume
- true
if the download resumes from GetTask.getResumeOffset()
, false
if the
download starts at the first byte of the resource.IOException
- If the transfer encountered an I/O error.TransferCancelledException
- If the transfer was cancelled.public void put(PutTask task) throws Exception
Transporter
put
in interface Transporter
task
- The upload to perform, must not be null
.Exception
- If the transfer failed.protected abstract void implPut(PutTask task) throws Exception
put(PutTask)
, gets only called if the transporter has not been closed.task
- The upload to perform, must not be null
.Exception
- If the transfer failed.protected void utilPut(PutTask task, OutputStream os, boolean close) throws IOException, TransferCancelledException
implPut(PutTask)
to avoid
boilerplate I/O code.task
- The upload to perform, must not be null
.os
- The output stream to upload the data to, must not be null
.close
- true
if the supplied output stream should be automatically closed, false
to leave
the stream open.IOException
- If the transfer encountered an I/O error.TransferCancelledException
- If the transfer was cancelled.public void close()
Transporter
IllegalStateException
or similar.
Closing an already closed transporter is harmless and has no effect.close
in interface Closeable
close
in interface AutoCloseable
close
in interface Transporter
Copyright © 2010–2021 The Apache Software Foundation. All rights reserved.