Package org.springframework.batch.core.converter

# Class DefaultJobParametersConverter

java.lang.Object
org.springframework.batch.core.converter.DefaultJobParametersConverter

All Implemented Interfaces:
  `JobParametersConverter`

public class DefaultJobParametersConverter extends Object implements JobParametersConverter
Converter for `JobParameters` instances using a simple naming convention for property keys. Key names that are prefixed with a - are considered non-identifying and will not contribute to the identity of a `JobInstance`. Key names ending with "(<type>)" where type is one of string, date, long are converted to the corresponding type. The default type is string. E.g.

     schedule.date(date)=2007/12/11
     department.id(long)=2345

The literal values are converted to the correct type using the default Spring strategies, augmented if necessary by the custom editors provided.
If you need to be able to parse and format local-specific dates and numbers, you can inject formatters (`setDateFormat(DateFormat)` and `setNumberFormat(NumberFormat)`).

Author:
  Dave Syer, Michael Minella, Mahmoud Ben Hassine

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `DATE_TYPE`
  `static final String`
  `LONG_TYPE`
  `static final String`
  `STRING_TYPE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DefaultJobParametersConverter()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `JobParameters`
  `getJobParameters(Properties props)`
  Check for suffix on keys and use those to decide how to convert the value.
  `Properties`
  `getProperties(JobParameters params)`
  Use the same suffixes to create properties (omitting the string suffix because it is the default).
  `void`
  `setDateFormat(DateFormat dateFormat)`
  Public setter for injecting a date format.
  `void`
  `setNumberFormat(NumberFormat numberFormat)`
  Public setter for the `NumberFormat`.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### DATE_TYPE

    public static final String DATE_TYPE
    See Also:
      - Constant Field Values

  - ### STRING_TYPE

    public static final String STRING_TYPE
    See Also:
      - Constant Field Values

  - ### LONG_TYPE

    public static final String LONG_TYPE
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### DefaultJobParametersConverter

    public DefaultJobParametersConverter()

- ## Method Details

  - ### getJobParameters

    public JobParameters getJobParameters(@Nullable Properties props)
    Check for suffix on keys and use those to decide how to convert the value.
    Specified by:
      `getJobParameters` in interface `JobParametersConverter`
    Parameters:
      `props` - the runtime parameters in the form of String literals.
    Returns:
      a `JobParameters` properties converted to the correct types.
    Throws:
      `IllegalArgumentException` - if a number or date is passed in that cannot be parsed, or cast to the correct type.
    See Also:
      - `JobParametersConverter.getJobParameters(java.util.Properties)`

  - ### getProperties

    public Properties getProperties(@Nullable JobParameters params)
    Use the same suffixes to create properties (omitting the string suffix because it is the default). Non-identifying parameters will be prefixed with the `NON_IDENTIFYING_FLAG`. However, since parameters are identifying by default, they will not be prefixed with the `IDENTIFYING_FLAG`.
    Specified by:
      `getProperties` in interface `JobParametersConverter`
    Parameters:
      `params` - the `JobParameters` instance to be converted.
    Returns:
      a representation of the parameters as properties
    See Also:
      - `JobParametersConverter.getProperties(org.springframework.batch.core.JobParameters)`

  - ### setDateFormat

    public void setDateFormat(DateFormat dateFormat)
    Public setter for injecting a date format.
    Parameters:
      `dateFormat` - a `DateFormat`, defaults to "yyyy/MM/dd"

  - ### setNumberFormat

    public void setNumberFormat(NumberFormat numberFormat)
    Public setter for the `NumberFormat`. Used to parse longs and doubles, so must not contain decimal place (e.g. use "#" or "#,###").
    Parameters:
      `numberFormat` - the `NumberFormat` to set