public class org.hibernate.type.descriptor.java.spi.RegistryHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.type.descriptor.java.spi.RegistryHelper
  super_class: java.lang.Object
{
  private static final org.jboss.logging.Logger log;
    descriptor: Lorg/jboss/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final org.hibernate.type.descriptor.java.spi.RegistryHelper INSTANCE;
    descriptor: Lorg/hibernate/type/descriptor/java/spi/RegistryHelper;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 23
            ldc Lorg/hibernate/type/descriptor/java/spi/RegistryHelper;
            invokestatic org.jboss.logging.Logger.getLogger:(Ljava/lang/Class;)Lorg/jboss/logging/Logger;
            putstatic org.hibernate.type.descriptor.java.spi.RegistryHelper.log:Lorg/jboss/logging/Logger;
         1: .line 28
            new org.hibernate.type.descriptor.java.spi.RegistryHelper
            dup
            invokespecial org.hibernate.type.descriptor.java.spi.RegistryHelper.<init>:()V
            putstatic org.hibernate.type.descriptor.java.spi.RegistryHelper.INSTANCE:Lorg/hibernate/type/descriptor/java/spi/RegistryHelper;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.type.descriptor.java.spi.RegistryHelper this
         0: .line 30
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 31
            return
        end local 0 // org.hibernate.type.descriptor.java.spi.RegistryHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/type/descriptor/java/spi/RegistryHelper;

  public <J> org.hibernate.type.descriptor.java.JavaTypeDescriptor<J> resolveDescriptor(java.util.Map<java.lang.Class, org.hibernate.type.descriptor.java.JavaTypeDescriptor>, java.lang.Class<J>, java.util.function.Supplier<org.hibernate.type.descriptor.java.JavaTypeDescriptor<J>>);
    descriptor: (Ljava/util/Map;Ljava/lang/Class;Ljava/util/function/Supplier;)Lorg/hibernate/type/descriptor/java/JavaTypeDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // org.hibernate.type.descriptor.java.spi.RegistryHelper this
        start local 1 // java.util.Map descriptorsByClass
        start local 2 // java.lang.Class cls
        start local 3 // java.util.function.Supplier defaultValueSupplier
         0: .line 38
            aload 2 /* cls */
            ifnonnull 2
         1: .line 39
            new java.lang.IllegalArgumentException
            dup
            ldc "Class passed to locate JavaTypeDescriptor cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 42
      StackMap locals:
      StackMap stack:
            aload 1 /* descriptorsByClass */
            aload 2 /* cls */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.type.descriptor.java.JavaTypeDescriptor
            astore 4 /* descriptor */
        start local 4 // org.hibernate.type.descriptor.java.JavaTypeDescriptor descriptor
         3: .line 43
            aload 4 /* descriptor */
            ifnull 5
         4: .line 44
            aload 4 /* descriptor */
            areturn
         5: .line 47
      StackMap locals: org.hibernate.type.descriptor.java.JavaTypeDescriptor
      StackMap stack:
            aload 2 /* cls */
            invokevirtual java.lang.Class.isEnum:()Z
            ifeq 9
         6: .line 48
            new org.hibernate.type.descriptor.java.EnumJavaTypeDescriptor
            dup
            aload 2 /* cls */
            invokespecial org.hibernate.type.descriptor.java.EnumJavaTypeDescriptor.<init>:(Ljava/lang/Class;)V
            astore 4 /* descriptor */
         7: .line 49
            aload 1 /* descriptorsByClass */
            aload 2 /* cls */
            aload 4 /* descriptor */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 50
            aload 4 /* descriptor */
            areturn
         9: .line 54
      StackMap locals:
      StackMap stack:
            aload 1 /* descriptorsByClass */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 14
      StackMap locals: org.hibernate.type.descriptor.java.spi.RegistryHelper java.util.Map java.lang.Class java.util.function.Supplier org.hibernate.type.descriptor.java.JavaTypeDescriptor top java.util.Iterator
      StackMap stack:
        10: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 5 /* entry */
        start local 5 // java.util.Map$Entry entry
        11: .line 55
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Class
            aload 2 /* cls */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 14
        12: .line 56
            getstatic org.hibernate.type.descriptor.java.spi.RegistryHelper.log:Lorg/jboss/logging/Logger;
            ldc "Using  cached JavaTypeDescriptor instance for Java class [%s]"
            aload 2 /* cls */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual org.jboss.logging.Logger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
        13: .line 57
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.hibernate.type.descriptor.java.JavaTypeDescriptor
            areturn
        end local 5 // java.util.Map$Entry entry
        14: .line 54
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        15: .line 61
            aload 3 /* defaultValueSupplier */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast org.hibernate.type.descriptor.java.JavaTypeDescriptor
            areturn
        end local 4 // org.hibernate.type.descriptor.java.JavaTypeDescriptor descriptor
        end local 3 // java.util.function.Supplier defaultValueSupplier
        end local 2 // java.lang.Class cls
        end local 1 // java.util.Map descriptorsByClass
        end local 0 // org.hibernate.type.descriptor.java.spi.RegistryHelper this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   16     0                  this  Lorg/hibernate/type/descriptor/java/spi/RegistryHelper;
            0   16     1    descriptorsByClass  Ljava/util/Map<Ljava/lang/Class;Lorg/hibernate/type/descriptor/java/JavaTypeDescriptor;>;
            0   16     2                   cls  Ljava/lang/Class<TJ;>;
            0   16     3  defaultValueSupplier  Ljava/util/function/Supplier<Lorg/hibernate/type/descriptor/java/JavaTypeDescriptor<TJ;>;>;
            3   16     4            descriptor  Lorg/hibernate/type/descriptor/java/JavaTypeDescriptor<TJ;>;
           11   14     5                 entry  Ljava/util/Map$Entry<Ljava/lang/Class;Lorg/hibernate/type/descriptor/java/JavaTypeDescriptor;>;
    Signature: <J:Ljava/lang/Object;>(Ljava/util/Map<Ljava/lang/Class;Lorg/hibernate/type/descriptor/java/JavaTypeDescriptor;>;Ljava/lang/Class<TJ;>;Ljava/util/function/Supplier<Lorg/hibernate/type/descriptor/java/JavaTypeDescriptor<TJ;>;>;)Lorg/hibernate/type/descriptor/java/JavaTypeDescriptor<TJ;>;
    MethodParameters:
                      Name  Flags
      descriptorsByClass    
      cls                   
      defaultValueSupplier  
}
SourceFile: "RegistryHelper.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map