class org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter implements org.springframework.core.convert.converter.ConditionalGenericConverter
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter
  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 final org.springframework.format.AnnotationFormatterFactory annotationFormatterFactory;
    descriptor: Lorg/springframework/format/AnnotationFormatterFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Class<?> fieldType;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  final org.springframework.format.support.FormattingConversionService this$0;
    descriptor: Lorg/springframework/format/support/FormattingConversionService;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(java.lang.Class<? extends java.lang.annotation.Annotation>, org.springframework.format.AnnotationFormatterFactory<?>, java.lang.Class<?>);
    descriptor: (Lorg/springframework/format/support/FormattingConversionService;Ljava/lang/Class;Lorg/springframework/format/AnnotationFormatterFactory;Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter this
        start local 2 // java.lang.Class annotationType
        start local 3 // org.springframework.format.AnnotationFormatterFactory annotationFormatterFactory
        start local 4 // java.lang.Class fieldType
         0: .line 232
            aload 0 /* this */
            aload 1
            putfield org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter.this$0:Lorg/springframework/format/support/FormattingConversionService;
         1: .line 231
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         2: .line 234
            aload 0 /* this */
            aload 2 /* annotationType */
            putfield org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter.annotationType:Ljava/lang/Class;
         3: .line 235
            aload 0 /* this */
            aload 3 /* annotationFormatterFactory */
            putfield org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter.annotationFormatterFactory:Lorg/springframework/format/AnnotationFormatterFactory;
         4: .line 236
            aload 0 /* this */
            aload 4 /* fieldType */
            putfield org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter.fieldType:Ljava/lang/Class;
         5: .line 237
            return
        end local 4 // java.lang.Class fieldType
        end local 3 // org.springframework.format.AnnotationFormatterFactory annotationFormatterFactory
        end local 2 // java.lang.Class annotationType
        end local 0 // org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    6     0                        this  Lorg/springframework/format/support/FormattingConversionService$AnnotationPrinterConverter;
            0    6     2              annotationType  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
            0    6     3  annotationFormatterFactory  Lorg/springframework/format/AnnotationFormatterFactory<*>;
            0    6     4                   fieldType  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;Lorg/springframework/format/AnnotationFormatterFactory<*>;Ljava/lang/Class<*>;)V
    MethodParameters:
                            Name  Flags
      this$0                      final
      annotationType              
      annotationFormatterFactory  
      fieldType                   

  public java.util.Set<org.springframework.core.convert.converter.GenericConverter$ConvertiblePair> getConvertibleTypes();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter this
         0: .line 241
            new org.springframework.core.convert.converter.GenericConverter$ConvertiblePair
            dup
            aload 0 /* this */
            getfield org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter.fieldType:Ljava/lang/Class;
            ldc Ljava/lang/String;
            invokespecial org.springframework.core.convert.converter.GenericConverter$ConvertiblePair.<init>:(Ljava/lang/Class;Ljava/lang/Class;)V
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            areturn
        end local 0 // org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/format/support/FormattingConversionService$AnnotationPrinterConverter;
    Signature: ()Ljava/util/Set<Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;>;

  public boolean matches(org.springframework.core.convert.TypeDescriptor, org.springframework.core.convert.TypeDescriptor);
    descriptor: (Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter this
        start local 1 // org.springframework.core.convert.TypeDescriptor sourceType
        start local 2 // org.springframework.core.convert.TypeDescriptor targetType
         0: .line 246
            aload 1 /* sourceType */
            aload 0 /* this */
            getfield org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter.annotationType:Ljava/lang/Class;
            invokevirtual org.springframework.core.convert.TypeDescriptor.hasAnnotation:(Ljava/lang/Class;)Z
            ireturn
        end local 2 // org.springframework.core.convert.TypeDescriptor targetType
        end local 1 // org.springframework.core.convert.TypeDescriptor sourceType
        end local 0 // org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/springframework/format/support/FormattingConversionService$AnnotationPrinterConverter;
            0    1     1  sourceType  Lorg/springframework/core/convert/TypeDescriptor;
            0    1     2  targetType  Lorg/springframework/core/convert/TypeDescriptor;
    MethodParameters:
            Name  Flags
      sourceType  
      targetType  

  public java.lang.Object convert(java.lang.Object, org.springframework.core.convert.TypeDescriptor, org.springframework.core.convert.TypeDescriptor);
    descriptor: (Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter this
        start local 1 // java.lang.Object source
        start local 2 // org.springframework.core.convert.TypeDescriptor sourceType
        start local 3 // org.springframework.core.convert.TypeDescriptor targetType
         0: .line 253
            aload 2 /* sourceType */
            aload 0 /* this */
            getfield org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter.annotationType:Ljava/lang/Class;
            invokevirtual org.springframework.core.convert.TypeDescriptor.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            astore 4 /* ann */
        start local 4 // java.lang.annotation.Annotation ann
         1: .line 254
            aload 4 /* ann */
            ifnonnull 5
         2: .line 255
            new java.lang.IllegalStateException
            dup
         3: .line 256
            new java.lang.StringBuilder
            dup
            ldc "Expected ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter.annotationType:Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] to be present on "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* sourceType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 255
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 258
      StackMap locals: java.lang.annotation.Annotation
      StackMap stack:
            new org.springframework.format.support.FormattingConversionService$AnnotationConverterKey
            dup
            aload 4 /* ann */
            aload 2 /* sourceType */
            invokevirtual org.springframework.core.convert.TypeDescriptor.getObjectType:()Ljava/lang/Class;
            invokespecial org.springframework.format.support.FormattingConversionService$AnnotationConverterKey.<init>:(Ljava/lang/annotation/Annotation;Ljava/lang/Class;)V
            astore 5 /* converterKey */
        start local 5 // org.springframework.format.support.FormattingConversionService$AnnotationConverterKey converterKey
         6: .line 259
            aload 0 /* this */
            getfield org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter.this$0:Lorg/springframework/format/support/FormattingConversionService;
            getfield org.springframework.format.support.FormattingConversionService.cachedPrinters:Ljava/util/Map;
            aload 5 /* converterKey */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.core.convert.converter.GenericConverter
            astore 6 /* converter */
        start local 6 // org.springframework.core.convert.converter.GenericConverter converter
         7: .line 260
            aload 6 /* converter */
            ifnonnull 13
         8: .line 261
            aload 0 /* this */
            getfield org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter.annotationFormatterFactory:Lorg/springframework/format/AnnotationFormatterFactory;
         9: .line 262
            aload 5 /* converterKey */
            invokevirtual org.springframework.format.support.FormattingConversionService$AnnotationConverterKey.getAnnotation:()Ljava/lang/annotation/Annotation;
            aload 5 /* converterKey */
            invokevirtual org.springframework.format.support.FormattingConversionService$AnnotationConverterKey.getFieldType:()Ljava/lang/Class;
        10: .line 261
            invokeinterface org.springframework.format.AnnotationFormatterFactory.getPrinter:(Ljava/lang/annotation/Annotation;Ljava/lang/Class;)Lorg/springframework/format/Printer;
            astore 7 /* printer */
        start local 7 // org.springframework.format.Printer printer
        11: .line 263
            new org.springframework.format.support.FormattingConversionService$PrinterConverter
            dup
            aload 0 /* this */
            getfield org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter.fieldType:Ljava/lang/Class;
            aload 7 /* printer */
            aload 0 /* this */
            getfield org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter.this$0:Lorg/springframework/format/support/FormattingConversionService;
            invokespecial org.springframework.format.support.FormattingConversionService$PrinterConverter.<init>:(Ljava/lang/Class;Lorg/springframework/format/Printer;Lorg/springframework/core/convert/ConversionService;)V
            astore 6 /* converter */
        12: .line 264
            aload 0 /* this */
            getfield org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter.this$0:Lorg/springframework/format/support/FormattingConversionService;
            getfield org.springframework.format.support.FormattingConversionService.cachedPrinters:Ljava/util/Map;
            aload 5 /* converterKey */
            aload 6 /* converter */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // org.springframework.format.Printer printer
        13: .line 266
      StackMap locals: org.springframework.format.support.FormattingConversionService$AnnotationConverterKey org.springframework.core.convert.converter.GenericConverter
      StackMap stack:
            aload 6 /* converter */
            aload 1 /* source */
            aload 2 /* sourceType */
            aload 3 /* targetType */
            invokeinterface org.springframework.core.convert.converter.GenericConverter.convert:(Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
            areturn
        end local 6 // org.springframework.core.convert.converter.GenericConverter converter
        end local 5 // org.springframework.format.support.FormattingConversionService$AnnotationConverterKey converterKey
        end local 4 // java.lang.annotation.Annotation ann
        end local 3 // org.springframework.core.convert.TypeDescriptor targetType
        end local 2 // org.springframework.core.convert.TypeDescriptor sourceType
        end local 1 // java.lang.Object source
        end local 0 // org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Lorg/springframework/format/support/FormattingConversionService$AnnotationPrinterConverter;
            0   14     1        source  Ljava/lang/Object;
            0   14     2    sourceType  Lorg/springframework/core/convert/TypeDescriptor;
            0   14     3    targetType  Lorg/springframework/core/convert/TypeDescriptor;
            1   14     4           ann  Ljava/lang/annotation/Annotation;
            6   14     5  converterKey  Lorg/springframework/format/support/FormattingConversionService$AnnotationConverterKey;
            7   14     6     converter  Lorg/springframework/core/convert/converter/GenericConverter;
           11   13     7       printer  Lorg/springframework/format/Printer<*>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
      2:
    MethodParameters:
            Name  Flags
      source      
      sourceType  
      targetType  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter this
         0: .line 271
            new java.lang.StringBuilder
            dup
            ldc "@"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter.annotationType:Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter.fieldType:Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " -> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 272
            ldc Ljava/lang/String;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter.annotationFormatterFactory:Lorg/springframework/format/AnnotationFormatterFactory;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         2: .line 271
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/format/support/FormattingConversionService$AnnotationPrinterConverter;
}
SourceFile: "FormattingConversionService.java"
NestHost: org.springframework.format.support.FormattingConversionService
InnerClasses:
  public final ConvertiblePair = org.springframework.core.convert.converter.GenericConverter$ConvertiblePair of org.springframework.core.convert.converter.GenericConverter
  private AnnotationConverterKey = org.springframework.format.support.FormattingConversionService$AnnotationConverterKey of org.springframework.format.support.FormattingConversionService
  private AnnotationPrinterConverter = org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter of org.springframework.format.support.FormattingConversionService
  private PrinterConverter = org.springframework.format.support.FormattingConversionService$PrinterConverter of org.springframework.format.support.FormattingConversionService