org.databene.benerator.factory
Class GeneratorFactory

java.lang.Object
  extended by org.databene.benerator.factory.GeneratorFactory
Direct Known Subclasses:
EquivalenceGeneratorFactory, SerialGeneratorFactory, StochasticGeneratorFactory

public abstract class GeneratorFactory
extends java.lang.Object

Provides factory methods for generators.

Created: 23.08.2006 21:44:27

Since:
0.1
Author:
Volker Bergmann

Field Summary
protected  DefaultsProvider defaultsProvider
           
 
Constructor Summary
protected GeneratorFactory()
           
protected GeneratorFactory(DefaultsProvider defaultsProvider)
           
 
Method Summary
abstract  Generator<?> applyNullSettings(Generator<?> source, java.lang.Boolean nullable, java.lang.Double nullQuota)
           
abstract
<T> Generator<T>
createAlternativeGenerator(java.lang.Class<T> targetType, Generator<T>[] sources, Uniqueness uniqueness)
           
 Generator<java.lang.Boolean> createBooleanGenerator(java.lang.Double trueQuota)
          Creates a generator for boolean values with a trueQuota [0-1]
 NonNullGenerator<java.lang.Character> createCharacterGenerator(java.util.Set<java.lang.Character> characters)
          Creates a character generator that creates values from a collection of characters
 Generator<java.lang.Character> createCharacterGenerator(java.lang.String pattern, java.util.Locale locale, boolean unique)
          Creates a Character generator that creates characters of a Locale which match a regular expression.
abstract
<T> Generator<T[]>
createCompositeArrayGenerator(java.lang.Class<T> componentType, Generator<T>[] sources, Uniqueness uniqueness)
          Creates a generator that reads products of an array of generators and combines them in an array.
abstract  NonNullGenerator<java.lang.String> createCompositeStringGenerator(GeneratorProvider<?> partGeneratorProvider, int minParts, int maxParts, Uniqueness uniqueness)
           
 Generator<java.util.Date> createDateGenerator(java.util.Date min, java.util.Date max, long granularity, Distribution distribution)
          Creates a Date generator that generates random dates.
abstract
<T> Generator<T>
createFromWeightedLiteralList(java.lang.String valueSpec, java.lang.Class<T> targetType, Distribution distribution, boolean unique)
           
abstract
<T> Generator<T>
createNullGenerator(java.lang.Class<T> generatedType)
           
<T extends java.lang.Number>
NonNullGenerator<T>
createNumberGenerator(java.lang.Class<T> numberType, T min, java.lang.Boolean minInclusive, T max, java.lang.Boolean maxInclusive, T granularity, Distribution distribution, Uniqueness uniqueness)
          Creates a generator for numbers.
 NonNullGenerator<java.lang.String> createRegexStringGenerator(java.lang.String pattern, int minLength, java.lang.Integer maxLength, Uniqueness uniqueness)
          Creates a generator that produces Strings which match a regular expression in a locale
abstract
<T> Generator<T>
createSampleGenerator(java.util.Collection<T> values, java.lang.Class<T> generatedType, boolean unique)
           
abstract
<T> Generator<T>
createSingleValueGenerator(T value, boolean unique)
          Creates a generator that returns a single value.
abstract  NonNullGenerator<java.lang.String> createStringGenerator(java.util.Set<java.lang.Character> chars, java.lang.Integer minLength, java.lang.Integer maxLength, int lengthGranularity, Distribution lengthDistribution, Uniqueness uniqueness)
           
 Generator<java.lang.String> createStringGenerator(java.lang.String pattern, java.util.Locale locale, java.lang.Integer minLength, java.lang.Integer maxLength, int lengthGranularity, Distribution lengthDistribution, Uniqueness uniqueness)
           
<T> Generator<T>
createWeightedSampleGenerator(java.util.Collection<org.databene.script.WeightedSample<T>> samples, java.lang.Class<T> targetType)
          Creates a generator that chooses from a set of samples, using an individual weight for each sample.
abstract  Distribution defaultDistribution(Uniqueness uniqueness)
           
protected abstract  Distribution defaultLengthDistribution(Uniqueness uniqueness, boolean required)
           
 java.util.Set<java.lang.Character> defaultSubSet(java.util.Set<java.lang.Character> characters)
           
protected abstract  double defaultTrueQuota()
           
protected abstract  boolean defaultUnique()
           
 DefaultsProvider getDefaultsProvider()
           
 void setDefaultsProvider(DefaultsProvider defaultsProvider)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

defaultsProvider

protected DefaultsProvider defaultsProvider
Constructor Detail

GeneratorFactory

protected GeneratorFactory()

GeneratorFactory

protected GeneratorFactory(DefaultsProvider defaultsProvider)
Method Detail

getDefaultsProvider

public DefaultsProvider getDefaultsProvider()

setDefaultsProvider

public void setDefaultsProvider(DefaultsProvider defaultsProvider)

createAlternativeGenerator

public abstract <T> Generator<T> createAlternativeGenerator(java.lang.Class<T> targetType,
                                                            Generator<T>[] sources,
                                                            Uniqueness uniqueness)

createBooleanGenerator

public Generator<java.lang.Boolean> createBooleanGenerator(java.lang.Double trueQuota)
Creates a generator for boolean values with a trueQuota [0-1]

Parameters:
trueQuota - a value from 0 to 1, indicating the quota of true values to generate among the non-null values
Returns:
a Boolean generator of the desired characteristics

createNumberGenerator

