Package com.google.common.testing
Class FreshValueGenerator
- java.lang.Object
-
- com.google.common.testing.FreshValueGenerator
-
class FreshValueGenerator extends java.lang.Object
Generates fresh instances of types that are different from each other (if possible).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static interface
FreshValueGenerator.Empty
Annotates a method to generate the "empty" instance of a collection.private class
FreshValueGenerator.FreshInvocationHandler
private static interface
FreshValueGenerator.Generates
Annotates a method to be the instance generator of a certain type.
-
Field Summary
Fields Modifier and Type Field Description private static ImmutableMap<java.lang.Class<?>,java.lang.reflect.Method>
EMPTY_GENERATORS
private java.util.Map<java.lang.reflect.Type,java.lang.Integer>
emptyInstanceGenerated
The freshness level at which the@Empty
annotated method was invoked to generate instance.private java.util.concurrent.atomic.AtomicInteger
freshness
private static ImmutableMap<java.lang.Class<?>,java.lang.reflect.Method>
GENERATORS
private ListMultimap<java.lang.Class<?>,java.lang.Object>
sampleInstances
-
Constructor Summary
Constructors Constructor Description FreshValueGenerator()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) <T> void
addSampleInstances(java.lang.Class<T> type, java.lang.Iterable<? extends T> instances)
private <T> T
defaultGenerate(java.lang.Class<T> rawType)
private java.lang.Object
generate(TypeToken<?> type)
Generates an instance fortype
using the currentfreshness
.(package private) static <E> java.util.ArrayList<E>
generateArrayList(E freshElement)
(package private) static <K,V>
ArrayListMultimap<K,V>generateArrayListMultimap(K key, V value)
(package private) java.math.BigDecimal
generateBigDecimal()
(package private) java.math.BigInteger
generateBigInteger()
(package private) static <K,V>
BiMap<K,V>generateBimap(K key, V value)
(package private) boolean
generateBoolean()
(package private) java.lang.Boolean
generateBooleanObject()
(package private) java.nio.Buffer
generateBuffer()
(package private) byte
generateByte()
(package private) static java.io.ByteArrayInputStream
generateByteArrayInputStream()
(package private) java.nio.ByteBuffer
generateByteBuffer()
(package private) java.lang.Byte
generateByteObject()
(package private) char
generateChar()
(package private) java.lang.Character
generateCharacter()
(package private) java.nio.CharBuffer
generateCharBuffer()
(package private) CharMatcher
generateCharMatcher()
(package private) java.lang.CharSequence
generateCharSequence()
(package private) java.nio.charset.Charset
generateCharset()
(package private) java.lang.Class<?>
generateClass()
(package private) static <E> java.util.Collection<E>
generateCollection(E freshElement)
(package private) java.lang.Comparable<?>
generateComparable()
(package private) <T> java.util.Comparator<T>
generateComparator()
(package private) static <K,V>
java.util.concurrent.ConcurrentMap<K,V>generateConcurrentMap()
(package private) static <K,V>
java.util.concurrent.ConcurrentMap<K,V>generateConcurrentMap(K key, V value)
(package private) java.util.Currency
generateCurrency()
(package private) double
generateDouble()
(package private) java.nio.DoubleBuffer
generateDoubleBuffer()
(package private) java.lang.Double
generateDoubleObject()
(package private) <T> Equivalence<T>
generateEquivalence()
(package private) java.io.File
generateFile()
(package private) float
generateFloat()
(package private) java.nio.FloatBuffer
generateFloatBuffer()
(package private) java.lang.Float
generateFloatObject()
(package private) java.lang.Object
generateFresh(TypeToken<?> type)
Returns a fresh instance fortype
if possible.(package private) <T> T
generateFresh(java.lang.Class<T> type)
(package private) <T> Optional<T>
generateGoogleOptional()
(package private) <T> Optional<T>
generateGoogleOptional(T value)
(package private) static <R,C,V>
HashBasedTable<R,C,V>generateHashBasedTable(R row, C column, V value)
(package private) static <K,V>
HashBiMap<K,V>generateHashBiMap(K key, V value)
(package private) static <K,V>
java.util.HashMap<K,V>generateHashdMap(K key, V value)
(package private) static <K,V>
HashMultimap<K,V>generateHashMultimap(K key, V value)
(package private) static <E> HashMultiset<E>
generateHashMultiset(E freshElement)
(package private) static <E> java.util.HashSet<E>
generateHashSet(E freshElement)
(package private) static <K,V>
ImmutableBiMap<K,V>generateImmutableBimap(K key, V value)
(package private) static <E> ImmutableCollection<E>
generateImmutableCollection(E freshElement)
(package private) static <E> ImmutableList<E>
generateImmutableList(E freshElement)
(package private) static <K,V>
ImmutableListMultimap<K,V>generateImmutableListMultimap(K key, V value)
(package private) static <K,V>
ImmutableMap<K,V>generateImmutableMap(K key, V value)
(package private) static <K,V>
ImmutableMultimap<K,V>generateImmutableMultimap(K key, V value)
(package private) static <E> ImmutableMultiset<E>
generateImmutableMultiset(E freshElement)
(package private) static <E> ImmutableSet<E>
generateImmutableSet(E freshElement)
(package private) static <K,V>
ImmutableSetMultimap<K,V>generateImmutableSetMultimap(K key, V value)
(package private) static <K extends java.lang.Comparable<? super K>,V>
ImmutableSortedMap<K,V>generateImmutableSortedMap(K key, V value)
(package private) static <E extends java.lang.Comparable<E>>
ImmutableSortedMultiset<E>generateImmutableSortedMultiset(E freshElement)
(package private) static <E extends java.lang.Comparable<? super E>>
ImmutableSortedSet<E>generateImmutableSortedSet(E freshElement)
(package private) static <R,C,V>
ImmutableTable<R,C,V>generateImmutableTable(R row, C column, V value)
(package private) static java.io.InputStream
generateInputStream()
(package private) int
generateInt()
(package private) java.nio.IntBuffer
generateIntBuffer()
(package private) java.lang.Integer
generateInteger()
(package private) static <E> java.lang.Iterable<E>
generateIterable(E freshElement)
(package private) <T> java.util.Optional<T>
generateJavaOptional()
(package private) <T> java.util.Optional<T>
generateJavaOptional(T value)
(package private) Joiner
generateJoiner()
(package private) static <K,V>
java.util.LinkedHashMap<K,V>generateLinkedHashMap(K key, V value)
(package private) static <K,V>
LinkedHashMultimap<K,V>generateLinkedHashMultimap(K key, V value)
(package private) static <E> LinkedHashMultiset<E>
generateLinkedHashMultiset(E freshElement)
(package private) static <E> java.util.LinkedHashSet<E>
generateLinkedHashSet(E freshElement)
(package private) static <E> java.util.LinkedList<E>
generateLinkedList(E freshElement)
(package private) static <E> java.util.List<E>
generateList(E freshElement)
(package private) static <K,V>
ListMultimap<K,V>generateListMultimap(K key, V value)
(package private) java.util.Locale
generateLocale()
(package private) long
generateLong()
(package private) java.nio.LongBuffer
generateLongBuffer()
(package private) java.lang.Long
generateLongObject()
(package private) static <K,V>
java.util.Map<K,V>generateMap(K key, V value)
(package private) static <K,V>
Multimap<K,V>generateMultimap(K key, V value)
(package private) static <E> Multiset<E>
generateMultiset(E freshElement)
(package private) static <K extends java.lang.Comparable<? super K>,V>
java.util.NavigableMap<K,V>generateNavigableMap(K key, V value)
(package private) static <E extends java.lang.Comparable<? super E>>
java.util.NavigableSet<E>generateNavigableSet(E freshElement)
(package private) java.lang.Number
generateNumber()
(package private) java.lang.Object
generateObject()
(package private) java.util.OptionalDouble
generateOptionalDouble()
(package private) java.util.OptionalInt
generateOptionalInt()
(package private) java.util.OptionalLong
generateOptionalLong()
(package private) <T> Ordering<T>
generateOrdering()
(package private) java.util.regex.Pattern
generatePattern()
(package private) static <C extends java.lang.Comparable<?>>
Range<C>generateRange()
(package private) static <C extends java.lang.Comparable<?>>
Range<C>generateRange(C freshElement)
(package private) java.lang.Readable
generateReadable()
(package private) java.io.Reader
generateReader()
(package private) static <R extends java.lang.Comparable,C extends java.lang.Comparable,V>
RowSortedTable<R,C,V>generateRowSortedTable(R row, C column, V value)
(package private) static <E> java.util.Set<E>
generateSet(E freshElement)
(package private) static <K,V>
SetMultimap<K,V>generateSetMultimap(K key, V value)
(package private) short
generateShort()
(package private) java.nio.ShortBuffer
generateShortBuffer()
(package private) java.lang.Short
generateShortObject()
(package private) static <K extends java.lang.Comparable<? super K>,V>
java.util.SortedMap<K,V>generateSortedMap(K key, V value)
(package private) static <E extends java.lang.Comparable<E>>
SortedMultiset<E>generateSortedMultiset(E freshElement)
(package private) static <E extends java.lang.Comparable<? super E>>
java.util.SortedSet<E>generateSortedSet(E freshElement)
(package private) Splitter
generateSplitter()
(package private) java.lang.String
generateString()
(package private) java.io.StringReader
generateStringReader()
(package private) static <R,C,V>
Table<R,C,V>generateTable(R row, C column, V value)
(package private) Ticker
generateTicker()
(package private) static <R extends java.lang.Comparable,C extends java.lang.Comparable,V>
TreeBasedTable<R,C,V>generateTreeBasedTable(R row, C column, V value)
(package private) static <K extends java.lang.Comparable<? super K>,V>
java.util.TreeMap<K,V>generateTreeMap(K key, V value)
(package private) static <E extends java.lang.Comparable<E>>
TreeMultiset<E>generateTreeMultiset(E freshElement)
(package private) static <E extends java.lang.Comparable<? super E>>
java.util.TreeSet<E>generateTreeSet(E freshElement)
(package private) TypeToken<?>
generateTypeToken()
(package private) UnsignedInteger
generateUnsignedInteger()
(package private) UnsignedLong
generateUnsignedLong()
(package private) java.lang.Object
interfaceMethodCalled(java.lang.Class<?> interfaceType, java.lang.reflect.Method method)
Subclasses can override to provide different return value for proxied interface methods.private java.lang.Object
invokeGeneratorMethod(java.lang.reflect.Method generator, java.lang.Object... args)
(package private) <T> T
newFreshProxy(java.lang.Class<T> interfaceType)
private <T> T
newProxy(java.lang.Class<T> interfaceType)
private static java.lang.String
paramString(java.lang.Class<?> type, int i)
private <T> T
pickInstance(java.util.Collection<T> instances, T defaultValue)
private <T> T
pickInstance(T[] instances, T defaultValue)
private java.util.Currency
preJava7FreshCurrency()
-
-
-
Field Detail
-
GENERATORS
private static final ImmutableMap<java.lang.Class<?>,java.lang.reflect.Method> GENERATORS
-
EMPTY_GENERATORS
private static final ImmutableMap<java.lang.Class<?>,java.lang.reflect.Method> EMPTY_GENERATORS
-
freshness
private final java.util.concurrent.atomic.AtomicInteger freshness
-
sampleInstances
private final ListMultimap<java.lang.Class<?>,java.lang.Object> sampleInstances
-
emptyInstanceGenerated
private final java.util.Map<java.lang.reflect.Type,java.lang.Integer> emptyInstanceGenerated
The freshness level at which the@Empty
annotated method was invoked to generate instance.
-
-
Method Detail
-
addSampleInstances
final <T> void addSampleInstances(java.lang.Class<T> type, java.lang.Iterable<? extends T> instances)
-
generateFresh
final java.lang.Object generateFresh(TypeToken<?> type)
Returns a fresh instance fortype
if possible. The returned instance could be:- exactly of the given type, including generic type parameters, such as
ImmutableList<String>
; - of the raw type;
- null if no value can be generated.
- exactly of the given type, including generic type parameters, such as
-
generateFresh
final <T> T generateFresh(java.lang.Class<T> type)
-
newFreshProxy
final <T> T newFreshProxy(java.lang.Class<T> interfaceType)
-
generate
private java.lang.Object generate(TypeToken<?> type)
Generates an instance fortype
using the currentfreshness
. The generated instance may or may not be unique across different calls.
-
defaultGenerate
private <T> T defaultGenerate(java.lang.Class<T> rawType)
-
newProxy
private <T> T newProxy(java.lang.Class<T> interfaceType)
-
invokeGeneratorMethod
private java.lang.Object invokeGeneratorMethod(java.lang.reflect.Method generator, java.lang.Object... args)
-
interfaceMethodCalled
java.lang.Object interfaceMethodCalled(java.lang.Class<?> interfaceType, java.lang.reflect.Method method)
Subclasses can override to provide different return value for proxied interface methods.
-
pickInstance
private <T> T pickInstance(T[] instances, T defaultValue)
-
pickInstance
private <T> T pickInstance(java.util.Collection<T> instances, T defaultValue)
-
paramString
private static java.lang.String paramString(java.lang.Class<?> type, int i)
-
generateClass
java.lang.Class<?> generateClass()
-
generateObject
java.lang.Object generateObject()
-
generateNumber
java.lang.Number generateNumber()
-
generateInt
int generateInt()
-
generateInteger
java.lang.Integer generateInteger()
-
generateLong
long generateLong()
-
generateLongObject
java.lang.Long generateLongObject()
-
generateFloat
float generateFloat()
-
generateFloatObject
java.lang.Float generateFloatObject()
-
generateDouble
double generateDouble()
-
generateDoubleObject
java.lang.Double generateDoubleObject()
-
generateShort
short generateShort()
-
generateShortObject
java.lang.Short generateShortObject()
-
generateByte
byte generateByte()
-
generateByteObject
java.lang.Byte generateByteObject()
-
generateChar
char generateChar()
-
generateCharacter
java.lang.Character generateCharacter()
-
generateBoolean
boolean generateBoolean()
-
generateBooleanObject
java.lang.Boolean generateBooleanObject()
-
generateUnsignedInteger
UnsignedInteger generateUnsignedInteger()
-
generateUnsignedLong
UnsignedLong generateUnsignedLong()
-
generateBigInteger
java.math.BigInteger generateBigInteger()
-
generateBigDecimal
java.math.BigDecimal generateBigDecimal()
-
generateCharSequence
java.lang.CharSequence generateCharSequence()
-
generateString
java.lang.String generateString()
-
generateComparable
java.lang.Comparable<?> generateComparable()
-
generatePattern
java.util.regex.Pattern generatePattern()
-
generateCharset
java.nio.charset.Charset generateCharset()
-
generateLocale
java.util.Locale generateLocale()
-
generateCurrency
java.util.Currency generateCurrency()
-
preJava7FreshCurrency
private java.util.Currency preJava7FreshCurrency()
-
generateJavaOptional
<T> java.util.Optional<T> generateJavaOptional()
-
generateJavaOptional
<T> java.util.Optional<T> generateJavaOptional(T value)
-
generateOptionalInt
java.util.OptionalInt generateOptionalInt()
-
generateOptionalLong
java.util.OptionalLong generateOptionalLong()
-
generateOptionalDouble
java.util.OptionalDouble generateOptionalDouble()
-
generateGoogleOptional
<T> Optional<T> generateGoogleOptional()
-
generateGoogleOptional
<T> Optional<T> generateGoogleOptional(T value)
-
generateJoiner
Joiner generateJoiner()
-
generateSplitter
Splitter generateSplitter()
-
generateEquivalence
<T> Equivalence<T> generateEquivalence()
-
generateCharMatcher
CharMatcher generateCharMatcher()
-
generateTicker
Ticker generateTicker()
-
generateComparator
<T> java.util.Comparator<T> generateComparator()
-
generateOrdering
<T> Ordering<T> generateOrdering()
-
generateRange
static <C extends java.lang.Comparable<?>> Range<C> generateRange()
-
generateRange
static <C extends java.lang.Comparable<?>> Range<C> generateRange(C freshElement)
-
generateIterable
static <E> java.lang.Iterable<E> generateIterable(E freshElement)
-
generateCollection
static <E> java.util.Collection<E> generateCollection(E freshElement)
-
generateList
static <E> java.util.List<E> generateList(E freshElement)
-
generateArrayList
static <E> java.util.ArrayList<E> generateArrayList(E freshElement)
-
generateLinkedList
static <E> java.util.LinkedList<E> generateLinkedList(E freshElement)
-
generateImmutableList
static <E> ImmutableList<E> generateImmutableList(E freshElement)
-
generateImmutableCollection
static <E> ImmutableCollection<E> generateImmutableCollection(E freshElement)
-
generateSet
static <E> java.util.Set<E> generateSet(E freshElement)
-
generateHashSet
static <E> java.util.HashSet<E> generateHashSet(E freshElement)
-
generateLinkedHashSet
static <E> java.util.LinkedHashSet<E> generateLinkedHashSet(E freshElement)
-
generateImmutableSet
static <E> ImmutableSet<E> generateImmutableSet(E freshElement)
-
generateSortedSet
static <E extends java.lang.Comparable<? super E>> java.util.SortedSet<E> generateSortedSet(E freshElement)
-
generateNavigableSet
static <E extends java.lang.Comparable<? super E>> java.util.NavigableSet<E> generateNavigableSet(E freshElement)
-
generateTreeSet
static <E extends java.lang.Comparable<? super E>> java.util.TreeSet<E> generateTreeSet(E freshElement)
-
generateImmutableSortedSet
static <E extends java.lang.Comparable<? super E>> ImmutableSortedSet<E> generateImmutableSortedSet(E freshElement)
-
generateMultiset
static <E> Multiset<E> generateMultiset(E freshElement)
-
generateHashMultiset
static <E> HashMultiset<E> generateHashMultiset(E freshElement)
-
generateLinkedHashMultiset
static <E> LinkedHashMultiset<E> generateLinkedHashMultiset(E freshElement)
-
generateImmutableMultiset
static <E> ImmutableMultiset<E> generateImmutableMultiset(E freshElement)
-
generateSortedMultiset
static <E extends java.lang.Comparable<E>> SortedMultiset<E> generateSortedMultiset(E freshElement)
-
generateTreeMultiset
static <E extends java.lang.Comparable<E>> TreeMultiset<E> generateTreeMultiset(E freshElement)
-
generateImmutableSortedMultiset
static <E extends java.lang.Comparable<E>> ImmutableSortedMultiset<E> generateImmutableSortedMultiset(E freshElement)
-
generateMap
static <K,V> java.util.Map<K,V> generateMap(K key, V value)
-
generateHashdMap
static <K,V> java.util.HashMap<K,V> generateHashdMap(K key, V value)
-
generateLinkedHashMap
static <K,V> java.util.LinkedHashMap<K,V> generateLinkedHashMap(K key, V value)
-
generateImmutableMap
static <K,V> ImmutableMap<K,V> generateImmutableMap(K key, V value)
-
generateConcurrentMap
static <K,V> java.util.concurrent.ConcurrentMap<K,V> generateConcurrentMap()
-
generateConcurrentMap
static <K,V> java.util.concurrent.ConcurrentMap<K,V> generateConcurrentMap(K key, V value)
-
generateSortedMap
static <K extends java.lang.Comparable<? super K>,V> java.util.SortedMap<K,V> generateSortedMap(K key, V value)
-
generateNavigableMap
static <K extends java.lang.Comparable<? super K>,V> java.util.NavigableMap<K,V> generateNavigableMap(K key, V value)
-
generateTreeMap
static <K extends java.lang.Comparable<? super K>,V> java.util.TreeMap<K,V> generateTreeMap(K key, V value)
-
generateImmutableSortedMap
static <K extends java.lang.Comparable<? super K>,V> ImmutableSortedMap<K,V> generateImmutableSortedMap(K key, V value)
-
generateMultimap
static <K,V> Multimap<K,V> generateMultimap(K key, V value)
-
generateImmutableMultimap
static <K,V> ImmutableMultimap<K,V> generateImmutableMultimap(K key, V value)
-
generateListMultimap
static <K,V> ListMultimap<K,V> generateListMultimap(K key, V value)
-
generateArrayListMultimap
static <K,V> ArrayListMultimap<K,V> generateArrayListMultimap(K key, V value)
-
generateImmutableListMultimap
static <K,V> ImmutableListMultimap<K,V> generateImmutableListMultimap(K key, V value)
-
generateSetMultimap
static <K,V> SetMultimap<K,V> generateSetMultimap(K key, V value)
-
generateHashMultimap
static <K,V> HashMultimap<K,V> generateHashMultimap(K key, V value)
-
generateLinkedHashMultimap
static <K,V> LinkedHashMultimap<K,V> generateLinkedHashMultimap(K key, V value)
-
generateImmutableSetMultimap
static <K,V> ImmutableSetMultimap<K,V> generateImmutableSetMultimap(K key, V value)
-
generateBimap
static <K,V> BiMap<K,V> generateBimap(K key, V value)
-
generateHashBiMap
static <K,V> HashBiMap<K,V> generateHashBiMap(K key, V value)
-
generateImmutableBimap
static <K,V> ImmutableBiMap<K,V> generateImmutableBimap(K key, V value)
-
generateTable
static <R,C,V> Table<R,C,V> generateTable(R row, C column, V value)
-
generateHashBasedTable
static <R,C,V> HashBasedTable<R,C,V> generateHashBasedTable(R row, C column, V value)
-
generateRowSortedTable
static <R extends java.lang.Comparable,C extends java.lang.Comparable,V> RowSortedTable<R,C,V> generateRowSortedTable(R row, C column, V value)
-
generateTreeBasedTable
static <R extends java.lang.Comparable,C extends java.lang.Comparable,V> TreeBasedTable<R,C,V> generateTreeBasedTable(R row, C column, V value)
-
generateImmutableTable
static <R,C,V> ImmutableTable<R,C,V> generateImmutableTable(R row, C column, V value)
-
generateTypeToken
TypeToken<?> generateTypeToken()
-
generateFile
java.io.File generateFile()
-
generateByteArrayInputStream
static java.io.ByteArrayInputStream generateByteArrayInputStream()
-
generateInputStream
static java.io.InputStream generateInputStream()
-
generateStringReader
java.io.StringReader generateStringReader()
-
generateReader
java.io.Reader generateReader()
-
generateReadable
java.lang.Readable generateReadable()
-
generateBuffer
java.nio.Buffer generateBuffer()
-
generateCharBuffer
java.nio.CharBuffer generateCharBuffer()
-
generateByteBuffer
java.nio.ByteBuffer generateByteBuffer()
-
generateShortBuffer
java.nio.ShortBuffer generateShortBuffer()
-
generateIntBuffer
java.nio.IntBuffer generateIntBuffer()
-
generateLongBuffer
java.nio.LongBuffer generateLongBuffer()
-
generateFloatBuffer
java.nio.FloatBuffer generateFloatBuffer()
-
generateDoubleBuffer
java.nio.DoubleBuffer generateDoubleBuffer()
-
-