F
- the Type that represents a remote file.public abstract class AbstractInboundFileSynchronizer<F> extends java.lang.Object implements InboundFileSynchronizer, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.InitializingBean, java.io.Closeable
The implementation should run through any configured
FileListFilter
s to
ensure the file entry is acceptable.
Modifier and Type | Field and Description |
---|---|
protected static org.springframework.expression.ExpressionParser |
EXPRESSION_PARSER |
protected org.apache.commons.logging.Log |
logger |
Constructor and Description |
---|
AbstractInboundFileSynchronizer(SessionFactory<F> sessionFactory)
Create a synchronizer with the
SessionFactory used to acquire Session instances. |
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet() |
void |
close() |
protected boolean |
copyFileToLocalDirectory(java.lang.String remoteDirectoryPath,
F remoteFile,
java.io.File localDirectory,
Session<F> session) |
protected void |
doInit()
Subclasses can override to perform initialization - called from
InitializingBean.afterPropertiesSet() . |
protected void |
doSetFilter(FileListFilter<F> filter) |
protected void |
doSetRemoteDirectoryExpression(org.springframework.expression.Expression remoteDirectoryExpression) |
protected void |
evaluateRemoteDirectory() |
protected java.util.List<F> |
filterFiles(F[] files) |
protected java.util.Comparator<F> |
getComparator() |
protected abstract java.lang.String |
getFilename(F file) |
protected abstract long |
getModified(F file) |
protected java.lang.String |
getTemporaryFileSuffix() |
protected abstract boolean |
isFile(F file) |
protected void |
rollbackFromFileToListEnd(java.util.List<F> filteredFiles,
F file) |
void |
setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) |
void |
setComparator(java.util.Comparator<F> comparator)
Set a comparator to sort the retrieved list of
F (the Type that represents
the remote file) prior to applying filters and max fetch size. |
void |
setDeleteRemoteFiles(boolean deleteRemoteFiles)
Set to true to enable deletion of remote files after successful transfer.
|
void |
setFilter(FileListFilter<F> filter)
Set the filter to be applied to the remote files before transferring.
|
void |
setLocalFilenameGeneratorExpression(org.springframework.expression.Expression localFilenameGeneratorExpression)
Set an expression used to determine the local file name.
|
void |
setLocalFilenameGeneratorExpressionString(java.lang.String localFilenameGeneratorExpression)
Set an expression used to determine the local file name.
|
void |
setPreserveTimestamp(boolean preserveTimestamp)
Set to true to enable the preservation of the remote file timestamp when
transferring.
|
void |
setRemoteDirectory(java.lang.String remoteDirectory)
Specify the full path to the remote directory.
|
void |
setRemoteDirectoryExpression(org.springframework.expression.Expression remoteDirectoryExpression)
Specify an expression that evaluates to the full path to the remote directory.
|
void |
setRemoteDirectoryExpressionString(java.lang.String remoteDirectoryExpression)
Specify an expression that evaluates to the full path to the remote directory.
|
void |
setRemoteFileSeparator(java.lang.String remoteFileSeparator) |
void |
setTemporaryFileSuffix(java.lang.String temporaryFileSuffix)
Set a temporary file suffix to be used while transferring files.
|
void |
synchronizeToLocalDirectory(java.io.File localDirectory)
Synchronize all available files to the local directory;
|
void |
synchronizeToLocalDirectory(java.io.File localDirectory,
int maxFetchSize)
Synchronize up to maxFetchSize files to the local directory;
|
protected static final org.springframework.expression.ExpressionParser EXPRESSION_PARSER
protected final org.apache.commons.logging.Log logger
public AbstractInboundFileSynchronizer(SessionFactory<F> sessionFactory)
SessionFactory
used to acquire Session
instances.sessionFactory
- The session factory.protected java.util.Comparator<F> getComparator()
public void setComparator(java.util.Comparator<F> comparator)
F
(the Type that represents
the remote file) prior to applying filters and max fetch size.comparator
- the comparator.public void setRemoteFileSeparator(java.lang.String remoteFileSeparator)
remoteFileSeparator
- the remote file separator.RemoteFileTemplate.setRemoteFileSeparator(String)
public void setLocalFilenameGeneratorExpression(org.springframework.expression.Expression localFilenameGeneratorExpression)
localFilenameGeneratorExpression
- the expression.public void setLocalFilenameGeneratorExpressionString(java.lang.String localFilenameGeneratorExpression)
localFilenameGeneratorExpression
- the expression.setRemoteDirectoryExpression(Expression)
public void setTemporaryFileSuffix(java.lang.String temporaryFileSuffix)
temporaryFileSuffix
- the file suffix.public void setRemoteDirectory(java.lang.String remoteDirectory)
remoteDirectory
- The remote directory.public void setRemoteDirectoryExpression(org.springframework.expression.Expression remoteDirectoryExpression)
remoteDirectoryExpression
- The remote directory expression.public void setRemoteDirectoryExpressionString(java.lang.String remoteDirectoryExpression)
remoteDirectoryExpression
- The remote directory expression.setRemoteDirectoryExpression(Expression)
protected final void doSetRemoteDirectoryExpression(org.springframework.expression.Expression remoteDirectoryExpression)
public void setFilter(FileListFilter<F> filter)
filter
- the file list filter.protected final void doSetFilter(FileListFilter<F> filter)
public void setDeleteRemoteFiles(boolean deleteRemoteFiles)
deleteRemoteFiles
- true to delete.public void setPreserveTimestamp(boolean preserveTimestamp)
preserveTimestamp
- true to preserve.public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) throws org.springframework.beans.BeansException
setBeanFactory
in interface org.springframework.beans.factory.BeanFactoryAware
org.springframework.beans.BeansException
public final void afterPropertiesSet()
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
protected void doInit()
InitializingBean.afterPropertiesSet()
.protected java.lang.String getTemporaryFileSuffix()
public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
java.io.IOException
public void synchronizeToLocalDirectory(java.io.File localDirectory)
InboundFileSynchronizer
synchronizeToLocalDirectory
in interface InboundFileSynchronizer
localDirectory
- the directory.public void synchronizeToLocalDirectory(java.io.File localDirectory, int maxFetchSize)
InboundFileSynchronizer
synchronizeToLocalDirectory
in interface InboundFileSynchronizer
localDirectory
- the directory.maxFetchSize
- the maximum files to fetch.protected void rollbackFromFileToListEnd(java.util.List<F> filteredFiles, F file)
protected boolean copyFileToLocalDirectory(java.lang.String remoteDirectoryPath, F remoteFile, java.io.File localDirectory, Session<F> session) throws java.io.IOException
java.io.IOException
protected void evaluateRemoteDirectory()
protected abstract boolean isFile(F file)
protected abstract java.lang.String getFilename(F file)
protected abstract long getModified(F file)