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, toString
getSimplifiedLogger
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
resolveExecutorService
split
public 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 ScpFileOpenerHolder
ScpFileOpener
set via call to ScpFileOpenerHolder.setScpFileOpener(ScpFileOpener)
public void setScpFileOpener(ScpFileOpener fileOpener)
setScpFileOpener
in interface ScpFileOpenerHolder
fileOpener
- The default ScpFileOpener
to use - if null
then a default opener is usedpublic java.util.function.Supplier<? extends CloseableExecutorService> getExecutorServiceProvider()
getExecutorServiceProvider
in interface ExecutorServiceProvider
Supplier
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 ManagedExecutorServiceSupplier
provider
- 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_SIZE
public int getReceiveBufferSize()
public void setReceiveBufferSize(int receiveSize)
receiveSize
- Size (in bytes) of buffer to use when receiving filesScpHelper.MIN_RECEIVE_BUFFER_SIZE
public 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 AbstractDelegatingCommandFactory
command
- 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 AbstractDelegatingCommandFactory
public Command createShell(ChannelSession channel) throws java.io.IOException
createShell
in interface ShellFactory
channel
- 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