public class org.springframework.core.convert.support.GenericConversionService implements org.springframework.core.convert.support.ConfigurableConversionService
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.core.convert.support.GenericConversionService
super_class: java.lang.Object
{
private static final org.springframework.core.convert.converter.GenericConverter NO_OP_CONVERTER;
descriptor: Lorg/springframework/core/convert/converter/GenericConverter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.springframework.core.convert.converter.GenericConverter NO_MATCH;
descriptor: Lorg/springframework/core/convert/converter/GenericConverter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final org.springframework.core.convert.support.GenericConversionService$Converters converters;
descriptor: Lorg/springframework/core/convert/support/GenericConversionService$Converters;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Map<org.springframework.core.convert.support.GenericConversionService$ConverterCacheKey, org.springframework.core.convert.converter.GenericConverter> converterCache;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Lorg/springframework/core/convert/support/GenericConversionService$ConverterCacheKey;Lorg/springframework/core/convert/converter/GenericConverter;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new org.springframework.core.convert.support.GenericConversionService$NoOpConverter
dup
ldc "NO_OP"
invokespecial org.springframework.core.convert.support.GenericConversionService$NoOpConverter.<init>:(Ljava/lang/String;)V
putstatic org.springframework.core.convert.support.GenericConversionService.NO_OP_CONVERTER:Lorg/springframework/core/convert/converter/GenericConverter;
1: new org.springframework.core.convert.support.GenericConversionService$NoOpConverter
dup
ldc "NO_MATCH"
invokespecial org.springframework.core.convert.support.GenericConversionService$NoOpConverter.<init>:(Ljava/lang/String;)V
putstatic org.springframework.core.convert.support.GenericConversionService.NO_MATCH:Lorg/springframework/core/convert/converter/GenericConverter;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new org.springframework.core.convert.support.GenericConversionService$Converters
dup
invokespecial org.springframework.core.convert.support.GenericConversionService$Converters.<init>:()V
putfield org.springframework.core.convert.support.GenericConversionService.converters:Lorg/springframework/core/convert/support/GenericConversionService$Converters;
2: aload 0
new org.springframework.util.ConcurrentReferenceHashMap
dup
bipush 64
invokespecial org.springframework.util.ConcurrentReferenceHashMap.<init>:(I)V
putfield org.springframework.core.convert.support.GenericConversionService.converterCache:Ljava/util/Map;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/core/convert/support/GenericConversionService;
public void addConverter(org.springframework.core.convert.converter.Converter<?, ?>);
descriptor: (Lorg/springframework/core/convert/converter/Converter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc Lorg/springframework/core/convert/converter/Converter;
invokevirtual org.springframework.core.convert.support.GenericConversionService.getRequiredTypeInfo:(Ljava/lang/Class;Ljava/lang/Class;)[Lorg/springframework/core/ResolvableType;
astore 2
start local 2 1: aload 2
ifnonnull 3
aload 1
instanceof org.springframework.core.DecoratingProxy
ifeq 3
2: aload 0
aload 1
checkcast org.springframework.core.DecoratingProxy
invokeinterface org.springframework.core.DecoratingProxy.getDecoratedClass:()Ljava/lang/Class;
ldc Lorg/springframework/core/convert/converter/Converter;
invokevirtual org.springframework.core.convert.support.GenericConversionService.getRequiredTypeInfo:(Ljava/lang/Class;Ljava/lang/Class;)[Lorg/springframework/core/ResolvableType;
astore 2
3: StackMap locals: org.springframework.core.ResolvableType[]
StackMap stack:
aload 2
ifnonnull 7
4: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unable to determine source type <S> and target type <T> for your Converter ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
5: aload 1
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 those types?"
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:
StackMap stack:
aload 0
new org.springframework.core.convert.support.GenericConversionService$ConverterAdapter
dup
aload 0
aload 1
aload 2
iconst_0
aaload
aload 2
iconst_1
aaload
invokespecial org.springframework.core.convert.support.GenericConversionService$ConverterAdapter.<init>:(Lorg/springframework/core/convert/support/GenericConversionService;Lorg/springframework/core/convert/converter/Converter;Lorg/springframework/core/ResolvableType;Lorg/springframework/core/ResolvableType;)V
invokevirtual org.springframework.core.convert.support.GenericConversionService.addConverter:(Lorg/springframework/core/convert/converter/GenericConverter;)V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/core/convert/support/GenericConversionService;
0 9 1 converter Lorg/springframework/core/convert/converter/Converter<**>;
1 9 2 typeInfo [Lorg/springframework/core/ResolvableType;
Signature: (Lorg/springframework/core/convert/converter/Converter<**>;)V
MethodParameters:
Name Flags
converter
public <S, T> void addConverter(java.lang.Class<S>, java.lang.Class<T>, org.springframework.core.convert.converter.Converter<? super S, ? extends T>);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;Lorg/springframework/core/convert/converter/Converter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
new org.springframework.core.convert.support.GenericConversionService$ConverterAdapter
dup
aload 0
1: aload 3
aload 1
invokestatic org.springframework.core.ResolvableType.forClass:(Ljava/lang/Class;)Lorg/springframework/core/ResolvableType;
aload 2
invokestatic org.springframework.core.ResolvableType.forClass:(Ljava/lang/Class;)Lorg/springframework/core/ResolvableType;
invokespecial org.springframework.core.convert.support.GenericConversionService$ConverterAdapter.<init>:(Lorg/springframework/core/convert/support/GenericConversionService;Lorg/springframework/core/convert/converter/Converter;Lorg/springframework/core/ResolvableType;Lorg/springframework/core/ResolvableType;)V
2: invokevirtual org.springframework.core.convert.support.GenericConversionService.addConverter:(Lorg/springframework/core/convert/converter/GenericConverter;)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/core/convert/support/GenericConversionService;
0 4 1 sourceType Ljava/lang/Class<TS;>;
0 4 2 targetType Ljava/lang/Class<TT;>;
0 4 3 converter Lorg/springframework/core/convert/converter/Converter<-TS;+TT;>;
Signature: <S:Ljava/lang/Object;T:Ljava/lang/Object;>(Ljava/lang/Class<TS;>;Ljava/lang/Class<TT;>;Lorg/springframework/core/convert/converter/Converter<-TS;+TT;>;)V
MethodParameters:
Name Flags
sourceType
targetType
converter
public void addConverter(org.springframework.core.convert.converter.GenericConverter);
descriptor: (Lorg/springframework/core/convert/converter/GenericConverter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.core.convert.support.GenericConversionService.converters:Lorg/springframework/core/convert/support/GenericConversionService$Converters;
aload 1
invokevirtual org.springframework.core.convert.support.GenericConversionService$Converters.add:(Lorg/springframework/core/convert/converter/GenericConverter;)V
1: aload 0
invokevirtual org.springframework.core.convert.support.GenericConversionService.invalidateCache:()V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/core/convert/support/GenericConversionService;
0 3 1 converter Lorg/springframework/core/convert/converter/GenericConverter;
MethodParameters:
Name Flags
converter
public void addConverterFactory(org.springframework.core.convert.converter.ConverterFactory<?, ?>);
descriptor: (Lorg/springframework/core/convert/converter/ConverterFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc Lorg/springframework/core/convert/converter/ConverterFactory;
invokevirtual org.springframework.core.convert.support.GenericConversionService.getRequiredTypeInfo:(Ljava/lang/Class;Ljava/lang/Class;)[Lorg/springframework/core/ResolvableType;
astore 2
start local 2 1: aload 2
ifnonnull 3
aload 1
instanceof org.springframework.core.DecoratingProxy
ifeq 3
2: aload 0
aload 1
checkcast org.springframework.core.DecoratingProxy
invokeinterface org.springframework.core.DecoratingProxy.getDecoratedClass:()Ljava/lang/Class;
ldc Lorg/springframework/core/convert/converter/ConverterFactory;
invokevirtual org.springframework.core.convert.support.GenericConversionService.getRequiredTypeInfo:(Ljava/lang/Class;Ljava/lang/Class;)[Lorg/springframework/core/ResolvableType;
astore 2
3: StackMap locals: org.springframework.core.ResolvableType[]
StackMap stack:
aload 2
ifnonnull 7
4: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unable to determine source type <S> and target type <T> for your ConverterFactory ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
5: aload 1
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 those types?"
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:
StackMap stack:
aload 0
new org.springframework.core.convert.support.GenericConversionService$ConverterFactoryAdapter
dup
aload 0
aload 1
8: new org.springframework.core.convert.converter.GenericConverter$ConvertiblePair
dup
aload 2
iconst_0
aaload
invokevirtual org.springframework.core.ResolvableType.toClass:()Ljava/lang/Class;
aload 2
iconst_1
aaload
invokevirtual org.springframework.core.ResolvableType.toClass:()Ljava/lang/Class;
invokespecial org.springframework.core.convert.converter.GenericConverter$ConvertiblePair.<init>:(Ljava/lang/Class;Ljava/lang/Class;)V
invokespecial org.springframework.core.convert.support.GenericConversionService$ConverterFactoryAdapter.<init>:(Lorg/springframework/core/convert/support/GenericConversionService;Lorg/springframework/core/convert/converter/ConverterFactory;Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;)V
9: invokevirtual org.springframework.core.convert.support.GenericConversionService.addConverter:(Lorg/springframework/core/convert/converter/GenericConverter;)V
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/springframework/core/convert/support/GenericConversionService;
0 11 1 factory Lorg/springframework/core/convert/converter/ConverterFactory<**>;
1 11 2 typeInfo [Lorg/springframework/core/ResolvableType;
Signature: (Lorg/springframework/core/convert/converter/ConverterFactory<**>;)V
MethodParameters:
Name Flags
factory
public void removeConvertible(java.lang.Class<?>, java.lang.Class<?>);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.springframework.core.convert.support.GenericConversionService.converters:Lorg/springframework/core/convert/support/GenericConversionService$Converters;
aload 1
aload 2
invokevirtual org.springframework.core.convert.support.GenericConversionService$Converters.remove:(Ljava/lang/Class;Ljava/lang/Class;)V
1: aload 0
invokevirtual org.springframework.core.convert.support.GenericConversionService.invalidateCache:()V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/core/convert/support/GenericConversionService;
0 3 1 sourceType Ljava/lang/Class<*>;
0 3 2 targetType Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
sourceType
targetType
public boolean canConvert(java.lang.Class<?>, java.lang.Class<?>);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ldc "Target type to convert to cannot be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
1: aload 0
aload 1
ifnull 2
aload 1
invokestatic org.springframework.core.convert.TypeDescriptor.valueOf:(Ljava/lang/Class;)Lorg/springframework/core/convert/TypeDescriptor;
goto 3
StackMap locals:
StackMap stack: org.springframework.core.convert.support.GenericConversionService
2: aconst_null
3: StackMap locals: org.springframework.core.convert.support.GenericConversionService java.lang.Class java.lang.Class
StackMap stack: org.springframework.core.convert.support.GenericConversionService org.springframework.core.convert.TypeDescriptor
aload 2
invokestatic org.springframework.core.convert.TypeDescriptor.valueOf:(Ljava/lang/Class;)Lorg/springframework/core/convert/TypeDescriptor;
4: invokevirtual org.springframework.core.convert.support.GenericConversionService.canConvert:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/core/convert/support/GenericConversionService;
0 5 1 sourceType Ljava/lang/Class<*>;
0 5 2 targetType Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Z
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
MethodParameters:
Name Flags
sourceType
targetType
public boolean canConvert(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=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ldc "Target type to convert to cannot be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
1: aload 1
ifnonnull 3
2: iconst_1
ireturn
3: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.springframework.core.convert.support.GenericConversionService.getConverter:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Lorg/springframework/core/convert/converter/GenericConverter;
astore 3
start local 3 4: aload 3
ifnull 5
iconst_1
ireturn
StackMap locals: org.springframework.core.convert.converter.GenericConverter
StackMap stack:
5: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/core/convert/support/GenericConversionService;
0 6 1 sourceType Lorg/springframework/core/convert/TypeDescriptor;
0 6 2 targetType Lorg/springframework/core/convert/TypeDescriptor;
4 6 3 converter Lorg/springframework/core/convert/converter/GenericConverter;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
MethodParameters:
Name Flags
sourceType
targetType
public boolean canBypassConvert(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=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ldc "Target type to convert to cannot be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
1: aload 1
ifnonnull 3
2: iconst_1
ireturn
3: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.springframework.core.convert.support.GenericConversionService.getConverter:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Lorg/springframework/core/convert/converter/GenericConverter;
astore 3
start local 3 4: aload 3
getstatic org.springframework.core.convert.support.GenericConversionService.NO_OP_CONVERTER:Lorg/springframework/core/convert/converter/GenericConverter;
if_acmpne 5
iconst_1
ireturn
StackMap locals: org.springframework.core.convert.converter.GenericConverter
StackMap stack:
5: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/core/convert/support/GenericConversionService;
0 6 1 sourceType Lorg/springframework/core/convert/TypeDescriptor;
0 6 2 targetType Lorg/springframework/core/convert/TypeDescriptor;
4 6 3 converter Lorg/springframework/core/convert/converter/GenericConverter;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
MethodParameters:
Name Flags
sourceType
targetType
public <T> T convert(, java.lang.Class<T>);
descriptor: (Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ldc "Target type to convert to cannot be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
1: aload 0
aload 1
aload 1
invokestatic org.springframework.core.convert.TypeDescriptor.forObject:(Ljava/lang/Object;)Lorg/springframework/core/convert/TypeDescriptor;
aload 2
invokestatic org.springframework.core.convert.TypeDescriptor.valueOf:(Ljava/lang/Class;)Lorg/springframework/core/convert/TypeDescriptor;
invokevirtual org.springframework.core.convert.support.GenericConversionService.convert:(Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/core/convert/support/GenericConversionService;
0 2 1 source Ljava/lang/Object;
0 2 2 targetType Ljava/lang/Class<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/Class<TT;>;)TT;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
MethodParameters:
Name Flags
source
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=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
ldc "Target type to convert to cannot be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
1: aload 2
ifnonnull 6
2: aload 1
ifnonnull 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: ldc "Source must be [null] if source type == [null]"
invokestatic org.springframework.util.Assert.isTrue:(ZLjava/lang/String;)V
5: aload 0
aconst_null
aload 3
aload 0
aconst_null
aload 3
invokevirtual org.springframework.core.convert.support.GenericConversionService.convertNullSource:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
invokevirtual org.springframework.core.convert.support.GenericConversionService.handleResult:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;Ljava/lang/Object;)Ljava/lang/Object;
areturn
6: StackMap locals:
StackMap stack:
aload 1
ifnull 10
aload 2
invokevirtual org.springframework.core.convert.TypeDescriptor.getObjectType:()Ljava/lang/Class;
aload 1
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifne 10
7: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Source to convert from must be an instance of ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
8: aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]; instead it was a ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
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 "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 3
invokevirtual org.springframework.core.convert.support.GenericConversionService.getConverter:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Lorg/springframework/core/convert/converter/GenericConverter;
astore 4
start local 4 11: aload 4
ifnull 14
12: aload 4
aload 1
aload 2
aload 3
invokestatic org.springframework.core.convert.support.ConversionUtils.invokeConverter:(Lorg/springframework/core/convert/converter/GenericConverter;Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
astore 5
start local 5 13: aload 0
aload 2
aload 3
aload 5
invokevirtual org.springframework.core.convert.support.GenericConversionService.handleResult:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 5 14: StackMap locals: org.springframework.core.convert.converter.GenericConverter
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokevirtual org.springframework.core.convert.support.GenericConversionService.handleConverterNotFound:(Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/springframework/core/convert/support/GenericConversionService;
0 15 1 source Ljava/lang/Object;
0 15 2 sourceType Lorg/springframework/core/convert/TypeDescriptor;
0 15 3 targetType Lorg/springframework/core/convert/TypeDescriptor;
11 15 4 converter Lorg/springframework/core/convert/converter/GenericConverter;
13 14 5 result Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
org.springframework.lang.Nullable()
2:
MethodParameters:
Name Flags
source
sourceType
targetType
public java.lang.Object convert(java.lang.Object, org.springframework.core.convert.TypeDescriptor);
descriptor: (Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 1
invokestatic org.springframework.core.convert.TypeDescriptor.forObject:(Ljava/lang/Object;)Lorg/springframework/core/convert/TypeDescriptor;
aload 2
invokevirtual org.springframework.core.convert.support.GenericConversionService.convert:(Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/core/convert/support/GenericConversionService;
0 1 1 source Ljava/lang/Object;
0 1 2 targetType Lorg/springframework/core/convert/TypeDescriptor;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
MethodParameters:
Name Flags
source
targetType
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.core.convert.support.GenericConversionService.converters:Lorg/springframework/core/convert/support/GenericConversionService$Converters;
invokevirtual org.springframework.core.convert.support.GenericConversionService$Converters.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/core/convert/support/GenericConversionService;
protected java.lang.Object convertNullSource(org.springframework.core.convert.TypeDescriptor, org.springframework.core.convert.TypeDescriptor);
descriptor: (Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual org.springframework.core.convert.TypeDescriptor.getObjectType:()Ljava/lang/Class;
ldc Ljava/util/Optional;
if_acmpne 2
1: invokestatic java.util.Optional.empty:()Ljava/util/Optional;
areturn
2: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/core/convert/support/GenericConversionService;
0 3 1 sourceType Lorg/springframework/core/convert/TypeDescriptor;
0 3 2 targetType Lorg/springframework/core/convert/TypeDescriptor;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
MethodParameters:
Name Flags
sourceType
targetType
protected org.springframework.core.convert.converter.GenericConverter getConverter(org.springframework.core.convert.TypeDescriptor, org.springframework.core.convert.TypeDescriptor);
descriptor: (Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Lorg/springframework/core/convert/converter/GenericConverter;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new org.springframework.core.convert.support.GenericConversionService$ConverterCacheKey
dup
aload 1
aload 2
invokespecial org.springframework.core.convert.support.GenericConversionService$ConverterCacheKey.<init>:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)V
astore 3
start local 3 1: aload 0
getfield org.springframework.core.convert.support.GenericConversionService.converterCache:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.springframework.core.convert.converter.GenericConverter
astore 4
start local 4 2: aload 4
ifnull 6
3: aload 4
getstatic org.springframework.core.convert.support.GenericConversionService.NO_MATCH:Lorg/springframework/core/convert/converter/GenericConverter;
if_acmpeq 4
aload 4
goto 5
StackMap locals: org.springframework.core.convert.support.GenericConversionService$ConverterCacheKey org.springframework.core.convert.converter.GenericConverter
StackMap stack:
4: aconst_null
StackMap locals:
StackMap stack: org.springframework.core.convert.converter.GenericConverter
5: areturn
6: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.core.convert.support.GenericConversionService.converters:Lorg/springframework/core/convert/support/GenericConversionService$Converters;
aload 1
aload 2
invokevirtual org.springframework.core.convert.support.GenericConversionService$Converters.find:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Lorg/springframework/core/convert/converter/GenericConverter;
astore 4
7: aload 4
ifnonnull 9
8: aload 0
aload 1
aload 2
invokevirtual org.springframework.core.convert.support.GenericConversionService.getDefaultConverter:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Lorg/springframework/core/convert/converter/GenericConverter;
astore 4
9: StackMap locals:
StackMap stack:
aload 4
ifnull 12
10: aload 0
getfield org.springframework.core.convert.support.GenericConversionService.converterCache:Ljava/util/Map;
aload 3
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: aload 4
areturn
12: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.core.convert.support.GenericConversionService.converterCache:Ljava/util/Map;
aload 3
getstatic org.springframework.core.convert.support.GenericConversionService.NO_MATCH:Lorg/springframework/core/convert/converter/GenericConverter;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/springframework/core/convert/support/GenericConversionService;
0 14 1 sourceType Lorg/springframework/core/convert/TypeDescriptor;
0 14 2 targetType Lorg/springframework/core/convert/TypeDescriptor;
1 14 3 key Lorg/springframework/core/convert/support/GenericConversionService$ConverterCacheKey;
2 14 4 converter Lorg/springframework/core/convert/converter/GenericConverter;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
sourceType
targetType
protected org.springframework.core.convert.converter.GenericConverter getDefaultConverter(org.springframework.core.convert.TypeDescriptor, org.springframework.core.convert.TypeDescriptor);
descriptor: (Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Lorg/springframework/core/convert/converter/GenericConverter;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokevirtual org.springframework.core.convert.TypeDescriptor.isAssignableTo:(Lorg/springframework/core/convert/TypeDescriptor;)Z
ifeq 1
getstatic org.springframework.core.convert.support.GenericConversionService.NO_OP_CONVERTER:Lorg/springframework/core/convert/converter/GenericConverter;
goto 2
StackMap locals:
StackMap stack:
1: aconst_null
StackMap locals:
StackMap stack: org.springframework.core.convert.converter.GenericConverter
2: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/core/convert/support/GenericConversionService;
0 3 1 sourceType Lorg/springframework/core/convert/TypeDescriptor;
0 3 2 targetType Lorg/springframework/core/convert/TypeDescriptor;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
sourceType
targetType
private org.springframework.core.ResolvableType[] getRequiredTypeInfo(java.lang.Class<?>, java.lang.Class<?>);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;)[Lorg/springframework/core/ResolvableType;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic org.springframework.core.ResolvableType.forClass:(Ljava/lang/Class;)Lorg/springframework/core/ResolvableType;
aload 2
invokevirtual org.springframework.core.ResolvableType.as:(Ljava/lang/Class;)Lorg/springframework/core/ResolvableType;
astore 3
start local 3 1: aload 3
invokevirtual org.springframework.core.ResolvableType.getGenerics:()[Lorg/springframework/core/ResolvableType;
astore 4
start local 4 2: aload 4
arraylength
iconst_2
if_icmpge 4
3: aconst_null
areturn
4: StackMap locals: org.springframework.core.ResolvableType org.springframework.core.ResolvableType[]
StackMap stack:
aload 4
iconst_0
aaload
invokevirtual org.springframework.core.ResolvableType.resolve:()Ljava/lang/Class;
astore 5
start local 5 5: aload 4
iconst_1
aaload
invokevirtual org.springframework.core.ResolvableType.resolve:()Ljava/lang/Class;
astore 6
start local 6 6: aload 5
ifnull 7
aload 6
ifnonnull 8
7: StackMap locals: java.lang.Class java.lang.Class
StackMap stack:
aconst_null
areturn
8: StackMap locals:
StackMap stack:
aload 4
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/core/convert/support/GenericConversionService;
0 9 1 converterClass Ljava/lang/Class<*>;
0 9 2 genericIfc Ljava/lang/Class<*>;
1 9 3 resolvableType Lorg/springframework/core/ResolvableType;
2 9 4 generics [Lorg/springframework/core/ResolvableType;
5 9 5 sourceType Ljava/lang/Class<*>;
6 9 6 targetType Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)[Lorg/springframework/core/ResolvableType;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
converterClass
genericIfc
private void invalidateCache();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.core.convert.support.GenericConversionService.converterCache:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/core/convert/support/GenericConversionService;
private java.lang.Object handleConverterNotFound(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: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
ifnonnull 3
1: aload 0
aload 2
aload 3
invokevirtual org.springframework.core.convert.support.GenericConversionService.assertNotPrimitiveTargetType:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)V
2: aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 2
ifnull 4
aload 2
aload 3
invokevirtual org.springframework.core.convert.TypeDescriptor.isAssignableTo:(Lorg/springframework/core/convert/TypeDescriptor;)Z
ifeq 6
4: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.springframework.core.convert.TypeDescriptor.getObjectType:()Ljava/lang/Class;
aload 1
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 6
5: aload 1
areturn
6: StackMap locals:
StackMap stack:
new org.springframework.core.convert.ConverterNotFoundException
dup
aload 2
aload 3
invokespecial org.springframework.core.convert.ConverterNotFoundException.<init>:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/core/convert/support/GenericConversionService;
0 7 1 source Ljava/lang/Object;
0 7 2 sourceType Lorg/springframework/core/convert/TypeDescriptor;
0 7 3 targetType Lorg/springframework/core/convert/TypeDescriptor;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
org.springframework.lang.Nullable()
2:
MethodParameters:
Name Flags
source
sourceType
targetType
private java.lang.Object handleResult(org.springframework.core.convert.TypeDescriptor, org.springframework.core.convert.TypeDescriptor, java.lang.Object);
descriptor: (Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
ifnonnull 2
1: aload 0
aload 1
aload 2
invokevirtual org.springframework.core.convert.support.GenericConversionService.assertNotPrimitiveTargetType:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)V
2: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/core/convert/support/GenericConversionService;
0 3 1 sourceType Lorg/springframework/core/convert/TypeDescriptor;
0 3 2 targetType Lorg/springframework/core/convert/TypeDescriptor;
0 3 3 result Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
2:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
sourceType
targetType
result
private void assertNotPrimitiveTargetType(org.springframework.core.convert.TypeDescriptor, org.springframework.core.convert.TypeDescriptor);
descriptor: (Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual org.springframework.core.convert.TypeDescriptor.isPrimitive:()Z
ifeq 4
1: new org.springframework.core.convert.ConversionFailedException
dup
aload 1
aload 2
aconst_null
2: new java.lang.IllegalArgumentException
dup
ldc "A null value cannot be assigned to a primitive type"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
3: invokespecial org.springframework.core.convert.ConversionFailedException.<init>:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;Ljava/lang/Object;Ljava/lang/Throwable;)V
athrow
4: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/core/convert/support/GenericConversionService;
0 5 1 sourceType Lorg/springframework/core/convert/TypeDescriptor;
0 5 2 targetType Lorg/springframework/core/convert/TypeDescriptor;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
MethodParameters:
Name Flags
sourceType
targetType
}
SourceFile: "GenericConversionService.java"
NestMembers:
org.springframework.core.convert.support.GenericConversionService$ConverterAdapter org.springframework.core.convert.support.GenericConversionService$ConverterCacheKey org.springframework.core.convert.support.GenericConversionService$ConverterFactoryAdapter org.springframework.core.convert.support.GenericConversionService$Converters org.springframework.core.convert.support.GenericConversionService$ConvertersForPair org.springframework.core.convert.support.GenericConversionService$NoOpConverter
InnerClasses:
public final ConvertiblePair = org.springframework.core.convert.converter.GenericConverter$ConvertiblePair of org.springframework.core.convert.converter.GenericConverter
private final ConverterAdapter = org.springframework.core.convert.support.GenericConversionService$ConverterAdapter of org.springframework.core.convert.support.GenericConversionService
private final ConverterCacheKey = org.springframework.core.convert.support.GenericConversionService$ConverterCacheKey of org.springframework.core.convert.support.GenericConversionService
private final ConverterFactoryAdapter = org.springframework.core.convert.support.GenericConversionService$ConverterFactoryAdapter of org.springframework.core.convert.support.GenericConversionService
private Converters = org.springframework.core.convert.support.GenericConversionService$Converters of org.springframework.core.convert.support.GenericConversionService
private ConvertersForPair = org.springframework.core.convert.support.GenericConversionService$ConvertersForPair of org.springframework.core.convert.support.GenericConversionService
private NoOpConverter = org.springframework.core.convert.support.GenericConversionService$NoOpConverter of org.springframework.core.convert.support.GenericConversionService