org.springframework.jdbc.support.incrementer

## Class AbstractDataFieldMaxValueIncrementer

- java.lang.Object
- - org.springframework.jdbc.support.incrementer.AbstractDataFieldMaxValueIncrementer

- All Implemented Interfaces:
    InitializingBean, DataFieldMaxValueIncrementer
  Direct Known Subclasses:
    AbstractColumnMaxValueIncrementer, AbstractSequenceMaxValueIncrementer

      public abstract class AbstractDataFieldMaxValueIncrementer
      extends Object
      implements DataFieldMaxValueIncrementer, InitializingBean

  Base implementation of `DataFieldMaxValueIncrementer` that delegates to a single `getNextKey()` template method that returns a `long`. Uses longs for String values, padding with zeroes if required.
  Author:
    Dmitriy Kopylenko, Juergen Hoeller, Jean-Pierre Pawlak, Juergen Hoeller

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `paddingLength` The length to which a string result should be pre-pended with zeroes

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractDataFieldMaxValueIncrementer()` Default constructor for bean property style usage.
    `AbstractDataFieldMaxValueIncrementer(DataSource dataSource, String incrementerName)` Convenience constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `afterPropertiesSet()` Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).
    `DataSource` | `getDataSource()` Return the data source to retrieve the value from.
    `String` | `getIncrementerName()` Return the name of the sequence/table.
    `protected abstract long` | `getNextKey()` Determine the next key to use, as a long.
    `int` | `getPaddingLength()` Return the padding length for String values.
    `int` | `nextIntValue()` Increment the data store field's max value as int.
    `long` | `nextLongValue()` Increment the data store field's max value as long.
    `String` | `nextStringValue()` Increment the data store field's max value as String.
    `void` | `setDataSource(DataSource dataSource)` Set the data source to retrieve the value from.
    `void` | `setIncrementerName(String incrementerName)` Set the name of the sequence/table.
    `void` | `setPaddingLength(int paddingLength)` Set the padding length, i.e.

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

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

- - ### Field Detail

    - #### paddingLength

          protected int paddingLength

      The length to which a string result should be pre-pended with zeroes

  - ### Constructor Detail

    - #### AbstractDataFieldMaxValueIncrementer

          public AbstractDataFieldMaxValueIncrementer()

      Default constructor for bean property style usage.
      See Also:
        `setDataSource(javax.sql.DataSource)`, `setIncrementerName(java.lang.String)`

    - #### AbstractDataFieldMaxValueIncrementer

          public AbstractDataFieldMaxValueIncrementer(DataSource dataSource,
                                              String incrementerName)

      Convenience constructor.
      Parameters:
        `dataSource` - the DataSource to use
        `incrementerName` - the name of the sequence/table to use

  - ### Method Detail

    - #### setDataSource

          public void setDataSource(DataSource dataSource)

      Set the data source to retrieve the value from.

    - #### getDataSource

          public DataSource getDataSource()

      Return the data source to retrieve the value from.

    - #### setIncrementerName

          public void setIncrementerName(String incrementerName)

      Set the name of the sequence/table.

    - #### getIncrementerName

          public String getIncrementerName()

      Return the name of the sequence/table.

    - #### setPaddingLength

          public void setPaddingLength(int paddingLength)

      Set the padding length, i.e. the length to which a string result should be pre-pended with zeroes.

    - #### getPaddingLength

          public int getPaddingLength()

      Return the padding length for String values.

    - #### afterPropertiesSet

          public void afterPropertiesSet()

      Description copied from interface: `InitializingBean`
      Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).

      This method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.

      Specified by:
        `afterPropertiesSet` in interface `InitializingBean`

    - #### nextIntValue

          public int nextIntValue()
                           throws DataAccessException

      Description copied from interface: `DataFieldMaxValueIncrementer`
      Increment the data store field's max value as int.
      Specified by:
        `nextIntValue` in interface `DataFieldMaxValueIncrementer`
      Returns:
        int next data store value such as max + 1
      Throws:
        `DataAccessException` - in case of errors

    - #### nextLongValue

          public long nextLongValue()
                             throws DataAccessException

      Description copied from interface: `DataFieldMaxValueIncrementer`
      Increment the data store field's max value as long.
      Specified by:
        `nextLongValue` in interface `DataFieldMaxValueIncrementer`
      Returns:
        int next data store value such as max + 1
      Throws:
        `DataAccessException` - in case of errors

    - #### nextStringValue

          public String nextStringValue()
                                 throws DataAccessException

      Description copied from interface: `DataFieldMaxValueIncrementer`
      Increment the data store field's max value as String.
      Specified by:
        `nextStringValue` in interface `DataFieldMaxValueIncrementer`
      Returns:
        next data store value such as max + 1
      Throws:
        `DataAccessException` - in case of errors

    - #### getNextKey

          protected abstract long getNextKey()

      Determine the next key to use, as a long.
      Returns:
        the key to use as a long. It will eventually be converted later in another format by the public concrete methods of this class.