Class AbstractSftpClientExtension
- java.lang.Object
-
- org.apache.sshd.common.util.logging.AbstractLoggingBean
-
- org.apache.sshd.sftp.client.extensions.helpers.AbstractSftpClientExtension
-
- All Implemented Interfaces:
NamedResource,OptionalFeature,SftpClientExtension,RawSftpClient,SftpClientHolder
- Direct Known Subclasses:
AbstractCheckFileExtension,AbstractMD5HashExtension,AbstractOpenSSHStatCommandExtension,CopyDataExtensionImpl,CopyFileExtensionImpl,FilenameTranslationControlExtensionImpl,OpenSSHFsyncExtensionImpl,OpenSSHLimitsExtensionImpl,OpenSSHPosixRenameExtensionImpl,SpaceAvailableExtensionImpl
public abstract class AbstractSftpClientExtension extends AbstractLoggingBean implements SftpClientExtension, RawSftpClient
-
-
Field Summary
Fields Modifier and Type Field Description private SftpClientclientprivate java.lang.Stringnameprivate RawSftpClientrawprivate booleansupported-
Fields inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
log
-
Fields inherited from interface org.apache.sshd.common.NamedResource
BY_NAME_COMPARATOR, NAME_EXTRACTOR
-
Fields inherited from interface org.apache.sshd.common.OptionalFeature
FALSE, TRUE
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractSftpClientExtension(java.lang.String name, SftpClient client, RawSftpClient raw, boolean supported)protectedAbstractSftpClientExtension(java.lang.String name, SftpClient client, RawSftpClient raw, java.util.Collection<java.lang.String> extras)protectedAbstractSftpClientExtension(java.lang.String name, SftpClient client, RawSftpClient raw, java.util.Map<java.lang.String,byte[]> extensions)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected BuffercheckExtendedReplyBuffer(Buffer buffer)protected voidcheckStatus(Buffer buffer)SftpClientgetClient()protected BuffergetCommandBuffer(int extraSize)protected BuffergetCommandBuffer(java.lang.Object target)protected BuffergetCommandBuffer(java.lang.Object target, int extraSize)java.lang.StringgetName()booleanisSupported()BufferputTarget(Buffer buffer, java.lang.Object target)Bufferreceive(int id)Bufferreceive(int id, long timeout)Bufferreceive(int id, java.time.Duration timeout)intsend(int cmd, Buffer buffer)protected voidsendAndCheckExtendedCommandStatus(Buffer buffer)protected intsendExtendedCommand(Buffer buffer)protected voidthrowStatusException(int id, SftpStatus status)SftpMessagewrite(int cmd, Buffer buffer)
-
-
-
Field Detail
-
name
private final java.lang.String name
-
client
private final SftpClient client
-
raw
private final RawSftpClient raw
-
supported
private final boolean supported
-
-
Constructor Detail
-
AbstractSftpClientExtension
protected AbstractSftpClientExtension(java.lang.String name, SftpClient client, RawSftpClient raw, java.util.Collection<java.lang.String> extras)
-
AbstractSftpClientExtension
protected AbstractSftpClientExtension(java.lang.String name, SftpClient client, RawSftpClient raw, java.util.Map<java.lang.String,byte[]> extensions)
-
AbstractSftpClientExtension
protected AbstractSftpClientExtension(java.lang.String name, SftpClient client, RawSftpClient raw, boolean supported)
-
-
Method Detail
-
getName
public final java.lang.String getName()
- Specified by:
getNamein interfaceNamedResource- Returns:
- The resource name
-
getClient
public final SftpClient getClient()
- Specified by:
getClientin interfaceSftpClientHolder
-
sendAndCheckExtendedCommandStatus
protected void sendAndCheckExtendedCommandStatus(Buffer buffer) throws java.io.IOException
- Throws:
java.io.IOException
-
sendExtendedCommand
protected int sendExtendedCommand(Buffer buffer) throws java.io.IOException
- Throws:
java.io.IOException
-
send
public int send(int cmd, Buffer buffer) throws java.io.IOException- Specified by:
sendin interfaceRawSftpClient- Parameters:
cmd- Command to send - Note: only lower 8-bits are usedbuffer- TheBuffercontaining the command data- Returns:
- The assigned request id
- Throws:
java.io.IOException- if failed to send command
-
write
public SftpMessage write(int cmd, Buffer buffer) throws java.io.IOException
- Specified by:
writein interfaceRawSftpClient- Throws:
java.io.IOException
-
receive
public Buffer receive(int id) throws java.io.IOException
- Specified by:
receivein interfaceRawSftpClient- Parameters:
id- The expected request id- Returns:
- The received response
Buffercontaining the request id - Throws:
java.io.IOException- If connection closed or interrupted
-
receive
public Buffer receive(int id, long timeout) throws java.io.IOException
- Specified by:
receivein interfaceRawSftpClient- Parameters:
id- The expected request idtimeout- The amount of time to wait for the response- Returns:
- The received response
Buffercontaining the request id - Throws:
java.io.IOException- If connection closed or interrupted
-
receive
public Buffer receive(int id, java.time.Duration timeout) throws java.io.IOException
- Specified by:
receivein interfaceRawSftpClient- Parameters:
id- The expected request idtimeout- The amount of time to wait for the response- Returns:
- The received response
Buffercontaining the request id - Throws:
java.io.IOException- If connection closed or interrupted
-
isSupported
public final boolean isSupported()
- Specified by:
isSupportedin interfaceOptionalFeature
-
checkStatus
protected void checkStatus(Buffer buffer) throws java.io.IOException
- Throws:
java.io.IOException
-
putTarget
public Buffer putTarget(Buffer buffer, java.lang.Object target)
- Parameters:
buffer- TheBuffertarget- A target pathStringorSftpClient.Handleorbyte[]to be encoded in the buffer- Returns:
- The updated buffer
- Throws:
java.lang.UnsupportedOperationException- If target is not one of the above supported types
-
getCommandBuffer
protected Buffer getCommandBuffer(java.lang.Object target)
- Parameters:
target- A target pathStringorSftpClient.Handleorbyte[]to be encoded in the buffer- Returns:
- A
Bufferwith the extension name set - See Also:
getCommandBuffer(Object, int)
-
getCommandBuffer
protected Buffer getCommandBuffer(java.lang.Object target, int extraSize)
- Parameters:
target- A target pathStringorSftpClient.Handleorbyte[]to be encoded in the bufferextraSize- Extra size - beyond the path/handle to be allocated- Returns:
- A
Bufferwith the extension name set - See Also:
getCommandBuffer(int)
-
getCommandBuffer
protected Buffer getCommandBuffer(int extraSize)
- Parameters:
extraSize- Extra size - besides the extension name- Returns:
- A
Bufferwith the extension name set
-
checkExtendedReplyBuffer
protected Buffer checkExtendedReplyBuffer(Buffer buffer) throws java.io.IOException
- Parameters:
buffer- TheBufferto check- Returns:
- The
Bufferif this is anSftpConstants.SSH_FXP_EXTENDED_REPLY, ornullif this is aSftpConstants.SSH_FXP_STATUScarrying anSftpConstants.SSH_FX_OKresult - Throws:
java.io.IOException- If a non-SftpConstants.SSH_FX_OKresult or not aSftpConstants.SSH_FXP_EXTENDED_REPLYbuffer
-
throwStatusException
protected void throwStatusException(int id, SftpStatus status) throws java.io.IOException- Throws:
java.io.IOException
-
-