Class Signatures


  • public final class Signatures
    extends java.lang.Object
    Encode signatures that use types outside the type system of the Java Virtual Machine. See also the JVM spec, section "4.7.9.1. Signatures". If anything goes wrong during encoding a RuntimeException is thrown.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private Signatures()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      private static java.lang.String classTypeBase​(java.lang.String className)
      ClassTypeSignature base
      private static java.lang.String encodeClassName​(java.lang.String className)  
      private static <T> java.lang.Class<T> getBound​(java.lang.reflect.Type[] bounds)  
      private static <T> java.lang.Class<T> getTypeParamBoundRawType​(java.lang.reflect.Type type)  
      private static void javaType​(java.lang.reflect.Type type, java.lang.StringBuilder builder)
      JavaTypeSignature
      static java.lang.String methodSignature​(java.lang.reflect.Method method)  
      private static void nonGenericType​(java.lang.Class<?> clazz, java.lang.StringBuilder builder)
      BaseType, ClassTypeSignature or ArrayTypeSignature
      private static void parameterizedType​(java.lang.reflect.ParameterizedType parameterizedType, java.lang.StringBuilder builder)  
      private static void typeParameter​(java.lang.reflect.TypeVariable<?> typeVariable, java.lang.StringBuilder builder)
      TypeParameter
      private static void typeVariable​(java.lang.reflect.TypeVariable<?> typeVariable, java.lang.StringBuilder builder)  
      private static void wildcardType​(java.lang.reflect.WildcardType wildcard, java.lang.StringBuilder builder)
      Note that Java language does not support more than one upper/lower bound.
      • Methods inherited from class java.lang.Object

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

      • Signatures

        private Signatures()
    • Method Detail

      • methodSignature

        public static java.lang.String methodSignature​(java.lang.reflect.Method method)
        Parameters:
        method -
        Returns:
        the JVM method signature
      • typeParameter

        private static void typeParameter​(java.lang.reflect.TypeVariable<?> typeVariable,
                                          java.lang.StringBuilder builder)
        TypeParameter
        Parameters:
        typeVariable -
        builder -
      • javaType

        private static void javaType​(java.lang.reflect.Type type,
                                     java.lang.StringBuilder builder)
        JavaTypeSignature
        Parameters:
        type -
        builder -
      • wildcardType

        private static void wildcardType​(java.lang.reflect.WildcardType wildcard,
                                         java.lang.StringBuilder builder)
        Note that Java language does not support more than one upper/lower bound.
        Parameters:
        wildcard -
        builder -
      • typeVariable

        private static void typeVariable​(java.lang.reflect.TypeVariable<?> typeVariable,
                                         java.lang.StringBuilder builder)
      • parameterizedType

        private static void parameterizedType​(java.lang.reflect.ParameterizedType parameterizedType,
                                              java.lang.StringBuilder builder)
      • nonGenericType

        private static void nonGenericType​(java.lang.Class<?> clazz,
                                           java.lang.StringBuilder builder)
        BaseType, ClassTypeSignature or ArrayTypeSignature
        Parameters:
        clazz -
      • classTypeBase

        private static java.lang.String classTypeBase​(java.lang.String className)
        ClassTypeSignature base
        Parameters:
        clazz -
        builder -
      • encodeClassName

        private static java.lang.String encodeClassName​(java.lang.String className)
      • getTypeParamBoundRawType

        private static <T> java.lang.Class<T> getTypeParamBoundRawType​(java.lang.reflect.Type type)
      • getBound

        private static <T> java.lang.Class<T> getBound​(java.lang.reflect.Type[] bounds)