Class ScriptItemProcessor<I,​O>

  • All Implemented Interfaces:
    ItemProcessor<I,​O>, org.springframework.beans.factory.InitializingBean

    public class ScriptItemProcessor<I,​O>
    extends java.lang.Object
    implements ItemProcessor<I,​O>, org.springframework.beans.factory.InitializingBean

    ItemProcessor implementation that passes the current item to process to the provided script. Exposes the current item for processing via the ITEM_BINDING_VARIABLE_NAME key name ("item"). A custom key name can be set by invoking: setItemBindingVariableName(java.lang.String) with the desired key name. The thread safety of this ItemProcessor depends on the implementation of the ScriptEvaluator used.

    Since:
    3.0
    Author:
    Chris Schaefer
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voidafterPropertiesSet() 
      Oprocess​(I item)
      Process the provided item, returning a potentially modified or new item for continued processing.
      voidsetItemBindingVariableName​(java.lang.String itemBindingVariableName)
      Provides the ability to change the key name that scripts use to obtain the current item to process if the variable represented by: ITEM_BINDING_VARIABLE_NAME is not suitable ("item").
      voidsetScript​(org.springframework.core.io.Resource resource)
      Sets the Resource location of the script to use.
      voidsetScriptEvaluator​(org.springframework.scripting.ScriptEvaluator scriptEvaluator)
      Provides the ability to set a custom ScriptEvaluator implementation.
      voidsetScriptSource​(java.lang.String scriptSource, java.lang.String language)
      Sets the provided String as the script source code to use.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ScriptItemProcessor

        public ScriptItemProcessor()
    • Method Detail

      • process

        public O process​(I item)
                  throws java.lang.Exception
        Description copied from interface: ItemProcessor
        Process the provided item, returning a potentially modified or new item for continued processing. If the returned result is null, it is assumed that processing of the item should not continue.
        Specified by:
        process in interface ItemProcessor<I,​O>
        Parameters:
        item - to be processed
        Returns:
        potentially modified or new item for continued processing, null if processing of the provided item should not continue.
        Throws:
        java.lang.Exception - thrown if exception occurs during processing.
      • setScript

        public void setScript​(org.springframework.core.io.Resource resource)

        Sets the Resource location of the script to use. The script language will be deduced from the filename extension.

        Parameters:
        resource - the Resource location of the script to use.
      • setScriptSource

        public void setScriptSource​(java.lang.String scriptSource,
                                    java.lang.String language)

        Sets the provided String as the script source code to use.

        Parameters:
        scriptSource - the String form of the script source code to use.
        language - the language of the script.
      • setItemBindingVariableName

        public void setItemBindingVariableName​(java.lang.String itemBindingVariableName)

        Provides the ability to change the key name that scripts use to obtain the current item to process if the variable represented by: ITEM_BINDING_VARIABLE_NAME is not suitable ("item").

        Parameters:
        itemBindingVariableName - the desired binding variable name
      • setScriptEvaluator

        public void setScriptEvaluator​(org.springframework.scripting.ScriptEvaluator scriptEvaluator)

        Provides the ability to set a custom ScriptEvaluator implementation. If not set, a StandardScriptEvaluator will be used by default.

        Parameters:
        scriptEvaluator - the ScriptEvaluator to use
      • afterPropertiesSet

        public void afterPropertiesSet()
                                throws java.lang.Exception
        Specified by:
        afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
        Throws:
        java.lang.Exception