public class ScpCommandFactory extends AbstractDelegatingCommandFactory implements ScpFileOpenerHolder, java.lang.Cloneable, ExecutorServiceCarrier
CommandFactory can be used as a standalone command factory
or can be used to augment another CommandFactory and provides
SCP support.ScpCommand| Modifier and Type | Class and Description |
|---|---|
static class |
ScpCommandFactory.Builder
A useful
ObjectBuilder for ScpCommandFactory |
| Modifier and Type | Field and Description |
|---|---|
private CloseableExecutorService |
executors |
private ScpFileOpener |
fileOpener |
private ScpTransferEventListener |
listenerProxy |
private java.util.Collection<ScpTransferEventListener> |
listeners |
private int |
receiveBufferSize |
static java.lang.String |
SCP_FACTORY_NAME |
private int |
sendBufferSize |
log| Constructor and Description |
|---|
ScpCommandFactory() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
addEventListener(ScpTransferEventListener listener) |
ScpCommandFactory |
clone() |
protected Command |
executeSupportedCommand(java.lang.String command) |
CloseableExecutorService |
getExecutorService() |
int |
getReceiveBufferSize() |
ScpFileOpener |
getScpFileOpener() |
int |
getSendBufferSize() |
boolean |
isSupportedCommand(java.lang.String command) |
boolean |
removeEventListener(ScpTransferEventListener listener) |
void |
setExecutorService(CloseableExecutorService service) |
void |
setReceiveBufferSize(int receiveSize) |
void |
setScpFileOpener(ScpFileOpener fileOpener) |
void |
setSendBufferSize(int sendSize) |
createCommand, createUnsupportedCommand, getDelegateCommandFactory, setDelegateCommandFactory, toStringgetSimplifiedLoggerpublic static final java.lang.String SCP_FACTORY_NAME
private CloseableExecutorService executors
private ScpFileOpener fileOpener
private int sendBufferSize
private int receiveBufferSize
private java.util.Collection<ScpTransferEventListener> listeners
private ScpTransferEventListener listenerProxy
public ScpFileOpener getScpFileOpener()
getScpFileOpener in interface ScpFileOpenerHolderScpFileOpener set via call
to ScpFileOpenerHolder.setScpFileOpener(ScpFileOpener)public void setScpFileOpener(ScpFileOpener fileOpener)
setScpFileOpener in interface ScpFileOpenerHolderfileOpener - The default ScpFileOpener to use - if null
then a default opener is usedpublic CloseableExecutorService getExecutorService()
getExecutorService in interface ExecutorServiceCarrierCloseableExecutorService to usepublic void setExecutorService(CloseableExecutorService service)
service - An CloseableExecutorService to be used when
starting ScpCommand execution. If null then a single-threaded
ad-hoc service is used. Note: the service will not be shutdown
when the command is terminated - unless it is the ad-hoc service, which will be
shutdown regardlesspublic int getSendBufferSize()
public void setSendBufferSize(int sendSize)
sendSize - Size (in bytes) of buffer to use when sending filesScpHelper.MIN_SEND_BUFFER_SIZEpublic int getReceiveBufferSize()
public void setReceiveBufferSize(int receiveSize)
receiveSize - Size (in bytes) of buffer to use when receiving filesScpHelper.MIN_RECEIVE_BUFFER_SIZEpublic boolean addEventListener(ScpTransferEventListener listener)
listener - The ScpTransferEventListener to addtrue if this is a new listener instance,
false if the listener is already registeredjava.lang.IllegalArgumentException - if null listenerpublic boolean removeEventListener(ScpTransferEventListener listener)
listener - The ScpTransferEventListener to removetrue if the listener was registered and removed,
false if the listener was not registered to begin withjava.lang.IllegalArgumentException - if null listenerpublic boolean isSupportedCommand(java.lang.String command)
isSupportedCommand in class AbstractDelegatingCommandFactorycommand - The command about to be executedtrue if this command is supported by the command
factory, false if it will be passed on to the
delegate factoryprotected Command executeSupportedCommand(java.lang.String command)
executeSupportedCommand in class AbstractDelegatingCommandFactorypublic ScpCommandFactory clone()
clone in class java.lang.Object