class org.springframework.data.convert.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter implements org.springframework.data.convert.EntityInstantiator
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.data.convert.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter
  super_class: java.lang.Object
{
  private final org.springframework.data.convert.ClassGeneratingEntityInstantiator$ObjectInstantiator instantiator;
    descriptor: Lorg/springframework/data/convert/ClassGeneratingEntityInstantiator$ObjectInstantiator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.springframework.data.convert.ClassGeneratingEntityInstantiator$ObjectInstantiator);
    descriptor: (Lorg/springframework/data/convert/ClassGeneratingEntityInstantiator$ObjectInstantiator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.data.convert.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter this
        start local 1 // org.springframework.data.convert.ClassGeneratingEntityInstantiator$ObjectInstantiator instantiator
         0: .line 210
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 211
            aload 0 /* this */
            aload 1 /* instantiator */
            putfield org.springframework.data.convert.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter.instantiator:Lorg/springframework/data/convert/ClassGeneratingEntityInstantiator$ObjectInstantiator;
         2: .line 212
            return
        end local 1 // org.springframework.data.convert.ClassGeneratingEntityInstantiator$ObjectInstantiator instantiator
        end local 0 // org.springframework.data.convert.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/springframework/data/convert/ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter;
            0    3     1  instantiator  Lorg/springframework/data/convert/ClassGeneratingEntityInstantiator$ObjectInstantiator;
    MethodParameters:
              Name  Flags
      instantiator  

  public <T, E extends org.springframework.data.mapping.PersistentEntity<? extends T, P>, P extends org.springframework.data.mapping.PersistentProperty<P>> T createInstance(E, org.springframework.data.mapping.model.ParameterValueProvider<P>);
    descriptor: (Lorg/springframework/data/mapping/PersistentEntity;Lorg/springframework/data/mapping/model/ParameterValueProvider;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.springframework.data.convert.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter this
        start local 1 // org.springframework.data.mapping.PersistentEntity entity
        start local 2 // org.springframework.data.mapping.model.ParameterValueProvider provider
         0: .line 223
            aload 0 /* this */
            aload 1 /* entity */
            invokeinterface org.springframework.data.mapping.PersistentEntity.getPersistenceConstructor:()Lorg/springframework/data/mapping/PreferredConstructor;
            aload 2 /* provider */
            invokevirtual org.springframework.data.convert.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter.extractInvocationArguments:(Lorg/springframework/data/mapping/PreferredConstructor;Lorg/springframework/data/mapping/model/ParameterValueProvider;)[Ljava/lang/Object;
            astore 3 /* params */
        start local 3 // java.lang.Object[] params
         1: .line 226
            aload 0 /* this */
            getfield org.springframework.data.convert.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter.instantiator:Lorg/springframework/data/convert/ClassGeneratingEntityInstantiator$ObjectInstantiator;
            aload 3 /* params */
            invokeinterface org.springframework.data.convert.ClassGeneratingEntityInstantiator$ObjectInstantiator.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
         2: areturn
         3: .line 227
      StackMap locals: org.springframework.data.convert.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter org.springframework.data.mapping.PersistentEntity org.springframework.data.mapping.model.ParameterValueProvider java.lang.Object[]
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
         4: .line 228
            new org.springframework.data.mapping.model.MappingInstantiationException
            dup
            aload 1 /* entity */
            aload 3 /* params */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            aload 4 /* e */
            invokespecial org.springframework.data.mapping.model.MappingInstantiationException.<init>:(Lorg/springframework/data/mapping/PersistentEntity;Ljava/util/List;Ljava/lang/Exception;)V
            athrow
        end local 4 // java.lang.Exception e
        end local 3 // java.lang.Object[] params
        end local 2 // org.springframework.data.mapping.model.ParameterValueProvider provider
        end local 1 // org.springframework.data.mapping.PersistentEntity entity
        end local 0 // org.springframework.data.convert.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/springframework/data/convert/ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter;
            0    5     1    entity  TE;
            0    5     2  provider  Lorg/springframework/data/mapping/model/ParameterValueProvider<TP;>;
            1    5     3    params  [Ljava/lang/Object;
            4    5     4         e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Exception
    Signature: <T:Ljava/lang/Object;E::Lorg/springframework/data/mapping/PersistentEntity<+TT;TP;>;P::Lorg/springframework/data/mapping/PersistentProperty<TP;>;>(TE;Lorg/springframework/data/mapping/model/ParameterValueProvider<TP;>;)TT;
    MethodParameters:
          Name  Flags
      entity    
      provider  

  private <P extends org.springframework.data.mapping.PersistentProperty<P>, T> [] extractInvocationArguments(org.springframework.data.mapping.PreferredConstructor<? extends T, P>, org.springframework.data.mapping.model.ParameterValueProvider<P>);
    descriptor: (Lorg/springframework/data/mapping/PreferredConstructor;Lorg/springframework/data/mapping/model/ParameterValueProvider;)[Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.springframework.data.convert.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter this
        start local 1 // org.springframework.data.mapping.PreferredConstructor constructor
        start local 2 // org.springframework.data.mapping.model.ParameterValueProvider provider
         0: .line 242
            aload 1 /* constructor */
            ifnull 1
            aload 1 /* constructor */
            invokevirtual org.springframework.data.mapping.PreferredConstructor.hasParameters:()Z
            ifne 2
         1: .line 243
      StackMap locals:
      StackMap stack:
            iconst_0
            invokestatic org.springframework.data.convert.ClassGeneratingEntityInstantiator.allocateArguments:(I)[Ljava/lang/Object;
            areturn
         2: .line 246
      StackMap locals:
      StackMap stack:
            aload 1 /* constructor */
            invokevirtual org.springframework.data.mapping.PreferredConstructor.getConstructor:()Ljava/lang/reflect/Constructor;
            invokevirtual java.lang.reflect.Constructor.getParameterCount:()I
            invokestatic org.springframework.data.convert.ClassGeneratingEntityInstantiator.allocateArguments:(I)[Ljava/lang/Object;
            astore 3 /* params */
        start local 3 // java.lang.Object[] params
         3: .line 248
            iconst_0
            istore 4 /* index */
        start local 4 // int index
         4: .line 249
            aload 1 /* constructor */
            invokevirtual org.springframework.data.mapping.PreferredConstructor.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 7
      StackMap locals: org.springframework.data.convert.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter org.springframework.data.mapping.PreferredConstructor org.springframework.data.mapping.model.ParameterValueProvider java.lang.Object[] int top java.util.Iterator
      StackMap stack:
         5: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.data.mapping.PreferredConstructor$Parameter
            astore 5 /* parameter */
        start local 5 // org.springframework.data.mapping.PreferredConstructor$Parameter parameter
         6: .line 250
            aload 3 /* params */
            iload 4 /* index */
            iinc 4 /* index */ 1
            aload 2 /* provider */
            aload 5 /* parameter */
            invokeinterface org.springframework.data.mapping.model.ParameterValueProvider.getParameterValue:(Lorg/springframework/data/mapping/PreferredConstructor$Parameter;)Ljava/lang/Object;
            aastore
        end local 5 // org.springframework.data.mapping.PreferredConstructor$Parameter parameter
         7: .line 249
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 253
            aload 3 /* params */
            areturn
        end local 4 // int index
        end local 3 // java.lang.Object[] params
        end local 2 // org.springframework.data.mapping.model.ParameterValueProvider provider
        end local 1 // org.springframework.data.mapping.PreferredConstructor constructor
        end local 0 // org.springframework.data.convert.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lorg/springframework/data/convert/ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter;
            0    9     1  constructor  Lorg/springframework/data/mapping/PreferredConstructor<+TT;TP;>;
            0    9     2     provider  Lorg/springframework/data/mapping/model/ParameterValueProvider<TP;>;
            3    9     3       params  [Ljava/lang/Object;
            4    9     4        index  I
            6    7     5    parameter  Lorg/springframework/data/mapping/PreferredConstructor$Parameter<*TP;>;
    Signature: <P::Lorg/springframework/data/mapping/PersistentProperty<TP;>;T:Ljava/lang/Object;>(Lorg/springframework/data/mapping/PreferredConstructor<+TT;TP;>;Lorg/springframework/data/mapping/model/ParameterValueProvider<TP;>;)[Ljava/lang/Object;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
             Name  Flags
      constructor  
      provider     
}
SourceFile: "ClassGeneratingEntityInstantiator.java"
NestHost: org.springframework.data.convert.ClassGeneratingEntityInstantiator
InnerClasses:
  private EntityInstantiatorAdapter = org.springframework.data.convert.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter of org.springframework.data.convert.ClassGeneratingEntityInstantiator
  public abstract ObjectInstantiator = org.springframework.data.convert.ClassGeneratingEntityInstantiator$ObjectInstantiator of org.springframework.data.convert.ClassGeneratingEntityInstantiator
  public Parameter = org.springframework.data.mapping.PreferredConstructor$Parameter of org.springframework.data.mapping.PreferredConstructor