Class TypeBindings

  • All Implemented Interfaces:
    java.io.Serializable

    public class TypeBindings
    extends java.lang.Object
    implements java.io.Serializable
    Helper class used for resolving type parameters for given class
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      (package private) static class  TypeBindings.AsKey
      Helper type used to allow caching of generic types
      (package private) static class  TypeBindings.TypeParamStash
      Helper class that contains simple logic for avoiding repeated lookups via Class.getTypeParameters() as that can be a performance issue for some use cases (wasteful, usually one-off or not reusing mapper).
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private TypeBindings​(java.lang.String[] names, JavaType[] types, java.lang.String[] uvars)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object asKey​(java.lang.Class<?> rawBase)
      Factory method that will create an object that can be used as a key for caching purposes by TypeFactory
      static TypeBindings create​(java.lang.Class<?> erasedType, JavaType typeArg1)  
      static TypeBindings create​(java.lang.Class<?> erasedType, JavaType[] types)  
      static TypeBindings create​(java.lang.Class<?> erasedType, JavaType typeArg1, JavaType typeArg2)  
      static TypeBindings create​(java.lang.Class<?> erasedType, java.util.List<JavaType> typeList)
      Factory method for constructing bindings for given class using specified type parameters.
      static TypeBindings createIfNeeded​(java.lang.Class<?> erasedType, JavaType typeArg1)
      Alternate factory method that may be called if it is possible that type does or does not require type parameters; this is mostly useful for collection- and map-like types.
      static TypeBindings createIfNeeded​(java.lang.Class<?> erasedType, JavaType[] types)
      Alternate factory method that may be called if it is possible that type does or does not require type parameters; this is mostly useful for collection- and map-like types.
      static TypeBindings emptyBindings()  
      boolean equals​(java.lang.Object o)  
      JavaType findBoundType​(java.lang.String name)
      Find type bound to specified name, if there is one; returns bound type if so, null if not.
      java.lang.String getBoundName​(int index)  
      JavaType getBoundType​(int index)  
      java.util.List<JavaType> getTypeParameters()
      Accessor for getting bound types in declaration order
      int hashCode()  
      boolean hasUnbound​(java.lang.String name)  
      boolean isEmpty()  
      protected java.lang.Object readResolve()  
      int size()
      Returns number of bindings contained
      java.lang.String toString()  
      protected JavaType[] typeParameterArray()  
      TypeBindings withUnboundVariable​(java.lang.String name)
      Method for creating an instance that has same bindings as this object, plus an indicator for additional type variable that may be unbound within this context; this is needed to resolve recursive self-references.
      • Methods inherited from class java.lang.Object

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

      • NO_STRINGS

        private static final java.lang.String[] NO_STRINGS
      • NO_TYPES

        private static final JavaType[] NO_TYPES
      • _names

        private final java.lang.String[] _names
        Array of type (type variable) names.
      • _types

        private final JavaType[] _types
        Types matching names
      • _unboundVariables

        private final java.lang.String[] _unboundVariables
        Names of potentially unresolved type variables.
        Since:
        2.3
      • _hashCode

        private final int _hashCode
    • Constructor Detail

      • TypeBindings

        private TypeBindings​(java.lang.String[] names,
                             JavaType[] types,
                             java.lang.String[] uvars)
    • Method Detail

      • emptyBindings

        public static TypeBindings emptyBindings()
      • readResolve

        protected java.lang.Object readResolve()
      • create

        public static TypeBindings create​(java.lang.Class<?> erasedType,
                                          java.util.List<JavaType> typeList)
        Factory method for constructing bindings for given class using specified type parameters.
      • createIfNeeded

        public static TypeBindings createIfNeeded​(java.lang.Class<?> erasedType,
                                                  JavaType typeArg1)
        Alternate factory method that may be called if it is possible that type does or does not require type parameters; this is mostly useful for collection- and map-like types.
      • createIfNeeded

        public static TypeBindings createIfNeeded​(java.lang.Class<?> erasedType,
                                                  JavaType[] types)
        Alternate factory method that may be called if it is possible that type does or does not require type parameters; this is mostly useful for collection- and map-like types.
      • withUnboundVariable

        public TypeBindings withUnboundVariable​(java.lang.String name)
        Method for creating an instance that has same bindings as this object, plus an indicator for additional type variable that may be unbound within this context; this is needed to resolve recursive self-references.
      • findBoundType

        public JavaType findBoundType​(java.lang.String name)
        Find type bound to specified name, if there is one; returns bound type if so, null if not.
      • isEmpty

        public boolean isEmpty()
      • size

        public int size()
        Returns number of bindings contained
      • getBoundName

        public java.lang.String getBoundName​(int index)
      • getBoundType

        public JavaType getBoundType​(int index)
      • getTypeParameters

        public java.util.List<JavaType> getTypeParameters()
        Accessor for getting bound types in declaration order
      • hasUnbound

        public boolean hasUnbound​(java.lang.String name)
        Since:
        2.3
      • asKey

        public java.lang.Object asKey​(java.lang.Class<?> rawBase)
        Factory method that will create an object that can be used as a key for caching purposes by TypeFactory
        Since:
        2.8
      • toString

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

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • typeParameterArray

        protected JavaType[] typeParameterArray()