public class ScpCommandFactory extends AbstractDelegatingCommandFactory implements ManagedExecutorServiceSupplier, ScpFileOpenerHolder, java.lang.Cloneable, ShellFactory
CommandFactory can be used as a standalone command factory or can be used to augment another
CommandFactory and provides SCP support.ScpCommand,
ScpShell| Modifier and Type | Class and Description |
|---|---|
static class |
ScpCommandFactory.Builder
A useful
ObjectBuilder for ScpCommandFactory |
| Modifier and Type | Field and Description |
|---|---|
private java.util.function.Supplier<? extends CloseableExecutorService> |
executorsProvider |
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() |
Command |
createShell(ChannelSession channel) |
protected Command |
executeSupportedCommand(java.lang.String command) |
java.util.function.Supplier<? extends CloseableExecutorService> |
getExecutorServiceProvider() |
int |
getReceiveBufferSize() |
ScpFileOpener |
getScpFileOpener() |
int |
getSendBufferSize() |
boolean |
isSupportedCommand(java.lang.String command) |
boolean |
removeEventListener(ScpTransferEventListener listener) |
protected CloseableExecutorService |
resolveExecutorService(java.lang.String command) |
void |
setExecutorServiceProvider(java.util.function.Supplier<? extends CloseableExecutorService> provider) |
void |
setReceiveBufferSize(int receiveSize) |
void |
setScpFileOpener(ScpFileOpener fileOpener) |
void |
setSendBufferSize(int sendSize) |
createCommand, createUnsupportedCommand, getDelegateCommandFactory, setDelegateCommandFactory, toStringgetSimplifiedLoggerequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitresolveExecutorServicesplitpublic static final java.lang.String SCP_FACTORY_NAME
private java.util.function.Supplier<? extends CloseableExecutorService> executorsProvider
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 java.util.function.Supplier<? extends CloseableExecutorService> getExecutorServiceProvider()
getExecutorServiceProvider in interface ExecutorServiceProviderSupplier of CloseableExecutorService to be used when asynchronous execution required.
If null then a single-threaded ad-hoc service is used.public void setExecutorServiceProvider(java.util.function.Supplier<? extends CloseableExecutorService> provider)
setExecutorServiceProvider in interface ManagedExecutorServiceSupplierprovider - The Supplier of CloseableExecutorService-s to be used when asynchronous execution
is required. If null then a single-threaded ad-hoc service is used.public 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 Command createShell(ChannelSession channel) throws java.io.IOException
createShell in interface ShellFactorychannel - The ChannelSession through which the command has been receivedCommand representing the shell to be executedjava.io.IOException - If failed to create the shellprotected CloseableExecutorService resolveExecutorService(java.lang.String command)
public ScpCommandFactory clone()
clone in class java.lang.Object