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
- Author:
- Apache MINA SSHD Project
-
-
Field Summary
-
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 protected
AbstractSftpClientExtension(String name, SftpClient client, RawSftpClient raw, boolean supported)
protected
AbstractSftpClientExtension(String name, SftpClient client, RawSftpClient raw, Collection<String> extras)
protected
AbstractSftpClientExtension(String name, SftpClient client, RawSftpClient raw, Map<String,byte[]> extensions)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Buffer
checkExtendedReplyBuffer(Buffer buffer)
protected void
checkStatus(Buffer buffer)
SftpClient
getClient()
protected Buffer
getCommandBuffer(int extraSize)
protected Buffer
getCommandBuffer(Object target)
protected Buffer
getCommandBuffer(Object target, int extraSize)
String
getName()
boolean
isSupported()
Buffer
putTarget(Buffer buffer, Object target)
Buffer
receive(int id)
Buffer
receive(int id, long timeout)
Buffer
receive(int id, Duration timeout)
int
send(int cmd, Buffer buffer)
protected void
sendAndCheckExtendedCommandStatus(Buffer buffer)
protected int
sendExtendedCommand(Buffer buffer)
protected void
throwStatusException(int id, int substatus, String msg, String lang)
protected void
validateIncomingResponse(int cmd, int id, int type, int length, Buffer buffer)
-
-
-
Constructor Detail
-
AbstractSftpClientExtension
protected AbstractSftpClientExtension(String name, SftpClient client, RawSftpClient raw, Collection<String> extras)
-
AbstractSftpClientExtension
protected AbstractSftpClientExtension(String name, SftpClient client, RawSftpClient raw, Map<String,byte[]> extensions)
-
AbstractSftpClientExtension
protected AbstractSftpClientExtension(String name, SftpClient client, RawSftpClient raw, boolean supported)
-
-
Method Detail
-
getName
public final String getName()
- Specified by:
getName
in interfaceNamedResource
- Returns:
- The resource name
-
getClient
public final SftpClient getClient()
- Specified by:
getClient
in interfaceSftpClientHolder
-
sendAndCheckExtendedCommandStatus
protected void sendAndCheckExtendedCommandStatus(Buffer buffer) throws IOException
- Throws:
IOException
-
sendExtendedCommand
protected int sendExtendedCommand(Buffer buffer) throws IOException
- Throws:
IOException
-
send
public int send(int cmd, Buffer buffer) throws IOException
- Specified by:
send
in interfaceRawSftpClient
- Parameters:
cmd
- Command to send - Note: only lower 8-bits are usedbuffer
- TheBuffer
containing the command data- Returns:
- The assigned request id
- Throws:
IOException
- if failed to send command
-
receive
public Buffer receive(int id) throws IOException
- Specified by:
receive
in interfaceRawSftpClient
- Parameters:
id
- The expected request id- Returns:
- The received response
Buffer
containing the request id - Throws:
IOException
- If connection closed or interrupted
-
receive
public Buffer receive(int id, long timeout) throws IOException
- Specified by:
receive
in interfaceRawSftpClient
- Parameters:
id
- The expected request idtimeout
- The amount of time to wait for the response- Returns:
- The received response
Buffer
containing the request id - Throws:
IOException
- If connection closed or interrupted
-
receive
public Buffer receive(int id, Duration timeout) throws IOException
- Specified by:
receive
in interfaceRawSftpClient
- Parameters:
id
- The expected request idtimeout
- The amount of time to wait for the response- Returns:
- The received response
Buffer
containing the request id - Throws:
IOException
- If connection closed or interrupted
-
isSupported
public final boolean isSupported()
- Specified by:
isSupported
in interfaceOptionalFeature
-
checkStatus
protected void checkStatus(Buffer buffer) throws IOException
- Throws:
IOException
-
putTarget
public Buffer putTarget(Buffer buffer, Object target)
- Parameters:
buffer
- TheBuffer
target
- A target pathString
orSftpClient.Handle
orbyte[]
to be encoded in the buffer- Returns:
- The updated buffer
- Throws:
UnsupportedOperationException
- If target is not one of the above supported types
-
getCommandBuffer
protected Buffer getCommandBuffer(Object target)
- Parameters:
target
- A target pathString
orSftpClient.Handle
orbyte[]
to be encoded in the buffer- Returns:
- A
Buffer
with the extension name set - See Also:
getCommandBuffer(Object, int)
-
getCommandBuffer
protected Buffer getCommandBuffer(Object target, int extraSize)
- Parameters:
target
- A target pathString
orSftpClient.Handle
orbyte[]
to be encoded in the bufferextraSize
- Extra size - beyond the path/handle to be allocated- Returns:
- A
Buffer
with the extension name set - See Also:
getCommandBuffer(int)
-
getCommandBuffer
protected Buffer getCommandBuffer(int extraSize)
- Parameters:
extraSize
- Extra size - besides the extension name- Returns:
- A
Buffer
with the extension name set
-
checkExtendedReplyBuffer
protected Buffer checkExtendedReplyBuffer(Buffer buffer) throws IOException
- Parameters:
buffer
- TheBuffer
to check- Returns:
- The
Buffer
if this is anSftpConstants.SSH_FXP_EXTENDED_REPLY
, ornull
if this is aSftpConstants.SSH_FXP_STATUS
carrying anSftpConstants.SSH_FX_OK
result - Throws:
IOException
- If a non-SftpConstants.SSH_FX_OK
result or not aSftpConstants.SSH_FXP_EXTENDED_REPLY
buffer
-
validateIncomingResponse
protected void validateIncomingResponse(int cmd, int id, int type, int length, Buffer buffer) throws IOException
- Throws:
IOException
-
throwStatusException
protected void throwStatusException(int id, int substatus, String msg, String lang) throws IOException
- Throws:
IOException
-
-