T - The type of object to be generated by this arbitrary@API(status=MAINTAINED,
     since="1.4.0")
public abstract class ArbitraryDecorator<T>
extends java.lang.Object
implements java.lang.Cloneable, Arbitrary<T>
Arbitrary, 
ArbitrariesArbitrary.ArbitraryFacade| Constructor and Description | 
|---|
ArbitraryDecorator()  | 
| Modifier and Type | Method and Description | 
|---|---|
protected abstract Arbitrary<T> | 
arbitrary()
Implement by calling jqwik's standard DSL for building arbitraries. 
 | 
EdgeCases<T> | 
edgeCases(int maxEdgeCases)  | 
java.util.Optional<ExhaustiveGenerator<T>> | 
exhaustive(long maxNumberOfSamples)
Create the exhaustive generator for an arbitrary. 
 | 
RandomGenerator<T> | 
generator(int genSize)
Create the random generator for an arbitrary. 
 | 
RandomGenerator<T> | 
generatorWithEmbeddedEdgeCases(int genSize)
Create the random generator for an arbitrary where the embedded generators,
 if there are any, also generate edge cases. 
 | 
boolean | 
isGeneratorMemoizable()  | 
java.lang.String | 
toString()  | 
protected <A extends Arbitrary<?>> | 
typedClone()
Use to clone current instance with its interface type 
 | 
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitallValues, array, asGeneric, collect, dontShrink, edgeCases, edgeCases, exhaustive, filter, filter, fixGenSize, flatMap, forEachValue, generator, ignoreException, ignoreException, ignoreExceptions, ignoreExceptions, injectDuplicates, injectNull, iterator, list, map, optional, optional, sample, sampleStream, set, stream, tuple1, tuple2, tuple3, tuple4, tuple5, withoutEdgeCasesprotected abstract Arbitrary<T> arbitrary()
public RandomGenerator<T> generator(int genSize)
ArbitraryStarting with version 1.4.0 the returned generator should no longer include edge cases explicitly since those will be injected in Arbitrary.generator(int, boolean)
generator in interface Arbitrary<T>genSize - a very unspecific configuration parameter that can be used
                to influence the configuration and behaviour of a random generator
                if and only if the generator wants to be influenced.
                Many generators are independent of genSize.
                
                The default value of genSize is the number of tries configured
                for a property. Use Arbitrary.fixGenSize(int) to fix
                the parameter for a given arbitrary.
public RandomGenerator<T> generatorWithEmbeddedEdgeCases(int genSize)
ArbitraryOverride only if there are any embedded arbitraries / generators, e.g. a container using an element generator
generatorWithEmbeddedEdgeCases in interface Arbitrary<T>genSize - See Arbitrary.generator(int) about meaning of this parameterpublic java.util.Optional<ExhaustiveGenerator<T>> exhaustive(long maxNumberOfSamples)
ArbitrarymaxNumberOfSamples this can take a long time.
 This method must be overridden in all arbitraries that support exhaustive
 generation.exhaustive in interface Arbitrary<T>maxNumberOfSamples - The maximum number of samples considered.
                           If during generation it becomes clear that this
                           number will be exceeded generation stops.public boolean isGeneratorMemoizable()
isGeneratorMemoizable in interface Arbitrary<T>public java.lang.String toString()
toString in class java.lang.Objectprotected <A extends Arbitrary<?>> A typedClone()
A - The special interface type of this arbitrary