org.hibernate.id.enhanced
Class OptimizerFactory.PooledOptimizer

java.lang.Object
  extended by org.hibernate.id.enhanced.OptimizerFactory.OptimizerSupport
      extended by 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)
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()
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()
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)
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-2010 Red Hat, Inc. All Rights Reserved.