public abstract class org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers extends java.lang.Enum<org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers>
  minor version: 0
  major version: 59
  flags: flags: (0x4421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT, ACC_ANNOTATION
  this_class: org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers
  super_class: java.lang.Enum
{
  public static final org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers DEFAULT;
    descriptor: Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION
    Signature: Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;

  public static final org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers KOTLIN;
    descriptor: Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION
    Signature: Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;

  private static final org.springframework.core.ParameterNameDiscoverer PARAMETER_NAME_DISCOVERER;
    descriptor: Lorg/springframework/core/ParameterNameDiscoverer;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers[] ENUM$VALUES;
    descriptor: [Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;
    flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 93
            new org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers$1
            dup
            ldc "DEFAULT"
            iconst_0
            invokespecial org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers$1.<init>:(Ljava/lang/String;I)V
         1: .line 96
            putstatic org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers.DEFAULT:Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;
         2: .line 138
            new org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers$2
            dup
            ldc "KOTLIN"
            iconst_1
            invokespecial org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers$2.<init>:(Ljava/lang/String;I)V
         3: .line 141
            putstatic org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers.KOTLIN:Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;
            iconst_2
            anewarray org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers
            dup
            iconst_0
            getstatic org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers.DEFAULT:Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;
            aastore
            dup
            iconst_1
            getstatic org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers.KOTLIN:Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;
            aastore
            putstatic org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers.ENUM$VALUES:[Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;
         4: .line 176
            new org.springframework.core.DefaultParameterNameDiscoverer
            dup
            invokespecial org.springframework.core.DefaultParameterNameDiscoverer.<init>:()V
            putstatic org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers.PARAMETER_NAME_DISCOVERER:Lorg/springframework/core/ParameterNameDiscoverer;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers this
         0: .line 91
            aload 0 /* this */
            aload 1
            iload 2
            invokespecial java.lang.Enum.<init>:(Ljava/lang/String;I)V
            return
        end local 0 // org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;
    MethodParameters:
               Name  Flags
      $enum$name     
      $enum$ordinal  

  private static org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers findDiscoverer(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class type
         0: .line 185
            aload 0 /* type */
            invokestatic org.springframework.data.util.ReflectionUtils.isSupportedKotlinClass:(Ljava/lang/Class;)Z
            ifeq 1
            getstatic org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers.KOTLIN:Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;
            goto 2
      StackMap locals:
      StackMap stack:
         1: getstatic org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers.DEFAULT:Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;
      StackMap locals:
      StackMap stack: org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers
         2: areturn
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  type  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;
    MethodParameters:
      Name  Flags
      type  

  abstract <T, P extends org.springframework.data.mapping.PersistentProperty<P>> org.springframework.data.mapping.PreferredConstructor<T, P> discover(org.springframework.data.util.TypeInformation<T>, org.springframework.data.mapping.PersistentEntity<T, P>);
    descriptor: (Lorg/springframework/data/util/TypeInformation;Lorg/springframework/data/mapping/PersistentEntity;)Lorg/springframework/data/mapping/PreferredConstructor;
    flags: (0x0400) ACC_ABSTRACT
    Signature: <T:Ljava/lang/Object;P::Lorg/springframework/data/mapping/PersistentProperty<TP;>;>(Lorg/springframework/data/util/TypeInformation<TT;>;Lorg/springframework/data/mapping/PersistentEntity<TT;TP;>;)Lorg/springframework/data/mapping/PreferredConstructor<TT;TP;>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
        Name  Flags
      type    
      entity  

  private static <T, P extends org.springframework.data.mapping.PersistentProperty<P>> org.springframework.data.mapping.PreferredConstructor<T, P> buildPreferredConstructor(java.lang.reflect.Constructor<?>, org.springframework.data.util.TypeInformation<T>, org.springframework.data.mapping.PersistentEntity<T, P>);
    descriptor: (Ljava/lang/reflect/Constructor;Lorg/springframework/data/util/TypeInformation;Lorg/springframework/data/mapping/PersistentEntity;)Lorg/springframework/data/mapping/PreferredConstructor;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=11, args_size=3
        start local 0 // java.lang.reflect.Constructor constructor
        start local 1 // org.springframework.data.util.TypeInformation typeInformation
        start local 2 // org.springframework.data.mapping.PersistentEntity entity
         0: .line 203
            aload 0 /* constructor */
            invokevirtual java.lang.reflect.Constructor.getParameterCount:()I
            ifne 2
         1: .line 204
            new org.springframework.data.mapping.PreferredConstructor
            dup
            aload 0 /* constructor */
            iconst_0
            anewarray org.springframework.data.mapping.PreferredConstructor$Parameter
            invokespecial org.springframework.data.mapping.PreferredConstructor.<init>:(Ljava/lang/reflect/Constructor;[Lorg/springframework/data/mapping/PreferredConstructor$Parameter;)V
            areturn
         2: .line 207
      StackMap locals:
      StackMap stack:
            aload 1 /* typeInformation */
            aload 0 /* constructor */
            invokeinterface org.springframework.data.util.TypeInformation.getParameterTypes:(Ljava/lang/reflect/Constructor;)Ljava/util/List;
            astore 3 /* parameterTypes */
        start local 3 // java.util.List parameterTypes
         3: .line 208
            getstatic org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers.PARAMETER_NAME_DISCOVERER:Lorg/springframework/core/ParameterNameDiscoverer;
            aload 0 /* constructor */
            invokeinterface org.springframework.core.ParameterNameDiscoverer.getParameterNames:(Ljava/lang/reflect/Constructor;)[Ljava/lang/String;
            astore 4 /* parameterNames */
        start local 4 // java.lang.String[] parameterNames
         4: .line 210
            aload 3 /* parameterTypes */
            invokeinterface java.util.List.size:()I
            anewarray org.springframework.data.mapping.PreferredConstructor$Parameter
            astore 5 /* parameters */
        start local 5 // org.springframework.data.mapping.PreferredConstructor$Parameter[] parameters
         5: .line 211
            aload 0 /* constructor */
            invokevirtual java.lang.reflect.Constructor.getParameterAnnotations:()[[Ljava/lang/annotation/Annotation;
            astore 6 /* parameterAnnotations */
        start local 6 // java.lang.annotation.Annotation[][] parameterAnnotations
         6: .line 213
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 15
         8: .line 215
      StackMap locals: java.lang.reflect.Constructor org.springframework.data.util.TypeInformation org.springframework.data.mapping.PersistentEntity java.util.List java.lang.String[] org.springframework.data.mapping.PreferredConstructor$Parameter[] java.lang.annotation.Annotation[][] int
      StackMap stack:
            aload 4 /* parameterNames */
            ifnonnull 9
            aconst_null
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 4 /* parameterNames */
            iload 7 /* i */
            aaload
      StackMap locals:
      StackMap stack: java.lang.String
        10: astore 8 /* name */
        start local 8 // java.lang.String name
        11: .line 216
            aload 3 /* parameterTypes */
            iload 7 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.springframework.data.util.TypeInformation
            astore 9 /* type */
        start local 9 // org.springframework.data.util.TypeInformation type
        12: .line 217
            aload 6 /* parameterAnnotations */
            iload 7 /* i */
            aaload
            astore 10 /* annotations */
        start local 10 // java.lang.annotation.Annotation[] annotations
        13: .line 219
            aload 5 /* parameters */
            iload 7 /* i */
            new org.springframework.data.mapping.PreferredConstructor$Parameter
            dup
            aload 8 /* name */
            aload 9 /* type */
            aload 10 /* annotations */
            aload 2 /* entity */
            invokespecial org.springframework.data.mapping.PreferredConstructor$Parameter.<init>:(Ljava/lang/String;Lorg/springframework/data/util/TypeInformation;[Ljava/lang/annotation/Annotation;Lorg/springframework/data/mapping/PersistentEntity;)V
            aastore
        end local 10 // java.lang.annotation.Annotation[] annotations
        end local 9 // org.springframework.data.util.TypeInformation type
        end local 8 // java.lang.String name
        14: .line 213
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 7 /* i */
            aload 3 /* parameterTypes */
            invokeinterface java.util.List.size:()I
            if_icmplt 8
        end local 7 // int i
        16: .line 222
            new org.springframework.data.mapping.PreferredConstructor
            dup
            aload 0 /* constructor */
            aload 5 /* parameters */
            invokespecial org.springframework.data.mapping.PreferredConstructor.<init>:(Ljava/lang/reflect/Constructor;[Lorg/springframework/data/mapping/PreferredConstructor$Parameter;)V
            areturn
        end local 6 // java.lang.annotation.Annotation[][] parameterAnnotations
        end local 5 // org.springframework.data.mapping.PreferredConstructor$Parameter[] parameters
        end local 4 // java.lang.String[] parameterNames
        end local 3 // java.util.List parameterTypes
        end local 2 // org.springframework.data.mapping.PersistentEntity entity
        end local 1 // org.springframework.data.util.TypeInformation typeInformation
        end local 0 // java.lang.reflect.Constructor constructor
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   17     0           constructor  Ljava/lang/reflect/Constructor<*>;
            0   17     1       typeInformation  Lorg/springframework/data/util/TypeInformation<TT;>;
            0   17     2                entity  Lorg/springframework/data/mapping/PersistentEntity<TT;TP;>;
            3   17     3        parameterTypes  Ljava/util/List<Lorg/springframework/data/util/TypeInformation<*>;>;
            4   17     4        parameterNames  [Ljava/lang/String;
            5   17     5            parameters  [Lorg/springframework/data/mapping/PreferredConstructor$Parameter;
            6   17     6  parameterAnnotations  [[Ljava/lang/annotation/Annotation;
            7   16     7                     i  I
           11   14     8                  name  Ljava/lang/String;
           12   14     9                  type  Lorg/springframework/data/util/TypeInformation<*>;
           13   14    10           annotations  [Ljava/lang/annotation/Annotation;
    Signature: <T:Ljava/lang/Object;P::Lorg/springframework/data/mapping/PersistentProperty<TP;>;>(Ljava/lang/reflect/Constructor<*>;Lorg/springframework/data/util/TypeInformation<TT;>;Lorg/springframework/data/mapping/PersistentEntity<TT;TP;>;)Lorg/springframework/data/mapping/PreferredConstructor<TT;TP;>;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
        org.springframework.lang.Nullable()
    MethodParameters:
                 Name  Flags
      constructor      
      typeInformation  
      entity           

  public static org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers[] values();
    descriptor: ()[Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=0
         0: .line 1
            getstatic org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers.ENUM$VALUES:[Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;
            dup
            astore 0
            iconst_0
            aload 0
            arraylength
            dup
            istore 1
            anewarray org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers
            dup
            astore 2
            iconst_0
            iload 1
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
            aload 2
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers valueOf(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
         0: .line 1
            ldc Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;
            aload 0
            invokestatic java.lang.Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
            checkcast org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
      Name  Flags
      name  

  static org.springframework.data.mapping.PreferredConstructor access$2(java.lang.reflect.Constructor, org.springframework.data.util.TypeInformation, org.springframework.data.mapping.PersistentEntity);
    descriptor: (Ljava/lang/reflect/Constructor;Lorg/springframework/data/util/TypeInformation;Lorg/springframework/data/mapping/PersistentEntity;)Lorg/springframework/data/mapping/PreferredConstructor;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 200
            aload 0
            aload 1
            aload 2
            invokestatic org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers.buildPreferredConstructor:(Ljava/lang/reflect/Constructor;Lorg/springframework/data/util/TypeInformation;Lorg/springframework/data/mapping/PersistentEntity;)Lorg/springframework/data/mapping/PreferredConstructor;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Enum<Lorg/springframework/data/mapping/model/PreferredConstructorDiscoverer$Discoverers;>;
SourceFile: "PreferredConstructorDiscoverer.java"
NestHost: org.springframework.data.mapping.model.PreferredConstructorDiscoverer
InnerClasses:
  public Parameter = org.springframework.data.mapping.PreferredConstructor$Parameter of org.springframework.data.mapping.PreferredConstructor
  public abstract Discoverers = org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers of org.springframework.data.mapping.model.PreferredConstructorDiscoverer
  org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers$1
  org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers$2