public class RemoteFileTemplate<F> extends Object implements RemoteFileOperations<F>, InitializingBean, BeanFactoryAware
RemoteFileOperations.OperationsCallback<F,T>| Modifier and Type | Field and Description |
|---|---|
protected SessionFactory<F> |
sessionFactory
the
SessionFactory for acquiring remote file Sessions. |
| Constructor and Description |
|---|
RemoteFileTemplate(SessionFactory<F> sessionFactory)
Construct a
RemoteFileTemplate with the supplied session factory. |
| Modifier and Type | Method and Description |
|---|---|
void |
afterPropertiesSet() |
String |
append(Message<?> message)
Send a file to a remote server, based on information in a message, appending.
|
String |
append(Message<?> message,
String subDirectory)
Send a file to a remote server, based on information in a message, appending.
|
<T> T |
execute(SessionCallback<F,T> callback)
Execute the callback's doInSession method after obtaining a session.
|
<T,C> T |
executeWithClient(ClientCallback<C,T> callback)
Execute the callback's doWithClient method after obtaining a session's
client, providing access to low level methods.
|
boolean |
exists(String path)
Check if a file exists on the remote server.
|
boolean |
get(Message<?> message,
InputStreamCallback callback)
Retrieve a remote file as an InputStream, based on information in a message.
|
boolean |
get(String remotePath,
InputStreamCallback callback)
Retrieve a remote file as an InputStream.
|
String |
getRemoteFileSeparator() |
Session<F> |
getSession()
Obtain a raw Session object.
|
SessionFactory<F> |
getSessionFactory() |
String |
getTemporaryFileSuffix() |
<T> T |
invoke(RemoteFileOperations.OperationsCallback<F,T> action)
Invoke the callback and run all operations on the template argument in a dedicated
thread-bound session and reliably close the it afterwards.
|
boolean |
isUseTemporaryFileName() |
F[] |
list(String path)
List the files at the remote path.
|
boolean |
remove(String path)
Remove a remote file.
|
void |
rename(String fromPath,
String toPath)
Rename a remote file, creating directories if needed.
|
String |
send(Message<?> message,
FileExistsMode... mode)
Send a file to a remote server, based on information in a message.
|
String |
send(Message<?> message,
String subDirectory,
FileExistsMode... mode)
Send a file to a remote server, based on information in a message.
|
void |
setAutoCreateDirectory(boolean autoCreateDirectory)
Determine whether the remote directory should automatically be created when
sending files to the remote system.
|
void |
setBeanFactory(BeanFactory beanFactory) |
void |
setCharset(String charset)
Set the charset to use when converting String payloads to bytes as the content of the
remote file.
|
void |
setFileNameExpression(Expression fileNameExpression)
Set the file name expression to determine the full path to the remote file when retrieving
a file using the
get(Message, InputStreamCallback) method, with the message
being the root object of the evaluation. |
void |
setFileNameGenerator(FileNameGenerator fileNameGenerator)
Set the file name generator used to generate the remote filename to be used when transferring
files to the remote system.
|
void |
setRemoteDirectoryExpression(Expression remoteDirectoryExpression)
Set the remote directory expression used to determine the remote directory to which
files will be sent.
|
void |
setRemoteFileSeparator(String remoteFileSeparator)
Set the file separator when dealing with remote files; default '/'.
|
void |
setTemporaryFileSuffix(String temporaryFileSuffix)
Set the temporary suffix to use when transferring files to the remote system.
|
void |
setTemporaryRemoteDirectoryExpression(Expression temporaryRemoteDirectoryExpression)
Set a temporary remote directory expression; used when transferring files to the remote
system.
|
void |
setUseTemporaryFileName(boolean useTemporaryFileName)
Set whether a temporary file name is used when sending files to the remote system.
|
protected final SessionFactory<F> sessionFactory
SessionFactory for acquiring remote file Sessions.public RemoteFileTemplate(SessionFactory<F> sessionFactory)
RemoteFileTemplate with the supplied session factory.sessionFactory - the session factory.public SessionFactory<F> getSessionFactory()
SessionFactory.public void setAutoCreateDirectory(boolean autoCreateDirectory)
autoCreateDirectory - true to create the directory.public void setRemoteFileSeparator(String remoteFileSeparator)
remoteFileSeparator - the separator.public final String getRemoteFileSeparator()
public void setRemoteDirectoryExpression(Expression remoteDirectoryExpression)
remoteDirectoryExpression - the remote directory expression.public void setTemporaryRemoteDirectoryExpression(Expression temporaryRemoteDirectoryExpression)
remoteDirectoryExpression.temporaryRemoteDirectoryExpression - the temporary remote directory expression.public void setFileNameExpression(Expression fileNameExpression)
get(Message, InputStreamCallback) method, with the message
being the root object of the evaluation.fileNameExpression - the file name expression.public String getTemporaryFileSuffix()
public boolean isUseTemporaryFileName()
public void setUseTemporaryFileName(boolean useTemporaryFileName)
useTemporaryFileName - true to use a temporary file name.setTemporaryFileSuffix(String)public void setFileNameGenerator(FileNameGenerator fileNameGenerator)
DefaultFileNameGenerator.fileNameGenerator - the file name generator.public void setCharset(String charset)
UTF-8.charset - the charset.public void setTemporaryFileSuffix(String temporaryFileSuffix)
temporaryFileSuffix - the suffixsetUseTemporaryFileName(boolean)public void setBeanFactory(BeanFactory beanFactory) throws BeansException
setBeanFactory in interface BeanFactoryAwareBeansExceptionpublic void afterPropertiesSet()
afterPropertiesSet in interface InitializingBeanpublic String append(Message<?> message)
RemoteFileOperationsappend in interface RemoteFileOperations<F>message - The message.public String append(Message<?> message, String subDirectory)
RemoteFileOperationsappend in interface RemoteFileOperations<F>message - The message.subDirectory - The sub directory.public String send(Message<?> message, FileExistsMode... mode)
RemoteFileOperationssend in interface RemoteFileOperations<F>message - The message.mode - See FileExistsMode (optional; default REPLACE). A
vararg is used to make the argument optional; only the first will be
used if more than one is provided.public String send(Message<?> message, String subDirectory, FileExistsMode... mode)
RemoteFileOperationssend in interface RemoteFileOperations<F>message - The message.subDirectory - The sub directory.mode - See FileExistsMode (optional; default REPLACE). A
vararg is used to make the argument optional; only the first will be
used if more than one is provided.public boolean exists(String path)
RemoteFileOperationsexists in interface RemoteFileOperations<F>path - The full path to the file.public boolean remove(String path)
RemoteFileOperationsremove in interface RemoteFileOperations<F>path - The full path to the file.public void rename(String fromPath, String toPath)
RemoteFileOperationsrename in interface RemoteFileOperations<F>fromPath - The current path.toPath - The new path.public boolean get(Message<?> message, InputStreamCallback callback)
RemoteFileOperationsget in interface RemoteFileOperations<F>message - The message which will be evaluated to generate the remote path.callback - the callback.setFileNameExpression(Expression)public boolean get(String remotePath, InputStreamCallback callback)
RemoteFileOperationsget in interface RemoteFileOperations<F>remotePath - The remote path to the file.callback - the callback.public F[] list(String path)
RemoteFileOperationslist in interface RemoteFileOperations<F>path - the path.public Session<F> getSession()
RemoteFileOperationsgetSession in interface RemoteFileOperations<F>public <T> T execute(SessionCallback<F,T> callback)
RemoteFileOperationsexecute in interface RemoteFileOperations<F>T - The type returned by
SessionCallback.doInSession(org.springframework.integration.file.remote.session.Session).callback - the SessionCallback.public <T> T invoke(RemoteFileOperations.OperationsCallback<F,T> action)
RemoteFileOperationsinvoke in interface RemoteFileOperations<F>T - the return type.action - the call back.RemoteFileOperations.OperationsCallback.doInOperations(RemoteFileOperations)public <T,C> T executeWithClient(ClientCallback<C,T> callback)
RemoteFileOperationsexecuteWithClient in interface RemoteFileOperations<F>T - The type returned by ClientCallback.doWithClient(Object).C - The type of the underlying client object.callback - the ClientCallback.