public class org.springframework.format.support.FormattingConversionService extends org.springframework.core.convert.support.GenericConversionService implements org.springframework.format.FormatterRegistry, org.springframework.context.EmbeddedValueResolverAware
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.format.support.FormattingConversionService
super_class: org.springframework.core.convert.support.GenericConversionService
{
private org.springframework.util.StringValueResolver embeddedValueResolver;
descriptor: Lorg/springframework/util/StringValueResolver;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private final java.util.Map<org.springframework.format.support.FormattingConversionService$AnnotationConverterKey, org.springframework.core.convert.converter.GenericConverter> cachedPrinters;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Lorg/springframework/format/support/FormattingConversionService$AnnotationConverterKey;Lorg/springframework/core/convert/converter/GenericConverter;>;
private final java.util.Map<org.springframework.format.support.FormattingConversionService$AnnotationConverterKey, org.springframework.core.convert.converter.GenericConverter> cachedParsers;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Lorg/springframework/format/support/FormattingConversionService$AnnotationConverterKey;Lorg/springframework/core/convert/converter/GenericConverter;>;
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.springframework.core.convert.support.GenericConversionService.<init>:()V
1: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
bipush 64
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
putfield org.springframework.format.support.FormattingConversionService.cachedPrinters:Ljava/util/Map;
2: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
bipush 64
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
putfield org.springframework.format.support.FormattingConversionService.cachedParsers:Ljava/util/Map;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/format/support/FormattingConversionService;
public void setEmbeddedValueResolver(org.springframework.util.StringValueResolver);
descriptor: (Lorg/springframework/util/StringValueResolver;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.format.support.FormattingConversionService.embeddedValueResolver:Lorg/springframework/util/StringValueResolver;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/format/support/FormattingConversionService;
0 2 1 resolver Lorg/springframework/util/StringValueResolver;
MethodParameters:
Name Flags
resolver
public void addFormatter(org.springframework.format.Formatter<?>);
descriptor: (Lorg/springframework/format/Formatter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic org.springframework.format.support.FormattingConversionService.getFieldType:(Lorg/springframework/format/Formatter;)Ljava/lang/Class;
aload 1
invokevirtual org.springframework.format.support.FormattingConversionService.addFormatterForFieldType:(Ljava/lang/Class;Lorg/springframework/format/Formatter;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/format/support/FormattingConversionService;
0 2 1 formatter Lorg/springframework/format/Formatter<*>;
Signature: (Lorg/springframework/format/Formatter<*>;)V
MethodParameters:
Name Flags
formatter
public void addFormatterForFieldType(java.lang.Class<?>, org.springframework.format.Formatter<?>);
descriptor: (Ljava/lang/Class;Lorg/springframework/format/Formatter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
new org.springframework.format.support.FormattingConversionService$PrinterConverter
dup
aload 1
aload 2
aload 0
invokespecial org.springframework.format.support.FormattingConversionService$PrinterConverter.<init>:(Ljava/lang/Class;Lorg/springframework/format/Printer;Lorg/springframework/core/convert/ConversionService;)V
invokevirtual org.springframework.format.support.FormattingConversionService.addConverter:(Lorg/springframework/core/convert/converter/GenericConverter;)V
1: aload 0
new org.springframework.format.support.FormattingConversionService$ParserConverter
dup
aload 1
aload 2
aload 0
invokespecial org.springframework.format.support.FormattingConversionService$ParserConverter.<init>:(Ljava/lang/Class;Lorg/springframework/format/Parser;Lorg/springframework/core/convert/ConversionService;)V
invokevirtual org.springframework.format.support.FormattingConversionService.addConverter:(Lorg/springframework/core/convert/converter/GenericConverter;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/format/support/FormattingConversionService;
0 3 1 fieldType Ljava/lang/Class<*>;
0 3 2 formatter Lorg/springframework/format/Formatter<*>;
Signature: (Ljava/lang/Class<*>;Lorg/springframework/format/Formatter<*>;)V
MethodParameters:
Name Flags
fieldType
formatter
public void addFormatterForFieldType(java.lang.Class<?>, org.springframework.format.Printer<?>, org.springframework.format.Parser<?>);
descriptor: (Ljava/lang/Class;Lorg/springframework/format/Printer;Lorg/springframework/format/Parser;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
new org.springframework.format.support.FormattingConversionService$PrinterConverter
dup
aload 1
aload 2
aload 0
invokespecial org.springframework.format.support.FormattingConversionService$PrinterConverter.<init>:(Ljava/lang/Class;Lorg/springframework/format/Printer;Lorg/springframework/core/convert/ConversionService;)V
invokevirtual org.springframework.format.support.FormattingConversionService.addConverter:(Lorg/springframework/core/convert/converter/GenericConverter;)V
1: aload 0
new org.springframework.format.support.FormattingConversionService$ParserConverter
dup
aload 1
aload 3
aload 0
invokespecial org.springframework.format.support.FormattingConversionService$ParserConverter.<init>:(Ljava/lang/Class;Lorg/springframework/format/Parser;Lorg/springframework/core/convert/ConversionService;)V
invokevirtual org.springframework.format.support.FormattingConversionService.addConverter:(Lorg/springframework/core/convert/converter/GenericConverter;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/format/support/FormattingConversionService;
0 3 1 fieldType Ljava/lang/Class<*>;
0 3 2 printer Lorg/springframework/format/Printer<*>;
0 3 3 parser Lorg/springframework/format/Parser<*>;
Signature: (Ljava/lang/Class<*>;Lorg/springframework/format/Printer<*>;Lorg/springframework/format/Parser<*>;)V
MethodParameters:
Name Flags
fieldType
printer
parser
public void addFormatterForFieldAnnotation(org.springframework.format.AnnotationFormatterFactory<? extends java.lang.annotation.Annotation>);
descriptor: (Lorg/springframework/format/AnnotationFormatterFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.springframework.format.support.FormattingConversionService.getAnnotationType:(Lorg/springframework/format/AnnotationFormatterFactory;)Ljava/lang/Class;
astore 2
start local 2 1: aload 0
getfield org.springframework.format.support.FormattingConversionService.embeddedValueResolver:Lorg/springframework/util/StringValueResolver;
ifnull 3
aload 1
instanceof org.springframework.context.EmbeddedValueResolverAware
ifeq 3
2: aload 1
checkcast org.springframework.context.EmbeddedValueResolverAware
aload 0
getfield org.springframework.format.support.FormattingConversionService.embeddedValueResolver:Lorg/springframework/util/StringValueResolver;
invokeinterface org.springframework.context.EmbeddedValueResolverAware.setEmbeddedValueResolver:(Lorg/springframework/util/StringValueResolver;)V
3: StackMap locals: java.lang.Class
StackMap stack:
aload 1
invokeinterface org.springframework.format.AnnotationFormatterFactory.getFieldTypes:()Ljava/util/Set;
astore 3
start local 3 4: aload 3
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 8
StackMap locals: org.springframework.format.support.FormattingConversionService org.springframework.format.AnnotationFormatterFactory java.lang.Class java.util.Set top java.util.Iterator
StackMap stack:
5: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Class
astore 4
start local 4 6: aload 0
new org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter
dup
aload 0
aload 2
aload 1
aload 4
invokespecial org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter.<init>:(Lorg/springframework/format/support/FormattingConversionService;Ljava/lang/Class;Lorg/springframework/format/AnnotationFormatterFactory;Ljava/lang/Class;)V
invokevirtual org.springframework.format.support.FormattingConversionService.addConverter:(Lorg/springframework/core/convert/converter/GenericConverter;)V
7: aload 0
new org.springframework.format.support.FormattingConversionService$AnnotationParserConverter
dup
aload 0
aload 2
aload 1
aload 4
invokespecial org.springframework.format.support.FormattingConversionService$AnnotationParserConverter.<init>:(Lorg/springframework/format/support/FormattingConversionService;Ljava/lang/Class;Lorg/springframework/format/AnnotationFormatterFactory;Ljava/lang/Class;)V
invokevirtual org.springframework.format.support.FormattingConversionService.addConverter:(Lorg/springframework/core/convert/converter/GenericConverter;)V
end local 4 8: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/springframework/format/support/FormattingConversionService;
0 10 1 annotationFormatterFactory Lorg/springframework/format/AnnotationFormatterFactory<+Ljava/lang/annotation/Annotation;>;
1 10 2 annotationType Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
4 10 3 fieldTypes Ljava/util/Set<Ljava/lang/Class<*>;>;
6 8 4 fieldType Ljava/lang/Class<*>;
Signature: (Lorg/springframework/format/AnnotationFormatterFactory<+Ljava/lang/annotation/Annotation;>;)V
MethodParameters:
Name Flags
annotationFormatterFactory
static java.lang.Class<?> getFieldType(org.springframework.format.Formatter<?>);
descriptor: (Lorg/springframework/format/Formatter;)Ljava/lang/Class;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc Lorg/springframework/format/Formatter;
invokestatic org.springframework.core.GenericTypeResolver.resolveTypeArgument:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Class;
astore 1
start local 1 1: aload 1
ifnonnull 4
aload 0
instanceof org.springframework.core.DecoratingProxy
ifeq 4
2: aload 0
checkcast org.springframework.core.DecoratingProxy
invokeinterface org.springframework.core.DecoratingProxy.getDecoratedClass:()Ljava/lang/Class;
ldc Lorg/springframework/format/Formatter;
3: invokestatic org.springframework.core.GenericTypeResolver.resolveTypeArgument:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Class;
astore 1
4: StackMap locals: java.lang.Class
StackMap stack:
aload 1
ifnonnull 8
5: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unable to extract the parameterized field type from Formatter ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
6: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]; does the class parameterize the <T> generic type?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 formatter Lorg/springframework/format/Formatter<*>;
1 9 1 fieldType Ljava/lang/Class<*>;
Signature: (Lorg/springframework/format/Formatter<*>;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
formatter
static java.lang.Class<? extends java.lang.annotation.Annotation> getAnnotationType(org.springframework.format.AnnotationFormatterFactory<? extends java.lang.annotation.Annotation>);
descriptor: (Lorg/springframework/format/AnnotationFormatterFactory;)Ljava/lang/Class;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc Lorg/springframework/format/AnnotationFormatterFactory;
invokestatic org.springframework.core.GenericTypeResolver.resolveTypeArgument:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Class;
1: astore 1
start local 1 2: aload 1
ifnonnull 7
3: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unable to extract parameterized Annotation type argument from AnnotationFormatterFactory ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: ldc "]; does the factory parameterize the <A extends Annotation> generic type?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: java.lang.Class
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 factory Lorg/springframework/format/AnnotationFormatterFactory<+Ljava/lang/annotation/Annotation;>;
2 8 1 annotationType Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
Signature: (Lorg/springframework/format/AnnotationFormatterFactory<+Ljava/lang/annotation/Annotation;>;)Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
MethodParameters:
Name Flags
factory
}
SourceFile: "FormattingConversionService.java"
NestMembers:
org.springframework.format.support.FormattingConversionService$AnnotationConverterKey org.springframework.format.support.FormattingConversionService$AnnotationParserConverter org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter org.springframework.format.support.FormattingConversionService$ParserConverter org.springframework.format.support.FormattingConversionService$PrinterConverter
InnerClasses:
private AnnotationConverterKey = org.springframework.format.support.FormattingConversionService$AnnotationConverterKey of org.springframework.format.support.FormattingConversionService
private AnnotationParserConverter = org.springframework.format.support.FormattingConversionService$AnnotationParserConverter of org.springframework.format.support.FormattingConversionService
private AnnotationPrinterConverter = org.springframework.format.support.FormattingConversionService$AnnotationPrinterConverter of org.springframework.format.support.FormattingConversionService
private ParserConverter = org.springframework.format.support.FormattingConversionService$ParserConverter of org.springframework.format.support.FormattingConversionService
private PrinterConverter = org.springframework.format.support.FormattingConversionService$PrinterConverter of org.springframework.format.support.FormattingConversionService