abstract class org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup extends java.lang.Enum<org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup>
  minor version: 0
  major version: 59
  flags: flags: (0x4420) ACC_SUPER, ACC_ABSTRACT, ACC_ANNOTATION
  this_class: org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup
  super_class: java.lang.Enum
{
  public static final org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup ENCAPSULATED;
    descriptor: Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  public static final org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup OPEN;
    descriptor: Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  public static final org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup FALLBACK;
    descriptor: Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  private static final org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup[] ENUM$VALUES;
    descriptor: [Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;
    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 109
            new org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup$1
            dup
            ldc "ENCAPSULATED"
            iconst_0
            invokespecial org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup$1.<init>:(Ljava/lang/String;I)V
         1: .line 112
            putstatic org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup.ENCAPSULATED:Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;
         2: .line 152
            new org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup$2
            dup
            ldc "OPEN"
            iconst_1
            invokespecial org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup$2.<init>:(Ljava/lang/String;I)V
         3: .line 156
            putstatic org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup.OPEN:Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;
         4: .line 186
            new org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup$3
            dup
            ldc "FALLBACK"
            iconst_2
            invokespecial org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup$3.<init>:(Ljava/lang/String;I)V
         5: .line 191
            putstatic org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup.FALLBACK:Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;
         6: .line 107
            iconst_3
            anewarray org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup
            dup
            iconst_0
            getstatic org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup.ENCAPSULATED:Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;
            aastore
            dup
            iconst_1
            getstatic org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup.OPEN:Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;
            aastore
            dup
            iconst_2
            getstatic org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup.FALLBACK:Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;
            aastore
            putstatic org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup.ENUM$VALUES:[Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;
            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.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup this
         0: .line 107
            aload 0 /* this */
            aload 1
            iload 2
            invokespecial java.lang.Enum.<init>:(Ljava/lang/String;I)V
            return
        end local 0 // org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;
    MethodParameters:
               Name  Flags
      $enum$name     
      $enum$ordinal  

  private static java.lang.invoke.MethodHandle doLookup(java.lang.reflect.Method, java.lang.invoke.MethodHandles$Lookup);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.reflect.Method method
        start local 1 // java.lang.invoke.MethodHandles$Lookup lookup
         0: .line 215
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 2 /* methodType */
        start local 2 // java.lang.invoke.MethodType methodType
         1: .line 217
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 3
         2: .line 218
            aload 1 /* lookup */
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            aload 2 /* methodType */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
         3: .line 221
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            aload 1 /* lookup */
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            aload 2 /* methodType */
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findSpecial:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.invoke.MethodType methodType
        end local 1 // java.lang.invoke.MethodHandles$Lookup lookup
        end local 0 // java.lang.reflect.Method method
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0      method  Ljava/lang/reflect/Method;
            0    4     1      lookup  Ljava/lang/invoke/MethodHandles$Lookup;
            1    4     2  methodType  Ljava/lang/invoke/MethodType;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.lang.IllegalAccessException
    MethodParameters:
        Name  Flags
      method  
      lookup  

  abstract java.lang.invoke.MethodHandle lookup(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0400) ACC_ABSTRACT
    Exceptions:
      throws java.lang.ReflectiveOperationException
    MethodParameters:
        Name  Flags
      method  

  abstract boolean isAvailable();
    descriptor: ()Z
    flags: (0x0400) ACC_ABSTRACT

  public static org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup getMethodHandleLookup();
    descriptor: ()Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=0
         0: .line 246
            invokestatic org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup.values:()[Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;
            dup
            astore 3
            arraylength
            istore 2
            iconst_0
            istore 1
            goto 5
      StackMap locals: top int int org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup[]
      StackMap stack:
         1: aload 3
            iload 1
            aaload
            astore 0 /* it */
        start local 0 // org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup it
         2: .line 248
            aload 0 /* it */
            invokevirtual org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup.isAvailable:()Z
            ifeq 4
         3: .line 249
            aload 0 /* it */
            areturn
        end local 0 // org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup it
         4: .line 246
      StackMap locals:
      StackMap stack:
            iinc 1 1
      StackMap locals:
      StackMap stack:
         5: iload 1
            iload 2
            if_icmplt 1
         6: .line 253
            new java.lang.IllegalStateException
            dup
            ldc "No MethodHandleLookup available!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            2    4     0    it  Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;

  private static java.lang.reflect.Constructor<java.lang.invoke.MethodHandles$Lookup> getLookupConstructor();
    descriptor: ()Ljava/lang/reflect/Constructor;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=0
         0: .line 261
            ldc Ljava/lang/invoke/MethodHandles$Lookup;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 0 /* constructor */
        start local 0 // java.lang.reflect.Constructor constructor
         1: .line 262
            aload 0 /* constructor */
            invokestatic org.springframework.util.ReflectionUtils.makeAccessible:(Ljava/lang/reflect/Constructor;)V
         2: .line 264
            aload 0 /* constructor */
         3: areturn
        end local 0 // java.lang.reflect.Constructor constructor
         4: .line 265
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 0 /* ex */
        start local 0 // java.lang.Exception ex
         5: .line 268
            aload 0 /* ex */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "java.lang.reflect.InaccessibleObjectException"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 269
            aconst_null
            areturn
         7: .line 272
      StackMap locals: java.lang.Exception
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            aload 0 /* ex */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 0 // java.lang.Exception ex
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            1    4     0  constructor  Ljava/lang/reflect/Constructor<Ljava/lang/invoke/MethodHandles$Lookup;>;
            5    8     0           ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.Exception
    Signature: ()Ljava/lang/reflect/Constructor<Ljava/lang/invoke/MethodHandles$Lookup;>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public static org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup[] values();
    descriptor: ()[Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=0
         0: .line 1
            getstatic org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup.ENUM$VALUES:[Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;
            dup
            astore 0
            iconst_0
            aload 0
            arraylength
            dup
            istore 1
            anewarray org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup
            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.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup valueOf(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
         0: .line 1
            ldc Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;
            aload 0
            invokestatic java.lang.Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
            checkcast org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
      Name  Flags
      name  

  static java.lang.reflect.Constructor access$2();
    descriptor: ()Ljava/lang/reflect/Constructor;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 257
            invokestatic org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup.getLookupConstructor:()Ljava/lang/reflect/Constructor;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Enum<Lorg/springframework/data/projection/DefaultMethodInvokingMethodInterceptor$MethodHandleLookup;>;
SourceFile: "DefaultMethodInvokingMethodInterceptor.java"
NestHost: org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  abstract MethodHandleLookup = org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup of org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor
  org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup$1
  org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup$2
  org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor$MethodHandleLookup$3