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,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, int substatus, java.lang.String msg, java.lang.String lang)protected voidvalidateIncomingResponse(int cmd, int id, int type, int length, 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
-
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
-
validateIncomingResponse
protected void validateIncomingResponse(int cmd, int id, int type, int length, Buffer buffer) throws java.io.IOException- Throws:
java.io.IOException
-
throwStatusException
protected void throwStatusException(int id, int substatus, java.lang.String msg, java.lang.String lang) throws java.io.IOException- Throws:
java.io.IOException
-
-