@ThreadSafe @Immutable public class EnhancedType<T> extends Object
Class, this represents a specific raw class type. Unlike Class, this allows representing type
parameters that would usually be erased.EnhancedType(),
of(Class),
listOf(Class),
mapOf(Class, Class)| Modifier | Constructor and Description |
|---|---|
protected |
EnhancedType()
Create a type token, capturing the generic type arguments of the token as
Classes. |
| Modifier and Type | Method and Description |
|---|---|
static <T> EnhancedType<Collection<T>> |
collectionOf(Class<T> valueType)
Create a type token for a collection, with the provided value type class.
|
static <T> EnhancedType<Collection<T>> |
collectionOf(EnhancedType<T> valueType)
Create a type token for a collection, with the provided value type token.
|
static <T,U> EnhancedType<ConcurrentMap<T,U>> |
concurrentMapOf(Class<T> keyType,
Class<U> valueType)
Create a type token for a concurrent map, with the provided key and value type classes.
|
static <T,U> EnhancedType<ConcurrentMap<T,U>> |
concurrentMapOf(EnhancedType<T> keyType,
EnhancedType<U> valueType)
Create a type token for a concurrent map, with the provided key and value type classes.
|
static <T> EnhancedType<Deque<T>> |
dequeOf(Class<T> valueType)
Create a type token for a deque, with the provided value type class.
|
static <T> EnhancedType<Deque<T>> |
dequeOf(EnhancedType<T> valueType)
Create a type token for a deque, with the provided value type token.
|
Optional<EnhancedTypeDocumentConfiguration> |
documentConfiguration()
Retrieve the optional
EnhancedTypeDocumentConfiguration for this EnhancedType |
static <T> EnhancedType<T> |
documentOf(Class<T> documentClass,
TableSchema<T> documentTableSchema)
Create a type token that represents a document that is specified by the provided
TableSchema. |
static <T> EnhancedType<T> |
documentOf(Class<T> documentClass,
TableSchema<T> documentTableSchema,
Consumer<EnhancedTypeDocumentConfiguration.Builder> enhancedTypeConfiguration)
Create a type token that represents a document that is specified by the provided
TableSchema. |
boolean |
equals(Object o) |
int |
hashCode() |
boolean |
isWildcard()
Returns whether or not the type this
EnhancedType was created with is a wildcard type. |
static <T> EnhancedType<List<T>> |
listOf(Class<T> valueType)
Create a type token for a list, with the provided value type class.
|
static <T> EnhancedType<List<T>> |
listOf(EnhancedType<T> valueType)
Create a type token for a list, with the provided value type class.
|
static <T,U> EnhancedType<Map<T,U>> |
mapOf(Class<T> keyType,
Class<U> valueType)
Create a type token for a map, with the provided key and value type classes.
|
static <T,U> EnhancedType<Map<T,U>> |
mapOf(EnhancedType<T> keyType,
EnhancedType<U> valueType)
Create a type token for a map, with the provided key and value type classes.
|
static <T,U> EnhancedType<NavigableMap<T,U>> |
navigableMapOf(Class<T> keyType,
Class<U> valueType)
Create a type token for a navigable map, with the provided key and value type classes.
|
static <T,U> EnhancedType<NavigableMap<T,U>> |
navigableMapOf(EnhancedType<T> keyType,
EnhancedType<U> valueType)
Create a type token for a navigable map, with the provided key and value type classes.
|
static <T> EnhancedType<NavigableSet<T>> |
navigableSetOf(Class<T> valueType)
Create a type token for a navigable set, with the provided value type class.
|
static <T> EnhancedType<NavigableSet<T>> |
navigableSetOf(EnhancedType<T> valueType)
Create a type token for a navigable set, with the provided value type token.
|
static <T> EnhancedType<T> |
of(Class<T> type)
Create a type token for the provided non-parameterized class.
|
static EnhancedType<?> |
of(Type type)
Create a type token for the provided non-parameterized class.
|
static <T> EnhancedType<Optional<T>> |
optionalOf(Class<T> valueType)
Create a type token for a optional, with the provided value type class.
|
Class<T> |
rawClass()
Retrieve the
Class object that this type token represents. |
List<EnhancedType<?>> |
rawClassParameters()
Retrieve the
Class objects of any type parameters for the class that this type token represents. |
static <T> EnhancedType<Set<T>> |
setOf(Class<T> valueType)
Create a type token for a set, with the provided value type class.
|
static <T> EnhancedType<Set<T>> |
setOf(EnhancedType<T> valueType)
Create a type token for a set, with the provided value type class.
|
static <T,U> EnhancedType<SortedMap<T,U>> |
sortedMapOf(Class<T> keyType,
Class<U> valueType)
Create a type token for a sorted map, with the provided key and value type classes.
|
static <T,U> EnhancedType<SortedMap<T,U>> |
sortedMapOf(EnhancedType<T> keyType,
EnhancedType<U> valueType)
Create a type token for a sorted map, with the provided key and value type classes.
|
static <T> EnhancedType<SortedSet<T>> |
sortedSetOf(Class<T> valueType)
Create a type token for a sorted set, with the provided value type class.
|
static <T> EnhancedType<SortedSet<T>> |
sortedSetOf(EnhancedType<T> valueType)
Create a type token for a sorted set, with the provided value type class.
|
Optional<TableSchema<T>> |
tableSchema()
Retrieve the
TableSchema for a modeled document. |
String |
toString() |
protected EnhancedType()
Classes.
This must be called from an anonymous subclass. For example,
new EnhancedType<Iterable<String>>(){} (note the extra {}) for a EnhancedType<Iterable<String>>.
public static <T> EnhancedType<T> of(Class<T> type)
Reasons this call may fail with a RuntimeException:
public static EnhancedType<?> of(Type type)
Reasons this call may fail with a RuntimeException:
public static <T> EnhancedType<Optional<T>> optionalOf(Class<T> valueType)
Reasons this call may fail with a RuntimeException:
public static <T> EnhancedType<List<T>> listOf(Class<T> valueType)
Reasons this call may fail with a RuntimeException:
public static <T> EnhancedType<List<T>> listOf(EnhancedType<T> valueType)
Reasons this call may fail with a RuntimeException:
public static <T> EnhancedType<Set<T>> setOf(Class<T> valueType)
Reasons this call may fail with a RuntimeException:
public static <T> EnhancedType<Set<T>> setOf(EnhancedType<T> valueType)
Reasons this call may fail with a RuntimeException:
public static <T> EnhancedType<SortedSet<T>> sortedSetOf(Class<T> valueType)
Reasons this call may fail with a RuntimeException:
public static <T> EnhancedType<SortedSet<T>> sortedSetOf(EnhancedType<T> valueType)
Reasons this call may fail with a RuntimeException:
public static <T> EnhancedType<Deque<T>> dequeOf(Class<T> valueType)
Reasons this call may fail with a RuntimeException:
public static <T> EnhancedType<Deque<T>> dequeOf(EnhancedType<T> valueType)
Reasons this call may fail with a RuntimeException:
public static <T> EnhancedType<NavigableSet<T>> navigableSetOf(Class<T> valueType)
Reasons this call may fail with a RuntimeException:
public static <T> EnhancedType<NavigableSet<T>> navigableSetOf(EnhancedType<T> valueType)
Reasons this call may fail with a RuntimeException:
public static <T> EnhancedType<Collection<T>> collectionOf(Class<T> valueType)
Reasons this call may fail with a RuntimeException:
public static <T> EnhancedType<Collection<T>> collectionOf(EnhancedType<T> valueType)
Reasons this call may fail with a RuntimeException:
public static <T,U> EnhancedType<Map<T,U>> mapOf(Class<T> keyType, Class<U> valueType)
Reasons this call may fail with a RuntimeException:
public static <T,U> EnhancedType<Map<T,U>> mapOf(EnhancedType<T> keyType, EnhancedType<U> valueType)
Reasons this call may fail with a RuntimeException:
public static <T,U> EnhancedType<SortedMap<T,U>> sortedMapOf(Class<T> keyType, Class<U> valueType)
Reasons this call may fail with a RuntimeException:
public static <T,U> EnhancedType<SortedMap<T,U>> sortedMapOf(EnhancedType<T> keyType, EnhancedType<U> valueType)
Reasons this call may fail with a RuntimeException:
public static <T,U> EnhancedType<ConcurrentMap<T,U>> concurrentMapOf(Class<T> keyType, Class<U> valueType)
Reasons this call may fail with a RuntimeException:
public static <T,U> EnhancedType<ConcurrentMap<T,U>> concurrentMapOf(EnhancedType<T> keyType, EnhancedType<U> valueType)
Reasons this call may fail with a RuntimeException:
public static <T,U> EnhancedType<NavigableMap<T,U>> navigableMapOf(Class<T> keyType, Class<U> valueType)
Reasons this call may fail with a RuntimeException:
public static <T,U> EnhancedType<NavigableMap<T,U>> navigableMapOf(EnhancedType<T> keyType, EnhancedType<U> valueType)
Reasons this call may fail with a RuntimeException:
public static <T> EnhancedType<T> documentOf(Class<T> documentClass, TableSchema<T> documentTableSchema)
TableSchema.documentClass - The Class representing the modeled document.documentTableSchema - A TableSchema that describes the properties of the document.EnhancedType representing the provided document.public static <T> EnhancedType<T> documentOf(Class<T> documentClass, TableSchema<T> documentTableSchema, Consumer<EnhancedTypeDocumentConfiguration.Builder> enhancedTypeConfiguration)
TableSchema.documentClass - The Class representing the modeled document.documentTableSchema - A TableSchema that describes the properties of the document.enhancedTypeConfiguration - the configuration for this enhanced typeEnhancedType representing the provided document.public boolean isWildcard()
EnhancedType was created with is a wildcard type.public Class<T> rawClass()
Class object that this type token represents.
e.g. For EnhancedType<String>, this would return String.class.public Optional<TableSchema<T>> tableSchema()
TableSchema for a modeled document. This is used for
converting nested documents within a schema.public List<EnhancedType<?>> rawClassParameters()
Class objects of any type parameters for the class that this type token represents.
e.g. For EnhancedType<List<String>>, this would return String.class, and rawClass() would
return List.class.
If there are no type parameters, this will return an empty list.
public Optional<EnhancedTypeDocumentConfiguration> documentConfiguration()
EnhancedTypeDocumentConfiguration for this EnhancedTypeCopyright © 2023. All rights reserved.