public <T extends java.lang.Number> NonNullGenerator<T> createNumberGenerator(java.lang.Class<T> numberType,
                                                                              T min,
                                                                              java.lang.Boolean minInclusive,
                                                                              T max,
                                                                              java.lang.Boolean maxInclusive,
                                                                              T granularity,
                                                                              Distribution distribution,
                                                                              Uniqueness uniqueness)
Creates a generator for numbers.

Parameters:
numberType - the number type, e.g. java.lang.Integer
min - the minimum number to generate
max - the maximum number to generate
granularity - the resolution to use in number generation.
distribution - The Sequence of WeightFunction to use for generation
Returns:
a Number generator of the desired characteristics

createFromWeightedLiteralList

public abstract <T> Generator<T> createFromWeightedLiteralList(java.lang.String valueSpec,
                                                               java.lang.Class<T> targetType,
                                                               Distribution distribution,
                                                               boolean unique)

createSampleGenerator

public abstract <T> Generator<T> createSampleGenerator(java.util.Collection<T> values,
                                                       java.lang.Class<T> generatedType,
                                                       boolean unique)

createWeightedSampleGenerator

public <T> Generator<T> createWeightedSampleGenerator(java.util.Collection<org.databene.script.WeightedSample<T>> samples,
                                                      java.lang.Class<T> targetType)
Creates a generator that chooses from a set of samples, using an individual weight for each sample.

Parameters:
samples - A collection of sample values
Returns:
a generator of the desired characteristics

createDateGenerator

public Generator<java.util.Date> createDateGenerator(java.util.Date min,
                                                     java.util.Date max,
                                                     long granularity,
                                                     Distribution distribution)
Creates a Date generator that generates random dates.

Parameters:
min - the earliest Date to generate
max - the latest Date to generate
granularity - the time resolution of dates in milliseconds
distribution - the distribution to use
Returns:
a generator of the desired characteristics

createCharacterGenerator

public Generator<java.lang.Character> createCharacterGenerator(java.lang.String pattern,
                                                               java.util.Locale locale,
                                                               boolean unique)
Creates a Character generator that creates characters of a Locale which match a regular expression.

Parameters:
pattern - the regular expression that indicates the available range of values. If null, any letters of the specified locale will be used
locale - the locale to use for '\w' evaluation
unique - flag indicating if character generation should be unique
Returns:
a generator of the desired characteristics

createCharacterGenerator

public NonNullGenerator<java.lang.Character> createCharacterGenerator(java.util.Set<java.lang.Character> characters)
Creates a character generator that creates values from a collection of characters

Parameters:
characters - the set of characters to choose from
Returns:
a generator of the desired characteristics

createStringGenerator

public Generator<java.lang.String> createStringGenerator(java.lang.String pattern,
                                                         java.util.Locale locale,
                                                         java.lang.Integer minLength,
                                                         java.lang.Integer maxLength,
                                                         int lengthGranularity,
                                                         Distribution lengthDistribution,
                                                         Uniqueness uniqueness)

createStringGenerator

public abstract NonNullGenerator<java.lang.String> createStringGenerator(java.util.Set<java.lang.Character> chars,
                                                                         java.lang.Integer minLength,
                                                                         java.lang.Integer maxLength,
                                                                         int lengthGranularity,
                                                                         Distribution lengthDistribution,
                                                                         Uniqueness uniqueness)

createCompositeStringGenerator

public abstract NonNullGenerator<java.lang.String> createCompositeStringGenerator(GeneratorProvider<?> partGeneratorProvider,
                                                                                  int minParts,
                                                                                  int maxParts,
                                                                                  Uniqueness uniqueness)

createRegexStringGenerator

public NonNullGenerator<java.lang.String> createRegexStringGenerator(java.lang.String pattern,
                                                                     int minLength,
                                                                     java.lang.Integer maxLength,
                                                                     Uniqueness uniqueness)
                                                              throws org.databene.commons.ConfigurationError
Creates a generator that produces Strings which match a regular expression in a locale

Parameters:
pattern - the regular expression
minLength - the minimum length of the products
maxLength - the maximum length of the products
Returns:
a generator of the desired characteristics
Throws:
org.databene.commons.ConfigurationError

createCompositeArrayGenerator

public abstract <T> Generator<T[]> createCompositeArrayGenerator(java.lang.Class<T> componentType,
                                                                 Generator<T>[] sources,
                                                                 Uniqueness uniqueness)
Creates a generator that reads products of an array of generators and combines them in an array.

Parameters:
sources - the source generators
Returns:
a generator of the desired characteristics

createSingleValueGenerator

public abstract <T> Generator<T> createSingleValueGenerator(T value,
                                                            boolean unique)
Creates a generator that returns a single value.

Parameters:
value - the value to return
Returns:
a generator that returns a constant value.

applyNullSettings

public abstract Generator<?> applyNullSettings(Generator<?> source,
                                               java.lang.Boolean nullable,
                                               java.lang.Double nullQuota)

createNullGenerator

public abstract <T> Generator<T> createNullGenerator(java.lang.Class<T> generatedType)

defaultSubSet

public java.util.Set<java.lang.Character> defaultSubSet(java.util.Set<java.lang.Character> characters)

defaultUnique

protected abstract boolean defaultUnique()

defaultTrueQuota

protected abstract double defaultTrueQuota()

defaultDistribution

public abstract Distribution defaultDistribution(Uniqueness uniqueness)

defaultLengthDistribution

protected abstract Distribution defaultLengthDistribution(Uniqueness uniqueness,
                                                          boolean required)


Copyright © 2013. All Rights Reserved.