Class EnhancedType<T>

java.lang.Object
software.amazon.awssdk.enhanced.dynamodb.EnhancedType<T>

@ThreadSafe @Immutable public class EnhancedType<T> extends Object
Similar to Class, this represents a specific raw class type. Unlike Class, this allows representing type parameters that would usually be erased.
See Also:
  • Method Details

    • of

      public static <T> EnhancedType<T> of(Class<T> type)
      Create a type token for the provided non-parameterized class.

      Reasons this call may fail with a RuntimeException:

      1. If the provided type is null.
    • of

      public static EnhancedType<?> of(Type type)
      Create a type token for the provided non-parameterized class.

      Reasons this call may fail with a RuntimeException:

      1. If the provided type is null.
    • optionalOf

      public static <T> EnhancedType<Optional<T>> optionalOf(Class<T> valueType)
      Create a type token for a optional, with the provided value type class.

      Reasons this call may fail with a RuntimeException:

      1. If the provided type is null.
    • listOf

      public static <T> EnhancedType<List<T>> listOf(Class<T> valueType)
      Create a type token for a list, with the provided value type class.

      Reasons this call may fail with a RuntimeException:

      1. If the provided type is null.
    • listOf

      public static <T> EnhancedType<List<T>> listOf(EnhancedType<T> valueType)
      Create a type token for a list, with the provided value type class.

      Reasons this call may fail with a RuntimeException:

      1. If the provided type is null.
    • setOf

      public static <T> EnhancedType<Set<T>> setOf(Class<T> valueType)
      Create a type token for a set, with the provided value type class.

      Reasons this call may fail with a RuntimeException:

      1. If the provided type is null.
    • setOf

      public static <T> EnhancedType<Set<T>> setOf(EnhancedType<T> valueType)
      Create a type token for a set, with the provided value type class.

      Reasons this call may fail with a RuntimeException:

      1. If the provided type is null.
    • sortedSetOf

      public static <T> EnhancedType<SortedSet<T>> sortedSetOf(Class<T> valueType)
      Create a type token for a sorted set, with the provided value type class.

      Reasons this call may fail with a RuntimeException:

      1. If the provided type is null.
    • sortedSetOf

      public static <T> EnhancedType<SortedSet<T>> sortedSetOf(EnhancedType<T> valueType)
      Create a type token for a sorted set, with the provided value type class.

      Reasons this call may fail with a RuntimeException:

      1. If the provided type is null.
    • dequeOf

      public static <T> EnhancedType<Deque<T>> dequeOf(Class<T> valueType)
      Create a type token for a deque, with the provided value type class.

      Reasons this call may fail with a RuntimeException:

      1. If the provided type is null.
    • dequeOf

      public static <T> EnhancedType<Deque<T>> dequeOf(EnhancedType<T> valueType)
      Create a type token for a deque, with the provided value type token.

      Reasons this call may fail with a RuntimeException:

      1. If the provided type is null.
    • collectionOf

      public static <T> EnhancedType<Collection<T>> collectionOf(Class<T> valueType)
      Create a type token for a collection, with the provided value type class.

      Reasons this call may fail with a RuntimeException:

      1. If the provided type is null.
    • collectionOf

      public static <T> EnhancedType<Collection<T>> collectionOf(EnhancedType<T> valueType)
      Create a type token for a collection, with the provided value type token.

      Reasons this call may fail with a RuntimeException:

      1. If the provided type is null.
    • mapOf

      public 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.

      Reasons this call may fail with a RuntimeException:

      1. If the provided types are null.
    • mapOf

      public 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.

      Reasons this call may fail with a RuntimeException:

      1. If the provided types are null.
    • sortedMapOf

      public 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.

      Reasons this call may fail with a RuntimeException:

      1. If the provided types are null.
    • sortedMapOf

      public 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.

      Reasons this call may fail with a RuntimeException:

      1. If the provided types are null.
    • concurrentMapOf

      public 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.

      Reasons this call may fail with a RuntimeException:

      1. If the provided types are null.
    • concurrentMapOf

      public 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.

      Reasons this call may fail with a RuntimeException:

      1. If the provided types are null.
    • documentOf

      public 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.
      Parameters:
      documentClass - The Class representing the modeled document.
      documentTableSchema - A TableSchema that describes the properties of the document.
      Returns:
      a new EnhancedType representing the provided document.
    • documentOf

      public 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.
      Parameters:
      documentClass - The Class representing the modeled document.
      documentTableSchema - A TableSchema that describes the properties of the document.
      enhancedTypeConfiguration - the configuration for this enhanced type
      Returns:
      a new EnhancedType representing the provided document.
    • isWildcard

      public boolean isWildcard()
      Returns whether or not the type this EnhancedType was created with is a wildcard type.
    • rawClass

      public Class<T> rawClass()
      Retrieve the Class object that this type token represents. e.g. For EnhancedType<String>, this would return String.class.
    • tableSchema

      public Optional<TableSchema<T>> tableSchema()
      Retrieve the TableSchema for a modeled document. This is used for converting nested documents within a schema.
    • rawClassParameters

      public List<EnhancedType<?>> rawClassParameters()
      Retrieve the 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.

    • documentConfiguration

      public Optional<EnhancedTypeDocumentConfiguration> documentConfiguration()
      Retrieve the optional EnhancedTypeDocumentConfiguration for this EnhancedType
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object