Class FieldSerializerGenericsUtil


  • final class FieldSerializerGenericsUtil
    extends java.lang.Object
    A few utility methods for using generic type parameters, mostly by FieldSerializer
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) Generics buildGenericsScope​(java.lang.Class clazz, java.lang.Class[] generics)
      Create a mapping from type variable names (which are declared as type parameters of a generic class) to the concrete classes used for type instantiation.
      (package private) java.lang.Class[] computeFieldGenerics​(java.lang.reflect.Type fieldGenericType, java.lang.reflect.Field field, java.lang.Class[] fieldClass)  
      static java.lang.Class[] getGenerics​(java.lang.reflect.Type genericType, Kryo kryo)
      Returns the first level of classes or interfaces for a generic type.
      private java.lang.Class<?> getTypeVarConcreteClass​(java.lang.Class[] generics, int typeVarNum, java.lang.String typeVarName)  
      (package private) FieldSerializer.CachedField newCachedFieldOfGenericType​(java.lang.reflect.Field field, int accessIndex, java.lang.Class[] fieldClass, java.lang.reflect.Type fieldGenericType)
      Special processing for fiels of generic types
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • FieldSerializerGenericsUtil

        public FieldSerializerGenericsUtil​(FieldSerializer serializer)
    • Method Detail

      • buildGenericsScope

        Generics buildGenericsScope​(java.lang.Class clazz,
                                    java.lang.Class[] generics)
        Create a mapping from type variable names (which are declared as type parameters of a generic class) to the concrete classes used for type instantiation.
        Parameters:
        clazz - class with generic type arguments
        generics - concrete types used to instantiate the class
        Returns:
        new scope for type parameters
      • getTypeVarConcreteClass

        private java.lang.Class<?> getTypeVarConcreteClass​(java.lang.Class[] generics,
                                                           int typeVarNum,
                                                           java.lang.String typeVarName)
      • computeFieldGenerics

        java.lang.Class[] computeFieldGenerics​(java.lang.reflect.Type fieldGenericType,
                                               java.lang.reflect.Field field,
                                               java.lang.Class[] fieldClass)
      • newCachedFieldOfGenericType

        FieldSerializer.CachedField newCachedFieldOfGenericType​(java.lang.reflect.Field field,
                                                                int accessIndex,
                                                                java.lang.Class[] fieldClass,
                                                                java.lang.reflect.Type fieldGenericType)
        Special processing for fiels of generic types
      • getGenerics

        public static java.lang.Class[] getGenerics​(java.lang.reflect.Type genericType,
                                                    Kryo kryo)
        Returns the first level of classes or interfaces for a generic type.
        Returns:
        null if the specified type is not generic or its generic types are not classes.