public final class org.hibernate.hql.internal.HolderInstantiator
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.hibernate.hql.internal.HolderInstantiator
  super_class: java.lang.Object
{
  public static final org.hibernate.hql.internal.HolderInstantiator NOOP_INSTANTIATOR;
    descriptor: Lorg/hibernate/hql/internal/HolderInstantiator;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private final org.hibernate.transform.ResultTransformer transformer;
    descriptor: Lorg/hibernate/transform/ResultTransformer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.util.function.Supplier<java.lang.String[]> queryReturnAliasesSupplier;
    descriptor: Ljava/util/function/Supplier;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/function/Supplier<[Ljava/lang/String;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 20
            new org.hibernate.hql.internal.HolderInstantiator
            dup
            aconst_null
            invokespecial org.hibernate.hql.internal.HolderInstantiator.<init>:(Lorg/hibernate/transform/ResultTransformer;)V
            putstatic org.hibernate.hql.internal.HolderInstantiator.NOOP_INSTANTIATOR:Lorg/hibernate/hql/internal/HolderInstantiator;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.hibernate.hql.internal.HolderInstantiator getHolderInstantiator(org.hibernate.transform.ResultTransformer, org.hibernate.transform.ResultTransformer, java.lang.String[]);
    descriptor: (Lorg/hibernate/transform/ResultTransformer;Lorg/hibernate/transform/ResultTransformer;[Ljava/lang/String;)Lorg/hibernate/hql/internal/HolderInstantiator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.hibernate.transform.ResultTransformer selectNewTransformer
        start local 1 // org.hibernate.transform.ResultTransformer customTransformer
        start local 2 // java.lang.String[] queryReturnAliases
         0: .line 26
            new org.hibernate.hql.internal.HolderInstantiator
            dup
         1: .line 27
            aload 0 /* selectNewTransformer */
            aload 1 /* customTransformer */
            invokestatic org.hibernate.hql.internal.HolderInstantiator.resolveResultTransformer:(Lorg/hibernate/transform/ResultTransformer;Lorg/hibernate/transform/ResultTransformer;)Lorg/hibernate/transform/ResultTransformer;
         2: .line 28
            aload 2 /* queryReturnAliases */
         3: .line 26
            invokespecial org.hibernate.hql.internal.HolderInstantiator.<init>:(Lorg/hibernate/transform/ResultTransformer;[Ljava/lang/String;)V
            areturn
        end local 2 // java.lang.String[] queryReturnAliases
        end local 1 // org.hibernate.transform.ResultTransformer customTransformer
        end local 0 // org.hibernate.transform.ResultTransformer selectNewTransformer
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    4     0  selectNewTransformer  Lorg/hibernate/transform/ResultTransformer;
            0    4     1     customTransformer  Lorg/hibernate/transform/ResultTransformer;
            0    4     2    queryReturnAliases  [Ljava/lang/String;
    MethodParameters:
                      Name  Flags
      selectNewTransformer  
      customTransformer     
      queryReturnAliases    

  public static org.hibernate.transform.ResultTransformer resolveResultTransformer(org.hibernate.transform.ResultTransformer, org.hibernate.transform.ResultTransformer);
    descriptor: (Lorg/hibernate/transform/ResultTransformer;Lorg/hibernate/transform/ResultTransformer;)Lorg/hibernate/transform/ResultTransformer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.transform.ResultTransformer selectNewTransformer
        start local 1 // org.hibernate.transform.ResultTransformer customTransformer
         0: .line 33
            aload 0 /* selectNewTransformer */
            ifnull 1
            aload 0 /* selectNewTransformer */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* customTransformer */
      StackMap locals:
      StackMap stack: org.hibernate.transform.ResultTransformer
         2: areturn
        end local 1 // org.hibernate.transform.ResultTransformer customTransformer
        end local 0 // org.hibernate.transform.ResultTransformer selectNewTransformer
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    3     0  selectNewTransformer  Lorg/hibernate/transform/ResultTransformer;
            0    3     1     customTransformer  Lorg/hibernate/transform/ResultTransformer;
    MethodParameters:
                      Name  Flags
      selectNewTransformer  
      customTransformer     

  public static org.hibernate.transform.ResultTransformer createSelectNewTransformer(java.lang.reflect.Constructor, boolean, boolean);
    descriptor: (Ljava/lang/reflect/Constructor;ZZ)Lorg/hibernate/transform/ResultTransformer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.reflect.Constructor constructor
        start local 1 // boolean returnMaps
        start local 2 // boolean returnLists
         0: .line 37
            aload 0 /* constructor */
            ifnull 2
         1: .line 38
            new org.hibernate.transform.AliasToBeanConstructorResultTransformer
            dup
            aload 0 /* constructor */
            invokespecial org.hibernate.transform.AliasToBeanConstructorResultTransformer.<init>:(Ljava/lang/reflect/Constructor;)V
            areturn
         2: .line 40
      StackMap locals:
      StackMap stack:
            iload 1 /* returnMaps */
            ifeq 4
         3: .line 41
            getstatic org.hibernate.transform.Transformers.ALIAS_TO_ENTITY_MAP:Lorg/hibernate/transform/AliasToEntityMapResultTransformer;
            areturn
         4: .line 43
      StackMap locals:
      StackMap stack:
            iload 2 /* returnLists */
            ifeq 6
         5: .line 44
            getstatic org.hibernate.transform.Transformers.TO_LIST:Lorg/hibernate/transform/ToListResultTransformer;
            areturn
         6: .line 47
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // boolean returnLists
        end local 1 // boolean returnMaps
        end local 0 // java.lang.reflect.Constructor constructor
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0  constructor  Ljava/lang/reflect/Constructor;
            0    7     1   returnMaps  Z
            0    7     2  returnLists  Z
    MethodParameters:
             Name  Flags
      constructor  
      returnMaps   
      returnLists  

  public static org.hibernate.hql.internal.HolderInstantiator createClassicHolderInstantiator(java.lang.reflect.Constructor, org.hibernate.transform.ResultTransformer);
    descriptor: (Ljava/lang/reflect/Constructor;Lorg/hibernate/transform/ResultTransformer;)Lorg/hibernate/hql/internal/HolderInstantiator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.reflect.Constructor constructor
        start local 1 // org.hibernate.transform.ResultTransformer transformer
         0: .line 53
            new org.hibernate.hql.internal.HolderInstantiator
            dup
            aload 0 /* constructor */
            aload 1 /* transformer */
            invokestatic org.hibernate.hql.internal.HolderInstantiator.resolveClassicResultTransformer:(Ljava/lang/reflect/Constructor;Lorg/hibernate/transform/ResultTransformer;)Lorg/hibernate/transform/ResultTransformer;
            invokespecial org.hibernate.hql.internal.HolderInstantiator.<init>:(Lorg/hibernate/transform/ResultTransformer;)V
            areturn
        end local 1 // org.hibernate.transform.ResultTransformer transformer
        end local 0 // java.lang.reflect.Constructor constructor
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  constructor  Ljava/lang/reflect/Constructor;
            0    1     1  transformer  Lorg/hibernate/transform/ResultTransformer;
    MethodParameters:
             Name  Flags
      constructor  
      transformer  

  public static org.hibernate.transform.ResultTransformer resolveClassicResultTransformer(java.lang.reflect.Constructor, org.hibernate.transform.ResultTransformer);
    descriptor: (Ljava/lang/reflect/Constructor;Lorg/hibernate/transform/ResultTransformer;)Lorg/hibernate/transform/ResultTransformer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.reflect.Constructor constructor
        start local 1 // org.hibernate.transform.ResultTransformer transformer
         0: .line 59
            aload 0 /* constructor */
            ifnull 1
            new org.hibernate.transform.AliasToBeanConstructorResultTransformer
            dup
            aload 0 /* constructor */
            invokespecial org.hibernate.transform.AliasToBeanConstructorResultTransformer.<init>:(Ljava/lang/reflect/Constructor;)V
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* transformer */
      StackMap locals:
      StackMap stack: org.hibernate.transform.ResultTransformer
         2: areturn
        end local 1 // org.hibernate.transform.ResultTransformer transformer
        end local 0 // java.lang.reflect.Constructor constructor
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  constructor  Ljava/lang/reflect/Constructor;
            0    3     1  transformer  Lorg/hibernate/transform/ResultTransformer;
    MethodParameters:
             Name  Flags
      constructor  
      transformer  

  public void <init>(org.hibernate.transform.ResultTransformer);
    descriptor: (Lorg/hibernate/transform/ResultTransformer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.HolderInstantiator this
        start local 1 // org.hibernate.transform.ResultTransformer transformer
         0: .line 62
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 23
            aload 0 /* this */
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/hibernate/hql/internal/HolderInstantiator.lambda$0()[Ljava/lang/String; (6)
                  ()[Ljava/lang/String;
            putfield org.hibernate.hql.internal.HolderInstantiator.queryReturnAliasesSupplier:Ljava/util/function/Supplier;
         2: .line 63
            aload 0 /* this */
            aload 1 /* transformer */
            putfield org.hibernate.hql.internal.HolderInstantiator.transformer:Lorg/hibernate/transform/ResultTransformer;
         3: .line 64
            return
        end local 1 // org.hibernate.transform.ResultTransformer transformer
        end local 0 // org.hibernate.hql.internal.HolderInstantiator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/hibernate/hql/internal/HolderInstantiator;
            0    4     1  transformer  Lorg/hibernate/transform/ResultTransformer;
    MethodParameters:
             Name  Flags
      transformer  

  public void <init>(org.hibernate.transform.ResultTransformer, java.lang.String[]);
    descriptor: (Lorg/hibernate/transform/ResultTransformer;[Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.hibernate.hql.internal.HolderInstantiator this
        start local 1 // org.hibernate.transform.ResultTransformer transformer
        start local 2 // java.lang.String[] queryReturnAliases
         0: .line 66
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 23
            aload 0 /* this */
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/hibernate/hql/internal/HolderInstantiator.lambda$0()[Ljava/lang/String; (6)
                  ()[Ljava/lang/String;
            putfield org.hibernate.hql.internal.HolderInstantiator.queryReturnAliasesSupplier:Ljava/util/function/Supplier;
         2: .line 67
            aload 0 /* this */
            aload 1 /* transformer */
            putfield org.hibernate.hql.internal.HolderInstantiator.transformer:Lorg/hibernate/transform/ResultTransformer;
         3: .line 68
            aload 0 /* this */
            aload 2 /* queryReturnAliases */
            invokedynamic get([Ljava/lang/String;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/hibernate/hql/internal/HolderInstantiator.lambda$1([Ljava/lang/String;)[Ljava/lang/String; (6)
                  ()[Ljava/lang/String;
            putfield org.hibernate.hql.internal.HolderInstantiator.queryReturnAliasesSupplier:Ljava/util/function/Supplier;
         4: .line 69
            return
        end local 2 // java.lang.String[] queryReturnAliases
        end local 1 // org.hibernate.transform.ResultTransformer transformer
        end local 0 // org.hibernate.hql.internal.HolderInstantiator this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0                this  Lorg/hibernate/hql/internal/HolderInstantiator;
            0    5     1         transformer  Lorg/hibernate/transform/ResultTransformer;
            0    5     2  queryReturnAliases  [Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      transformer         
      queryReturnAliases  

  public void <init>(org.hibernate.transform.ResultTransformer, java.util.function.Supplier<java.lang.String[]>);
    descriptor: (Lorg/hibernate/transform/ResultTransformer;Ljava/util/function/Supplier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.hibernate.hql.internal.HolderInstantiator this
        start local 1 // org.hibernate.transform.ResultTransformer transformer
        start local 2 // java.util.function.Supplier queryReturnAliasesSupplier
         0: .line 71
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 23
            aload 0 /* this */
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/hibernate/hql/internal/HolderInstantiator.lambda$0()[Ljava/lang/String; (6)
                  ()[Ljava/lang/String;
            putfield org.hibernate.hql.internal.HolderInstantiator.queryReturnAliasesSupplier:Ljava/util/function/Supplier;
         2: .line 72
            aload 0 /* this */
            aload 1 /* transformer */
            putfield org.hibernate.hql.internal.HolderInstantiator.transformer:Lorg/hibernate/transform/ResultTransformer;
         3: .line 73
            aload 0 /* this */
            aload 2 /* queryReturnAliasesSupplier */
            putfield org.hibernate.hql.internal.HolderInstantiator.queryReturnAliasesSupplier:Ljava/util/function/Supplier;
         4: .line 74
            return
        end local 2 // java.util.function.Supplier queryReturnAliasesSupplier
        end local 1 // org.hibernate.transform.ResultTransformer transformer
        end local 0 // org.hibernate.hql.internal.HolderInstantiator this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    5     0                        this  Lorg/hibernate/hql/internal/HolderInstantiator;
            0    5     1                 transformer  Lorg/hibernate/transform/ResultTransformer;
            0    5     2  queryReturnAliasesSupplier  Ljava/util/function/Supplier<[Ljava/lang/String;>;
    Signature: (Lorg/hibernate/transform/ResultTransformer;Ljava/util/function/Supplier<[Ljava/lang/String;>;)V
    MethodParameters:
                            Name  Flags
      transformer                 
      queryReturnAliasesSupplier  

  public boolean isRequired();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.HolderInstantiator this
         0: .line 77
            aload 0 /* this */
            getfield org.hibernate.hql.internal.HolderInstantiator.transformer:Lorg/hibernate/transform/ResultTransformer;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.hibernate.hql.internal.HolderInstantiator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/hql/internal/HolderInstantiator;

  public java.lang.Object instantiate(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.HolderInstantiator this
        start local 1 // java.lang.Object[] row
         0: .line 81
            aload 0 /* this */
            getfield org.hibernate.hql.internal.HolderInstantiator.transformer:Lorg/hibernate/transform/ResultTransformer;
            ifnonnull 2
         1: .line 82
            aload 1 /* row */
            areturn
         2: .line 85
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.internal.HolderInstantiator.transformer:Lorg/hibernate/transform/ResultTransformer;
            aload 1 /* row */
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.HolderInstantiator.getQueryReturnAliases:()[Ljava/lang/String;
            invokeinterface org.hibernate.transform.ResultTransformer.transformTuple:([Ljava/lang/Object;[Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object[] row
        end local 0 // org.hibernate.hql.internal.HolderInstantiator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/hql/internal/HolderInstantiator;
            0    3     1   row  [Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      row   

  public java.lang.String[] getQueryReturnAliases();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.HolderInstantiator this
         0: .line 90
            aload 0 /* this */
            getfield org.hibernate.hql.internal.HolderInstantiator.queryReturnAliasesSupplier:Ljava/util/function/Supplier;
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 0 // org.hibernate.hql.internal.HolderInstantiator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/HolderInstantiator;

  public org.hibernate.transform.ResultTransformer getResultTransformer();
    descriptor: ()Lorg/hibernate/transform/ResultTransformer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.HolderInstantiator this
         0: .line 94
            aload 0 /* this */
            getfield org.hibernate.hql.internal.HolderInstantiator.transformer:Lorg/hibernate/transform/ResultTransformer;
            areturn
        end local 0 // org.hibernate.hql.internal.HolderInstantiator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/HolderInstantiator;

  private static java.lang.String[] lambda$0();
    descriptor: ()[Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 23
            aconst_null
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.String[] lambda$1(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 68
            aload 0
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "HolderInstantiator.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles