org.databene.benerator.dataset
Class AbstractDatasetGenerator<E>

java.lang.Object
  extended by org.databene.benerator.util.AbstractGenerator<P>
      extended by org.databene.benerator.wrapper.GeneratorWrapper<E,E>
          extended by org.databene.benerator.wrapper.GeneratorProxy<E>
              extended by org.databene.benerator.dataset.AbstractDatasetGenerator<E>
All Implemented Interfaces:
java.io.Closeable, DatasetBasedGenerator<E>, Generator<E>, org.databene.commons.Resettable, org.databene.commons.ThreadAware
Direct Known Subclasses:
CityGenerator, CompanyNameGenerator, CountryGenerator, WeightedDatasetCSVGenerator

public abstract class AbstractDatasetGenerator<E>
extends GeneratorProxy<E>
implements DatasetBasedGenerator<E>

Abstract implementation of the DatasetBasedGenerator interface. It is configured with 'nesting' and 'dataset'. Depending on the type of the dataset (atomic or composite), it initializes a delegate instance of a DatasetBasedGenerator, either a CompositeDatasetGenerator or an AtomicDatasetGenerator. For the dfinition of custom DatasetBasedGenerators, inherit from this class and implement the abstract method createAtomicDatasetGenerator(Dataset, boolean). All dataset recognition and handling and data generation will be handled automatically.

Created: 10.03.2011 10:44:58

Since:
0.6.6
Author:
Volker Bergmann

Field Summary
protected  java.lang.String datasetName
           
protected  boolean fallback
           
protected  java.lang.String nesting
           
protected  java.util.Set<java.lang.String> supportedDatasets
           
protected  double totalWeight
           
 
Fields inherited from class org.databene.benerator.wrapper.GeneratorProxy
generatedType
 
Fields inherited from class org.databene.benerator.util.AbstractGenerator
context, logger, state
 
Constructor Summary
AbstractDatasetGenerator(java.lang.Class<E> generatedType, java.lang.String nesting, java.lang.String datasetName, boolean fallback)
           
 
Method Summary
protected  AtomicDatasetGenerator<E> createAtomicDatasetGenerator(Dataset dataset, boolean required)
           
protected  CompositeDatasetGenerator<E> createCompositeDatasetGenerator(Dataset dataset, boolean required, boolean fallback)
           
protected  WeightedDatasetGenerator<E> createDatasetGenerator(Dataset dataset, boolean required, boolean fallback)
           
protected abstract  WeightedGenerator<E> createGeneratorForAtomicDataset(Dataset dataset)
           
 E generateForDataset(java.lang.String requestedDataset)
           
 java.lang.String getDataset()
           
 java.lang.String getNesting()
           
 DatasetBasedGenerator<E> getSource()
          Returns the source generator
 double getWeight()
           
 void init(GeneratorContext context)
           
protected  boolean isAtomic(Dataset dataset)
           
 java.lang.String randomDataset()
           
 void setDataset(java.lang.String datasetName)
           
 void setNesting(java.lang.String nesting)
           
 boolean supportsDataset(java.lang.String datasetName)
           
 java.lang.String toString()
           
 
Methods inherited from class org.databene.benerator.wrapper.GeneratorProxy
generate, getGeneratedType
 
Methods inherited from class org.databene.benerator.wrapper.GeneratorWrapper
close, equals, generateFromSource, getSourceWrapper, hashCode, isParallelizable, isThreadSafe, reset, setSource
 
Methods inherited from class org.databene.benerator.util.AbstractGenerator
assertInitialized, assertNotInitialized, getResultWrapper, wasInitialized
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.databene.benerator.Generator
close, generate, getGeneratedType, wasInitialized
 
Methods inherited from interface org.databene.commons.ThreadAware
isParallelizable, isThreadSafe
 
Methods inherited from interface org.databene.commons.Resettable
reset
 

Field Detail

nesting

protected java.lang.String nesting

datasetName

protected java.lang.String datasetName

supportedDatasets

protected java.util.Set<java.lang.String> supportedDatasets

totalWeight

protected double totalWeight

fallback

protected boolean fallback
Constructor Detail

AbstractDatasetGenerator

public AbstractDatasetGenerator(java.lang.Class<E> generatedType,
                                java.lang.String nesting,
                                java.lang.String datasetName,
                                boolean fallback)
Method Detail

supportsDataset

public boolean supportsDataset(java.lang.String datasetName)

getNesting

public java.lang.String getNesting()
Specified by:
getNesting in interface DatasetBasedGenerator<E>

setNesting

public void setNesting(java.lang.String nesting)

getDataset

public java.lang.String getDataset()
Specified by:
getDataset in interface DatasetBasedGenerator<E>

setDataset

public void setDataset(java.lang.String datasetName)

getWeight

public double getWeight()

init

public void init(GeneratorContext context)
Specified by:
init in interface Generator<E>
Overrides:
init in class GeneratorWrapper<E,E>

generateForDataset

public E generateForDataset(java.lang.String requestedDataset)
Specified by:
generateForDataset in interface DatasetBasedGenerator<E>

randomDataset

public java.lang.String randomDataset()

createDatasetGenerator

protected WeightedDatasetGenerator<E> createDatasetGenerator(Dataset dataset,
                                                             boolean required,
                                                             boolean fallback)

isAtomic

protected boolean isAtomic(Dataset dataset)

createCompositeDatasetGenerator

protected CompositeDatasetGenerator<E> createCompositeDatasetGenerator(Dataset dataset,
                                                                       boolean required,
                                                                       boolean fallback)

createAtomicDatasetGenerator

protected AtomicDatasetGenerator<E> createAtomicDatasetGenerator(Dataset dataset,
                                                                 boolean required)

createGeneratorForAtomicDataset

protected abstract WeightedGenerator<E> createGeneratorForAtomicDataset(Dataset dataset)

getSource

public DatasetBasedGenerator<E> getSource()
Description copied from class: GeneratorWrapper
Returns the source generator

Overrides:
getSource in class GeneratorWrapper<E,E>

toString

public java.lang.String toString()
Overrides:
toString in class GeneratorProxy<E>


Copyright © 2013. All Rights Reserved.