## org.hibernate.id.enhanced
Class OptimizerFactory.PooledOptimizer

    java.lang.Object
      org.hibernate.id.enhanced.OptimizerFactory.OptimizerSupport
          org.hibernate.id.enhanced.OptimizerFactory.PooledOptimizer

All Implemented Interfaces:
  Optimizer, OptimizerFactory.InitialValueAwareOptimizer

Enclosing class:
  OptimizerFactory

    public static class OptimizerFactory.PooledOptimizer

extends OptimizerFactory.OptimizerSupport
implements OptimizerFactory.InitialValueAwareOptimizer

Optimizer which uses a pool of values, storing the next low value of the range in the database.

Note that this optimizer works essentially the same as the `OptimizerFactory.HiLoOptimizer` except that here the bucket ranges are actually encoded into the database structures.

Note if you prefer that the database value be interpreted as the bottom end of our current range, then use the `OptimizerFactory.PooledLoOptimizer` strategy

Field Summary

Fields inherited from class org.hibernate.id.enhanced.OptimizerFactory.OptimizerSupport
`incrementSize, returnClass`

Constructor Summary
`OptimizerFactory.PooledOptimizer(Class returnClass, int incrementSize)`

Method Summary
`boolean` `applyIncrementSizeToSourceValues()` Are increments to be applied to the values stored in the underlying value source?
`Serializable` `generate(AccessCallback callback)` Generate an identifier value accounting for this specific optimization.
`IntegralDataTypeHolder` `getLastSourceValue()` A common means to access the last value obtained from the underlying source.
`IntegralDataTypeHolder` `getLastValue()` Getter for property 'lastValue'.
`void` `injectInitialValue(long initialValue)` Reports the user specified initial value to the optimizer.

Methods inherited from class org.hibernate.id.enhanced.OptimizerFactory.OptimizerSupport
`getIncrementSize, getReturnClass`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### OptimizerFactory.PooledOptimizer

    public OptimizerFactory.PooledOptimizer(Class returnClass,
                                            int incrementSize)

Method Detail

### generate

    public Serializable generate(AccessCallback callback)

  Description copied from interface: `Optimizer`
  Generate an identifier value accounting for this specific optimization.

  Specified by:
    `generate` in interface `Optimizer`
  Parameters:
    `callback` - Callback to access the underlying value source.
  Returns:
    The generated identifier value.

### getLastSourceValue

    public IntegralDataTypeHolder getLastSourceValue()

  Description copied from interface: `Optimizer`
  A common means to access the last value obtained from the underlying source. This is intended for testing purposes, since accessing the underlying database source directly is much more difficult.

  Specified by:
    `getLastSourceValue` in interface `Optimizer`
  Returns:
    The last value we obtained from the underlying source; null indicates we have not yet consulted with the source.

### applyIncrementSizeToSourceValues

    public boolean applyIncrementSizeToSourceValues()

  Description copied from interface: `Optimizer`
  Are increments to be applied to the values stored in the underlying value source?

  Specified by:
    `applyIncrementSizeToSourceValues` in interface `Optimizer`
  Returns:
    True if the values in the source are to be incremented according to the defined increment size; false otherwise, in which case the increment is totally an in memory construct.

### getLastValue

    public IntegralDataTypeHolder getLastValue()

  Getter for property 'lastValue'.

  Exposure intended for testing purposes.

  Returns:
    Value for property 'lastValue'.

### injectInitialValue

    public void injectInitialValue(long initialValue)

  Description copied from interface: `OptimizerFactory.InitialValueAwareOptimizer`
  Reports the user specified initial value to the optimizer.

  `-1` is used to indicate that the user did not specify.

  Specified by:
    `injectInitialValue` in interface `OptimizerFactory.InitialValueAwareOptimizer`
  Parameters:
    `initialValue` - The initial value specified by the user, or `-1` to indicate that the user did not specify.

Copyright © 2001-2012 Red Hat, Inc. All Rights Reserved.