org.springframework.integration.file
Class FileWritingMessageHandler

java.lang.Object
  extended by org.springframework.integration.context.IntegrationObjectSupport
      extended by org.springframework.integration.handler.AbstractMessageHandler
          extended by org.springframework.integration.handler.AbstractReplyProducingMessageHandler
              extended by org.springframework.integration.file.FileWritingMessageHandler
All Implemented Interfaces:
BeanFactoryAware, BeanNameAware, InitializingBean, Ordered, NamedComponent, Orderable, MessageHandler, MessageProducer, TrackableComponent

public class FileWritingMessageHandler
extends AbstractReplyProducingMessageHandler

A MessageHandler implementation that writes the Message payload to a file. If the payload is a File object, it will copy the File to the specified destination directory. If the payload is a byte array or String, it will write it directly. Otherwise, the payload type is unsupported, and an Exception will be thrown.

If the 'deleteSourceFiles' flag is set to true, the original Files will be deleted. The default value for that flag is false. See the setDeleteSourceFiles(boolean) method javadoc for more information.

Other transformers may be useful to precede this handler. For example, any Serializable object payload can be converted into a byte array by the PayloadSerializingTransformer. Likewise, any Object can be converted to a String based on its toString() method by the ObjectToStringTransformer.


Field Summary
 
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
 
Constructor Summary
FileWritingMessageHandler(java.io.File destinationDirectory)
           
 
Method Summary
protected  java.lang.String getTemporaryFileSuffix()
           
protected  java.lang.Object handleRequestMessage(Message<?> requestMessage)
          Subclasses must implement this method to handle the request Message.
 void onInit()
          Subclasses may implement this for initialization logic.
 void setAutoCreateDirectory(boolean autoCreateDirectory)
          Specify whether to create the destination directory automatically if it does not yet exist upon initialization.
 void setCharset(java.lang.String charset)
          Set the charset name to use when writing a File from a String-based Message payload.
 void setDeleteSourceFiles(boolean deleteSourceFiles)
          Specify whether to delete source Files after writing to the destination directory.
 void setFileNameGenerator(FileNameGenerator fileNameGenerator)
          Provide the FileNameGenerator strategy to use when generating the destination file's name.
 void setTemporaryFileSuffix(java.lang.String temporaryFileSuffix)
           
 
Methods inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
getMessagingTemplate, handleMessageInternal, setChannelResolver, setOutputChannel, setRequiresReply, setSendTimeout, shouldCopyRequestHeaders
 
Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler
getComponentType, getOrder, handleMessage, setOrder, setShouldTrack
 
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, getBeanFactory, getComponentName, getConversionService, getTaskScheduler, setBeanFactory, setBeanName, setComponentName, setConversionService, setTaskScheduler, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.springframework.integration.context.NamedComponent
getComponentName
 

Constructor Detail

FileWritingMessageHandler

public FileWritingMessageHandler(java.io.File destinationDirectory)
Method Detail

setAutoCreateDirectory

public void setAutoCreateDirectory(boolean autoCreateDirectory)
Specify whether to create the destination directory automatically if it does not yet exist upon initialization. By default, this value is true. If set to false and the destination directory does not exist, an Exception will be thrown upon initialization.


setTemporaryFileSuffix

public void setTemporaryFileSuffix(java.lang.String temporaryFileSuffix)

getTemporaryFileSuffix

protected java.lang.String getTemporaryFileSuffix()

setFileNameGenerator

public void setFileNameGenerator(FileNameGenerator fileNameGenerator)
Provide the FileNameGenerator strategy to use when generating the destination file's name.


setDeleteSourceFiles

public void setDeleteSourceFiles(boolean deleteSourceFiles)
Specify whether to delete source Files after writing to the destination directory. The default is false. When set to true, it will only have an effect if the inbound Message has a File payload or a FileHeaders.ORIGINAL_FILE header value containing either a File instance or a String representing the original file path.


setCharset

public void setCharset(java.lang.String charset)
Set the charset name to use when writing a File from a String-based Message payload.


onInit

public final void onInit()
Description copied from class: IntegrationObjectSupport
Subclasses may implement this for initialization logic.

Overrides:
onInit in class AbstractReplyProducingMessageHandler

handleRequestMessage

protected java.lang.Object handleRequestMessage(Message<?> requestMessage)
Description copied from class: AbstractReplyProducingMessageHandler
Subclasses must implement this method to handle the request Message. The return value may be a Message, a MessageBuilder, or any plain Object. The base class will handle the final creation of a reply Message from any of those starting points. If the return value is null, the Message flow will end here.

Specified by:
handleRequestMessage in class AbstractReplyProducingMessageHandler