org.databene.platform.db
Class CachedSequenceGenerator

java.lang.Object
  extended by org.databene.benerator.util.AbstractGenerator<E>
      extended by org.databene.benerator.util.AbstractNonNullGenerator<E>
          extended by org.databene.benerator.util.ThreadSafeNonNullGenerator<java.lang.Long>
              extended by org.databene.platform.db.AbstractSequenceGenerator
                  extended by org.databene.platform.db.CachedSequenceGenerator
All Implemented Interfaces:
java.io.Closeable, Generator<java.lang.Long>, NonNullGenerator<java.lang.Long>, org.databene.commons.Resettable, org.databene.commons.ThreadAware

public class CachedSequenceGenerator
extends AbstractSequenceGenerator

Reads the current value of a sequence on first invocation, increases the value locally on subsequent calls and finally (on close()) updates the DB sequence with the local value. This saves database round trips but limits execution to a single client.

Created: 11.11.2009 18:35:26

Since:
0.6.0
Author:
Volker Bergmann

Field Summary
 
Fields inherited from class org.databene.platform.db.AbstractSequenceGenerator
database, logger, name
 
Fields inherited from class org.databene.benerator.util.AbstractGenerator
context, state
 
Constructor Summary
CachedSequenceGenerator()
           
CachedSequenceGenerator(java.lang.String name, DBSystem database)
           
 
Method Summary
 void close()
          Closes the generator.
 java.lang.Long generate()
           
 void init(GeneratorContext context)
           
 
Methods inherited from class org.databene.platform.db.AbstractSequenceGenerator
fetchSequenceValue, getDatabase, getGeneratedType, getName, setDatabase, setName
 
Methods inherited from class org.databene.benerator.util.ThreadSafeNonNullGenerator
isParallelizable, isThreadSafe
 
Methods inherited from class org.databene.benerator.util.AbstractNonNullGenerator
generate
 
Methods inherited from class org.databene.benerator.util.AbstractGenerator
assertInitialized, assertNotInitialized, getResultWrapper, reset, toString, wasInitialized
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.databene.benerator.Generator
wasInitialized
 
Methods inherited from interface org.databene.commons.Resettable
reset
 

Constructor Detail

CachedSequenceGenerator

public CachedSequenceGenerator()

CachedSequenceGenerator

public CachedSequenceGenerator(java.lang.String name,
                               DBSystem database)
Method Detail

init

public void init(GeneratorContext context)
Specified by:
init in interface Generator<java.lang.Long>
Overrides:
init in class AbstractSequenceGenerator

generate

public java.lang.Long generate()
Specified by:
generate in interface NonNullGenerator<java.lang.Long>
Specified by:
generate in class AbstractNonNullGenerator<java.lang.Long>

close

public void close()
Description copied from interface: Generator
Closes the generator. After invocation the state is unavailable.

Specified by:
close in interface java.io.Closeable
Specified by:
close in interface Generator<java.lang.Long>
Overrides:
close in class AbstractGenerator<java.lang.Long>


Copyright © 2013. All Rights Reserved.