public class org.springframework.data.util.AnnotationDetectionFieldCallback implements org.springframework.util.ReflectionUtils$FieldCallback
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.data.util.AnnotationDetectionFieldCallback
  super_class: java.lang.Object
{
  private final java.lang.Class<? extends java.lang.annotation.Annotation> annotationType;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;

  private java.lang.reflect.Field field;
    descriptor: Ljava/lang/reflect/Field;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void <init>(java.lang.Class<? extends java.lang.annotation.Annotation>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.data.util.AnnotationDetectionFieldCallback this
        start local 1 // java.lang.Class annotationType
         0: .line 44
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 1 /* annotationType */
            ldc "AnnotationType must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 48
            aload 0 /* this */
            aload 1 /* annotationType */
            putfield org.springframework.data.util.AnnotationDetectionFieldCallback.annotationType:Ljava/lang/Class;
         3: .line 49
            return
        end local 1 // java.lang.Class annotationType
        end local 0 // org.springframework.data.util.AnnotationDetectionFieldCallback this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/springframework/data/util/AnnotationDetectionFieldCallback;
            0    4     1  annotationType  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
    Signature: (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)V
    MethodParameters:
                Name  Flags
      annotationType  

  public void doWith(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.data.util.AnnotationDetectionFieldCallback this
        start local 1 // java.lang.reflect.Field field
         0: .line 57
            aload 0 /* this */
            getfield org.springframework.data.util.AnnotationDetectionFieldCallback.field:Ljava/lang/reflect/Field;
            ifnull 2
         1: .line 58
            return
         2: .line 61
      StackMap locals:
      StackMap stack:
            aload 1 /* field */
            aload 0 /* this */
            getfield org.springframework.data.util.AnnotationDetectionFieldCallback.annotationType:Ljava/lang/Class;
            invokestatic org.springframework.core.annotation.AnnotatedElementUtils.findMergedAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 5
         3: .line 63
            aload 1 /* field */
            invokestatic org.springframework.util.ReflectionUtils.makeAccessible:(Ljava/lang/reflect/Field;)V
         4: .line 64
            aload 0 /* this */
            aload 1 /* field */
            putfield org.springframework.data.util.AnnotationDetectionFieldCallback.field:Ljava/lang/reflect/Field;
         5: .line 66
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.reflect.Field field
        end local 0 // org.springframework.data.util.AnnotationDetectionFieldCallback this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/springframework/data/util/AnnotationDetectionFieldCallback;
            0    6     1  field  Ljava/lang/reflect/Field;
    Exceptions:
      throws java.lang.IllegalArgumentException, java.lang.IllegalAccessException
    MethodParameters:
       Name  Flags
      field  

  public java.lang.reflect.Field getField();
    descriptor: ()Ljava/lang/reflect/Field;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.data.util.AnnotationDetectionFieldCallback this
         0: .line 75
            aload 0 /* this */
            getfield org.springframework.data.util.AnnotationDetectionFieldCallback.field:Ljava/lang/reflect/Field;
            areturn
        end local 0 // org.springframework.data.util.AnnotationDetectionFieldCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/util/AnnotationDetectionFieldCallback;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public java.lang.reflect.Field getRequiredField();
    descriptor: ()Ljava/lang/reflect/Field;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // org.springframework.data.util.AnnotationDetectionFieldCallback this
         0: .line 86
            aload 0 /* this */
            getfield org.springframework.data.util.AnnotationDetectionFieldCallback.field:Ljava/lang/reflect/Field;
            astore 1 /* field */
        start local 1 // java.lang.reflect.Field field
         1: .line 88
            aload 1 /* field */
            ifnonnull 3
         2: .line 89
            new java.lang.IllegalStateException
            dup
            ldc "No field found for annotation %s!"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.springframework.data.util.AnnotationDetectionFieldCallback.annotationType:Ljava/lang/Class;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 92
      StackMap locals: java.lang.reflect.Field
      StackMap stack:
            aload 1 /* field */
            areturn
        end local 1 // java.lang.reflect.Field field
        end local 0 // org.springframework.data.util.AnnotationDetectionFieldCallback this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/springframework/data/util/AnnotationDetectionFieldCallback;
            1    4     1  field  Ljava/lang/reflect/Field;

  public java.lang.Class<?> getType();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.springframework.data.util.AnnotationDetectionFieldCallback this
         0: .line 103
            aload 0 /* this */
            getfield org.springframework.data.util.AnnotationDetectionFieldCallback.field:Ljava/lang/reflect/Field;
            astore 1 /* field */
        start local 1 // java.lang.reflect.Field field
         1: .line 105
            aload 1 /* field */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: java.lang.reflect.Field
      StackMap stack:
         2: aload 1 /* field */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
      StackMap locals:
      StackMap stack: java.lang.Class
         3: areturn
        end local 1 // java.lang.reflect.Field field
        end local 0 // org.springframework.data.util.AnnotationDetectionFieldCallback this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/springframework/data/util/AnnotationDetectionFieldCallback;
            1    4     1  field  Ljava/lang/reflect/Field;
    Signature: ()Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public java.lang.Class<?> getRequiredType();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.data.util.AnnotationDetectionFieldCallback this
         0: .line 115
            aload 0 /* this */
            invokevirtual org.springframework.data.util.AnnotationDetectionFieldCallback.getRequiredField:()Ljava/lang/reflect/Field;
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            areturn
        end local 0 // org.springframework.data.util.AnnotationDetectionFieldCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/util/AnnotationDetectionFieldCallback;
    Signature: ()Ljava/lang/Class<*>;

  public <T> T getValue();
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.springframework.data.util.AnnotationDetectionFieldCallback this
        start local 1 // java.lang.Object source
         0: .line 128
            aload 1 /* source */
            ldc "Source object must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 130
            aload 0 /* this */
            getfield org.springframework.data.util.AnnotationDetectionFieldCallback.field:Ljava/lang/reflect/Field;
            astore 2 /* field */
        start local 2 // java.lang.reflect.Field field
         2: .line 132
            aload 2 /* field */
            ifnonnull 4
         3: .line 133
            aconst_null
            areturn
         4: .line 136
      StackMap locals: java.lang.reflect.Field
      StackMap stack:
            aload 2 /* field */
            aload 1 /* source */
            invokestatic org.springframework.util.ReflectionUtils.getField:(Ljava/lang/reflect/Field;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.reflect.Field field
        end local 1 // java.lang.Object source
        end local 0 // org.springframework.data.util.AnnotationDetectionFieldCallback this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/springframework/data/util/AnnotationDetectionFieldCallback;
            0    5     1  source  Ljava/lang/Object;
            2    5     2   field  Ljava/lang/reflect/Field;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;)TT;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
        Name  Flags
      source  
}
SourceFile: "AnnotationDetectionFieldCallback.java"
InnerClasses:
  public abstract FieldCallback = org.springframework.util.ReflectionUtils$FieldCallback of org.springframework.util.ReflectionUtils