Class TypeShape<T>


  • public final class TypeShape<T>
    extends java.lang.Object
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  TypeShape.Builder<T>  
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static TypeShape<java.lang.Void> Empty  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String asString()  
      static <T> TypeShape.Builder<T> builder​(java.lang.Class<? super T> type)  
      static <L,​R>
      TypeShape<Either<L,​R>>
      either​(java.lang.Class<L> leftClass, java.lang.Class<R> rightClass)  
      static TypeShape<?> extract​(java.lang.reflect.Parameter parameter)  
      <A extends java.lang.annotation.Annotation>
      java.lang.reflect.Constructor<?>
      getAnnotatedConstructor​(java.lang.Class<A> constructorAnnotation)  
      <A extends java.lang.annotation.Annotation>
      java.lang.reflect.Method
      getAnnotatedMethod​(java.lang.Class<A> methodAnnotation)  
      <A extends java.lang.annotation.Annotation>
      java.util.Optional<A>
      getAnnotation​(java.lang.Class<A> annotationType)  
      java.util.Optional<TypeShape<?>> getParameter​(int index)  
      int getParameterCount()  
      com.google.common.collect.ImmutableList<TypeShape<?>> getParameters()  
      java.lang.Class<T> getType()  
      java.lang.String getTypeName()  
      boolean hasParameters()  
      <U> boolean isAssignableFrom​(TypeShape<U> other)
      Returns true if the type and all of the parameters are assignable from the given other shape.
      static <E> TypeShape<java.util.List<E>> list​(java.lang.Class<E> elementClass)  
      static <K,​V>
      TypeShape<java.util.Map<K,​V>>
      map​(java.lang.Class<K> keyClass, java.lang.Class<V> valueClass)  
      static <T> TypeShape<T> of​(java.lang.Class<T> type)  
      static <T> TypeShape<java.util.Optional<T>> optional​(java.lang.Class<T> valueClass)  
      com.google.gson.reflect.TypeToken<?> toGSON()  
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • Empty

        public static final TypeShape<java.lang.Void> Empty
    • Method Detail

      • getType

        public java.lang.Class<T> getType()
      • getTypeName

        public java.lang.String getTypeName()
      • getParameter

        public java.util.Optional<TypeShape<?>> getParameter​(int index)
      • getParameters

        public com.google.common.collect.ImmutableList<TypeShape<?>> getParameters()
      • getParameterCount

        public int getParameterCount()
      • hasParameters

        public boolean hasParameters()
      • getAnnotation

        public <A extends java.lang.annotation.Annotation> java.util.Optional<A> getAnnotation​(java.lang.Class<A> annotationType)
      • getAnnotatedConstructor

        public <A extends java.lang.annotation.Annotation> java.lang.reflect.Constructor<?> getAnnotatedConstructor​(java.lang.Class<A> constructorAnnotation)
      • getAnnotatedMethod

        public <A extends java.lang.annotation.Annotation> java.lang.reflect.Method getAnnotatedMethod​(java.lang.Class<A> methodAnnotation)
      • isAssignableFrom

        public <U> boolean isAssignableFrom​(TypeShape<U> other)
        Returns true if the type and all of the parameters are assignable from the given other shape.
        See Also:
        Class.isAssignableFrom(Class)
      • asString

        public java.lang.String asString()
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • extract

        public static TypeShape<?> extract​(java.lang.reflect.Parameter parameter)
      • toGSON

        @InternalUse
        public com.google.gson.reflect.TypeToken<?> toGSON()
      • of

        public static <T> TypeShape<T> of​(java.lang.Class<T> type)
      • optional

        public static <T> TypeShape<java.util.Optional<T>> optional​(java.lang.Class<T> valueClass)
      • either

        public static <L,​R> TypeShape<Either<L,​R>> either​(java.lang.Class<L> leftClass,
                                                                      java.lang.Class<R> rightClass)
      • list

        public static <E> TypeShape<java.util.List<E>> list​(java.lang.Class<E> elementClass)
      • map

        public static <K,​V> TypeShape<java.util.Map<K,​V>> map​(java.lang.Class<K> keyClass,
                                                                          java.lang.Class<V> valueClass)
      • builder

        public static <T> TypeShape.Builder<T> builder​(java.lang.Class<? super T> type)