public class org.hibernate.internal.TypeLocatorImpl implements org.hibernate.TypeHelper, java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.internal.TypeLocatorImpl
  super_class: java.lang.Object
{
  private final org.hibernate.type.TypeResolver typeResolver;
    descriptor: Lorg/hibernate/type/TypeResolver;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.hibernate.type.TypeResolver);
    descriptor: (Lorg/hibernate/type/TypeResolver;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.TypeLocatorImpl this
        start local 1 // org.hibernate.type.TypeResolver typeResolver
         0: .line 27
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 28
            aload 0 /* this */
            aload 1 /* typeResolver */
            putfield org.hibernate.internal.TypeLocatorImpl.typeResolver:Lorg/hibernate/type/TypeResolver;
         2: .line 29
            return
        end local 1 // org.hibernate.type.TypeResolver typeResolver
        end local 0 // org.hibernate.internal.TypeLocatorImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/hibernate/internal/TypeLocatorImpl;
            0    3     1  typeResolver  Lorg/hibernate/type/TypeResolver;
    MethodParameters:
              Name  Flags
      typeResolver  

  public org.hibernate.type.BasicType basic(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/type/BasicType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.TypeLocatorImpl this
        start local 1 // java.lang.String name
         0: .line 33
            aload 0 /* this */
            getfield org.hibernate.internal.TypeLocatorImpl.typeResolver:Lorg/hibernate/type/TypeResolver;
            aload 1 /* name */
            invokevirtual org.hibernate.type.TypeResolver.basic:(Ljava/lang/String;)Lorg/hibernate/type/BasicType;
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.hibernate.internal.TypeLocatorImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/TypeLocatorImpl;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public org.hibernate.type.BasicType basic(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/hibernate/type/BasicType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.hibernate.internal.TypeLocatorImpl this
        start local 1 // java.lang.Class javaType
         0: .line 38
            aload 0 /* this */
            getfield org.hibernate.internal.TypeLocatorImpl.typeResolver:Lorg/hibernate/type/TypeResolver;
            aload 1 /* javaType */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual org.hibernate.type.TypeResolver.basic:(Ljava/lang/String;)Lorg/hibernate/type/BasicType;
            astore 2 /* type */
        start local 2 // org.hibernate.type.BasicType type
         1: .line 39
            aload 2 /* type */
            ifnonnull 5
         2: .line 40
            aload 0 /* this */
            aload 1 /* javaType */
            invokevirtual org.hibernate.internal.TypeLocatorImpl.resolvePrimitiveOrPrimitiveWrapperVariantJavaType:(Ljava/lang/Class;)Ljava/lang/Class;
            astore 3 /* variant */
        start local 3 // java.lang.Class variant
         3: .line 41
            aload 3 /* variant */
            ifnull 5
         4: .line 42
            aload 0 /* this */
            getfield org.hibernate.internal.TypeLocatorImpl.typeResolver:Lorg/hibernate/type/TypeResolver;
            aload 3 /* variant */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual org.hibernate.type.TypeResolver.basic:(Ljava/lang/String;)Lorg/hibernate/type/BasicType;
            astore 2 /* type */
        end local 3 // java.lang.Class variant
         5: .line 45
      StackMap locals: org.hibernate.type.BasicType
      StackMap stack:
            aload 2 /* type */
            areturn
        end local 2 // org.hibernate.type.BasicType type
        end local 1 // java.lang.Class javaType
        end local 0 // org.hibernate.internal.TypeLocatorImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/hibernate/internal/TypeLocatorImpl;
            0    6     1  javaType  Ljava/lang/Class;
            1    6     2      type  Lorg/hibernate/type/BasicType;
            3    5     3   variant  Ljava/lang/Class;
    MethodParameters:
          Name  Flags
      javaType  

  private java.lang.Class resolvePrimitiveOrPrimitiveWrapperVariantJavaType(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.TypeLocatorImpl this
        start local 1 // java.lang.Class javaType
         0: .line 50
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            aload 1 /* javaType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 51
            ldc Ljava/lang/Boolean;
            areturn
         2: .line 53
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Boolean;
            aload 1 /* javaType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 54
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            areturn
         4: .line 58
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            aload 1 /* javaType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 59
            ldc Ljava/lang/Character;
            areturn
         6: .line 61
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Character;
            aload 1 /* javaType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 62
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            areturn
         8: .line 66
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            aload 1 /* javaType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 67
            ldc Ljava/lang/Byte;
            areturn
        10: .line 69
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Byte;
            aload 1 /* javaType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 70
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            areturn
        12: .line 74
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            aload 1 /* javaType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 75
            ldc Ljava/lang/Short;
            areturn
        14: .line 77
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Short;
            aload 1 /* javaType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 78
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            areturn
        16: .line 82
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aload 1 /* javaType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 18
        17: .line 83
            ldc Ljava/lang/Integer;
            areturn
        18: .line 85
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Integer;
            aload 1 /* javaType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 20
        19: .line 86
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            areturn
        20: .line 90
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aload 1 /* javaType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 22
        21: .line 91
            ldc Ljava/lang/Long;
            areturn
        22: .line 93
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Long;
            aload 1 /* javaType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 24
        23: .line 94
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            areturn
        24: .line 98
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            aload 1 /* javaType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 26
        25: .line 99
            ldc Ljava/lang/Float;
            areturn
        26: .line 101
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Float;
            aload 1 /* javaType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 28
        27: .line 102
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            areturn
        28: .line 106
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            aload 1 /* javaType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 30
        29: .line 107
            ldc Ljava/lang/Double;
            areturn
        30: .line 109
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Double;
            aload 1 /* javaType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 32
        31: .line 110
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            areturn
        32: .line 113
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.Class javaType
        end local 0 // org.hibernate.internal.TypeLocatorImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   33     0      this  Lorg/hibernate/internal/TypeLocatorImpl;
            0   33     1  javaType  Ljava/lang/Class;
    MethodParameters:
          Name  Flags
      javaType  

  public org.hibernate.type.Type heuristicType(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/type/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.TypeLocatorImpl this
        start local 1 // java.lang.String name
         0: .line 118
            aload 0 /* this */
            getfield org.hibernate.internal.TypeLocatorImpl.typeResolver:Lorg/hibernate/type/TypeResolver;
            aload 1 /* name */
            invokevirtual org.hibernate.type.TypeResolver.heuristicType:(Ljava/lang/String;)Lorg/hibernate/type/Type;
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.hibernate.internal.TypeLocatorImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/TypeLocatorImpl;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public org.hibernate.type.Type entity(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/hibernate/type/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.TypeLocatorImpl this
        start local 1 // java.lang.Class entityClass
         0: .line 123
            aload 0 /* this */
            aload 1 /* entityClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual org.hibernate.internal.TypeLocatorImpl.entity:(Ljava/lang/String;)Lorg/hibernate/type/Type;
            areturn
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.TypeLocatorImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/internal/TypeLocatorImpl;
            0    1     1  entityClass  Ljava/lang/Class;
    MethodParameters:
             Name  Flags
      entityClass  

  public org.hibernate.type.Type entity(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/type/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.TypeLocatorImpl this
        start local 1 // java.lang.String entityName
         0: .line 128
            aload 0 /* this */
            getfield org.hibernate.internal.TypeLocatorImpl.typeResolver:Lorg/hibernate/type/TypeResolver;
            invokevirtual org.hibernate.type.TypeResolver.getTypeFactory:()Lorg/hibernate/type/TypeFactory;
            aload 1 /* entityName */
            invokevirtual org.hibernate.type.TypeFactory.manyToOne:(Ljava/lang/String;)Lorg/hibernate/type/EntityType;
            areturn
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.TypeLocatorImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/internal/TypeLocatorImpl;
            0    1     1  entityName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      entityName  

  public org.hibernate.type.Type custom(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/hibernate/type/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.internal.TypeLocatorImpl this
        start local 1 // java.lang.Class userTypeClass
         0: .line 134
            aload 0 /* this */
            aload 1 /* userTypeClass */
            aconst_null
            invokevirtual org.hibernate.internal.TypeLocatorImpl.custom:(Ljava/lang/Class;Ljava/util/Properties;)Lorg/hibernate/type/Type;
            areturn
        end local 1 // java.lang.Class userTypeClass
        end local 0 // org.hibernate.internal.TypeLocatorImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/hibernate/internal/TypeLocatorImpl;
            0    1     1  userTypeClass  Ljava/lang/Class;
    MethodParameters:
               Name  Flags
      userTypeClass  

  public org.hibernate.type.Type custom(java.lang.Class, java.util.Properties);
    descriptor: (Ljava/lang/Class;Ljava/util/Properties;)Lorg/hibernate/type/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.internal.TypeLocatorImpl this
        start local 1 // java.lang.Class userTypeClass
        start local 2 // java.util.Properties parameters
         0: .line 140
            ldc Lorg/hibernate/usertype/CompositeUserType;
            aload 1 /* userTypeClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 2
         1: .line 141
            aload 0 /* this */
            getfield org.hibernate.internal.TypeLocatorImpl.typeResolver:Lorg/hibernate/type/TypeResolver;
            invokevirtual org.hibernate.type.TypeResolver.getTypeFactory:()Lorg/hibernate/type/TypeFactory;
            aload 1 /* userTypeClass */
            aload 2 /* parameters */
            invokevirtual org.hibernate.type.TypeFactory.customComponent:(Ljava/lang/Class;Ljava/util/Properties;)Lorg/hibernate/type/CompositeCustomType;
            areturn
         2: .line 144
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.TypeLocatorImpl.typeResolver:Lorg/hibernate/type/TypeResolver;
            invokevirtual org.hibernate.type.TypeResolver.getTypeFactory:()Lorg/hibernate/type/TypeFactory;
            aload 1 /* userTypeClass */
            aload 2 /* parameters */
            invokevirtual org.hibernate.type.TypeFactory.custom:(Ljava/lang/Class;Ljava/util/Properties;)Lorg/hibernate/type/CustomType;
            areturn
        end local 2 // java.util.Properties parameters
        end local 1 // java.lang.Class userTypeClass
        end local 0 // org.hibernate.internal.TypeLocatorImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/hibernate/internal/TypeLocatorImpl;
            0    3     1  userTypeClass  Ljava/lang/Class;
            0    3     2     parameters  Ljava/util/Properties;
    MethodParameters:
               Name  Flags
      userTypeClass  
      parameters     

  public org.hibernate.type.Type any(org.hibernate.type.Type, org.hibernate.type.Type);
    descriptor: (Lorg/hibernate/type/Type;Lorg/hibernate/type/Type;)Lorg/hibernate/type/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.internal.TypeLocatorImpl this
        start local 1 // org.hibernate.type.Type metaType
        start local 2 // org.hibernate.type.Type identifierType
         0: .line 150
            aload 0 /* this */
            getfield org.hibernate.internal.TypeLocatorImpl.typeResolver:Lorg/hibernate/type/TypeResolver;
            invokevirtual org.hibernate.type.TypeResolver.getTypeFactory:()Lorg/hibernate/type/TypeFactory;
            aload 1 /* metaType */
            aload 2 /* identifierType */
            invokevirtual org.hibernate.type.TypeFactory.any:(Lorg/hibernate/type/Type;Lorg/hibernate/type/Type;)Lorg/hibernate/type/Type;
            areturn
        end local 2 // org.hibernate.type.Type identifierType
        end local 1 // org.hibernate.type.Type metaType
        end local 0 // org.hibernate.internal.TypeLocatorImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/hibernate/internal/TypeLocatorImpl;
            0    1     1        metaType  Lorg/hibernate/type/Type;
            0    1     2  identifierType  Lorg/hibernate/type/Type;
    MethodParameters:
                Name  Flags
      metaType        
      identifierType  
}
SourceFile: "TypeLocatorImpl.java"