Class ScriptItemProcessor<I,O>

java.lang.Object
org.springframework.batch.item.support.ScriptItemProcessor<I,O>
All Implemented Interfaces:
ItemProcessor<I,O>, org.springframework.beans.factory.InitializingBean

public class ScriptItemProcessor<I,O> extends 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
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    process(I item)
    Process the provided item, returning a potentially modified or new item for continued processing.
    void
    setItemBindingVariableName(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").
    void
    setScript(org.springframework.core.io.Resource resource)
    Sets the Resource location of the script to use.
    void
    setScriptEvaluator(org.springframework.scripting.ScriptEvaluator scriptEvaluator)
    Provides the ability to set a custom ScriptEvaluator implementation.
    void
    setScriptSource(String scriptSource, 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 Details

    • ScriptItemProcessor

      public ScriptItemProcessor()
  • Method Details

    • process

      @Nullable public O process(I item) throws 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. A null item will never reach this method because the only possible sources are:
      • an ItemReader (which indicates no more items)
      • a previous ItemProcessor in a composite processor (which indicates a filtered item)
      Specified by:
      process in interface ItemProcessor<I,O>
      Parameters:
      item - to be processed, never null.
      Returns:
      potentially modified or new item for continued processing, null if processing of the provided item should not continue.
      Throws:
      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(String scriptSource, 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(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 Exception
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      Throws:
      Exception