class org.springframework.boot.context.properties.bind.JavaBeanBinder implements org.springframework.boot.context.properties.bind.DataObjectBinder
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.boot.context.properties.bind.JavaBeanBinder
super_class: java.lang.Object
{
static final org.springframework.boot.context.properties.bind.JavaBeanBinder INSTANCE;
descriptor: Lorg/springframework/boot/context/properties/bind/JavaBeanBinder;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new org.springframework.boot.context.properties.bind.JavaBeanBinder
dup
invokespecial org.springframework.boot.context.properties.bind.JavaBeanBinder.<init>:()V
putstatic org.springframework.boot.context.properties.bind.JavaBeanBinder.INSTANCE:Lorg/springframework/boot/context/properties/bind/JavaBeanBinder;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/boot/context/properties/bind/JavaBeanBinder;
public <T> T bind(org.springframework.boot.context.properties.source.ConfigurationPropertyName, org.springframework.boot.context.properties.bind.Bindable<T>, org.springframework.boot.context.properties.bind.Binder$Context, org.springframework.boot.context.properties.bind.DataObjectPropertyBinder);
descriptor: (Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;Lorg/springframework/boot/context/properties/bind/Bindable;Lorg/springframework/boot/context/properties/bind/Binder$Context;Lorg/springframework/boot/context/properties/bind/DataObjectPropertyBinder;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
invokevirtual org.springframework.boot.context.properties.bind.Bindable.getValue:()Ljava/util/function/Supplier;
ifnull 1
aload 0
aload 1
aload 3
invokevirtual org.springframework.boot.context.properties.bind.JavaBeanBinder.hasKnownBindableProperties:(Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;Lorg/springframework/boot/context/properties/bind/Binder$Context;)Z
ifeq 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: istore 5
start local 5 3: aload 2
iload 5
invokestatic org.springframework.boot.context.properties.bind.JavaBeanBinder$Bean.get:(Lorg/springframework/boot/context/properties/bind/Bindable;Z)Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$Bean;
astore 6
start local 6 4: aload 6
ifnonnull 6
5: aconst_null
areturn
6: StackMap locals: int org.springframework.boot.context.properties.bind.JavaBeanBinder$Bean
StackMap stack:
aload 6
aload 2
invokevirtual org.springframework.boot.context.properties.bind.JavaBeanBinder$Bean.getSupplier:(Lorg/springframework/boot/context/properties/bind/Bindable;)Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$BeanSupplier;
astore 7
start local 7 7: aload 0
aload 4
aload 6
aload 7
aload 3
invokevirtual org.springframework.boot.context.properties.bind.JavaBeanBinder.bind:(Lorg/springframework/boot/context/properties/bind/DataObjectPropertyBinder;Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$Bean;Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$BeanSupplier;Lorg/springframework/boot/context/properties/bind/Binder$Context;)Z
istore 8
start local 8 8: iload 8
ifeq 9
aload 7
invokevirtual org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanSupplier.get:()Ljava/lang/Object;
goto 10
StackMap locals: org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanSupplier int
StackMap stack:
9: aconst_null
StackMap locals:
StackMap stack: java.lang.Object
10: areturn
end local 8 end local 7 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 11 0 this Lorg/springframework/boot/context/properties/bind/JavaBeanBinder;
0 11 1 name Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;
0 11 2 target Lorg/springframework/boot/context/properties/bind/Bindable<TT;>;
0 11 3 context Lorg/springframework/boot/context/properties/bind/Binder$Context;
0 11 4 propertyBinder Lorg/springframework/boot/context/properties/bind/DataObjectPropertyBinder;
3 11 5 hasKnownBindableProperties Z
4 11 6 bean Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$Bean<TT;>;
7 11 7 beanSupplier Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$BeanSupplier<TT;>;
8 11 8 bound Z
Signature: <T:Ljava/lang/Object;>(Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;Lorg/springframework/boot/context/properties/bind/Bindable<TT;>;Lorg/springframework/boot/context/properties/bind/Binder$Context;Lorg/springframework/boot/context/properties/bind/DataObjectPropertyBinder;)TT;
MethodParameters:
Name Flags
name
target
context
propertyBinder
public <T> T create(org.springframework.boot.context.properties.bind.Bindable<T>, org.springframework.boot.context.properties.bind.Binder$Context);
descriptor: (Lorg/springframework/boot/context/properties/bind/Bindable;Lorg/springframework/boot/context/properties/bind/Binder$Context;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.springframework.boot.context.properties.bind.Bindable.getType:()Lorg/springframework/core/ResolvableType;
invokevirtual org.springframework.core.ResolvableType.resolve:()Ljava/lang/Class;
astore 3
start local 3 1: aload 3
ifnull 2
aload 3
invokestatic org.springframework.beans.BeanUtils.instantiateClass:(Ljava/lang/Class;)Ljava/lang/Object;
goto 3
StackMap locals: java.lang.Class
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: java.lang.Object
3: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/boot/context/properties/bind/JavaBeanBinder;
0 4 1 target Lorg/springframework/boot/context/properties/bind/Bindable<TT;>;
0 4 2 context Lorg/springframework/boot/context/properties/bind/Binder$Context;
1 4 3 type Ljava/lang/Class<TT;>;
Signature: <T:Ljava/lang/Object;>(Lorg/springframework/boot/context/properties/bind/Bindable<TT;>;Lorg/springframework/boot/context/properties/bind/Binder$Context;)TT;
MethodParameters:
Name Flags
target
context
private boolean hasKnownBindableProperties(org.springframework.boot.context.properties.source.ConfigurationPropertyName, org.springframework.boot.context.properties.bind.Binder$Context);
descriptor: (Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;Lorg/springframework/boot/context/properties/bind/Binder$Context;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual org.springframework.boot.context.properties.bind.Binder$Context.getSources:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: org.springframework.boot.context.properties.bind.JavaBeanBinder org.springframework.boot.context.properties.source.ConfigurationPropertyName org.springframework.boot.context.properties.bind.Binder$Context top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.boot.context.properties.source.ConfigurationPropertySource
astore 3
start local 3 2: aload 3
aload 1
invokeinterface org.springframework.boot.context.properties.source.ConfigurationPropertySource.containsDescendantOf:(Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;)Lorg/springframework/boot/context/properties/source/ConfigurationPropertyState;
getstatic org.springframework.boot.context.properties.source.ConfigurationPropertyState.PRESENT:Lorg/springframework/boot/context/properties/source/ConfigurationPropertyState;
if_acmpne 4
3: iconst_1
ireturn
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/boot/context/properties/bind/JavaBeanBinder;
0 6 1 name Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;
0 6 2 context Lorg/springframework/boot/context/properties/bind/Binder$Context;
2 4 3 source Lorg/springframework/boot/context/properties/source/ConfigurationPropertySource;
MethodParameters:
Name Flags
name
context
private <T> boolean bind(org.springframework.boot.context.properties.bind.DataObjectPropertyBinder, org.springframework.boot.context.properties.bind.JavaBeanBinder$Bean<T>, org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanSupplier<T>, org.springframework.boot.context.properties.bind.Binder$Context);
descriptor: (Lorg/springframework/boot/context/properties/bind/DataObjectPropertyBinder;Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$Bean;Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$BeanSupplier;Lorg/springframework/boot/context/properties/bind/Binder$Context;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iconst_0
istore 5
start local 5 1: aload 2
invokevirtual org.springframework.boot.context.properties.bind.JavaBeanBinder$Bean.getProperties:()Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 7
goto 5
StackMap locals: org.springframework.boot.context.properties.bind.JavaBeanBinder org.springframework.boot.context.properties.bind.DataObjectPropertyBinder org.springframework.boot.context.properties.bind.JavaBeanBinder$Bean org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanSupplier org.springframework.boot.context.properties.bind.Binder$Context int top java.util.Iterator
StackMap stack:
2: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanProperty
astore 6
start local 6 3: iload 5
aload 0
aload 3
aload 1
aload 6
invokevirtual org.springframework.boot.context.properties.bind.JavaBeanBinder.bind:(Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$BeanSupplier;Lorg/springframework/boot/context/properties/bind/DataObjectPropertyBinder;Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$BeanProperty;)Z
ior
istore 5
4: aload 4
invokevirtual org.springframework.boot.context.properties.bind.Binder$Context.clearConfigurationProperty:()V
end local 6 5: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: iload 5
ireturn
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 7 0 this Lorg/springframework/boot/context/properties/bind/JavaBeanBinder;
0 7 1 propertyBinder Lorg/springframework/boot/context/properties/bind/DataObjectPropertyBinder;
0 7 2 bean Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$Bean<TT;>;
0 7 3 beanSupplier Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$BeanSupplier<TT;>;
0 7 4 context Lorg/springframework/boot/context/properties/bind/Binder$Context;
1 7 5 bound Z
3 5 6 beanProperty Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$BeanProperty;
Signature: <T:Ljava/lang/Object;>(Lorg/springframework/boot/context/properties/bind/DataObjectPropertyBinder;Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$Bean<TT;>;Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$BeanSupplier<TT;>;Lorg/springframework/boot/context/properties/bind/Binder$Context;)Z
MethodParameters:
Name Flags
propertyBinder
bean
beanSupplier
context
private <T> boolean bind(org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanSupplier<T>, org.springframework.boot.context.properties.bind.DataObjectPropertyBinder, org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanProperty);
descriptor: (Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$BeanSupplier;Lorg/springframework/boot/context/properties/bind/DataObjectPropertyBinder;Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$BeanProperty;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
invokevirtual org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanProperty.getName:()Ljava/lang/String;
astore 4
start local 4 1: aload 3
invokevirtual org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanProperty.getType:()Lorg/springframework/core/ResolvableType;
astore 5
start local 5 2: aload 3
aload 1
invokevirtual org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanProperty.getValue:(Ljava/util/function/Supplier;)Ljava/util/function/Supplier;
astore 6
start local 6 3: aload 3
invokevirtual org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanProperty.getAnnotations:()[Ljava/lang/annotation/Annotation;
astore 7
start local 7 4: aload 2
aload 4
5: aload 5
invokestatic org.springframework.boot.context.properties.bind.Bindable.of:(Lorg/springframework/core/ResolvableType;)Lorg/springframework/boot/context/properties/bind/Bindable;
aload 6
invokevirtual org.springframework.boot.context.properties.bind.Bindable.withSuppliedValue:(Ljava/util/function/Supplier;)Lorg/springframework/boot/context/properties/bind/Bindable;
aload 7
invokevirtual org.springframework.boot.context.properties.bind.Bindable.withAnnotations:([Ljava/lang/annotation/Annotation;)Lorg/springframework/boot/context/properties/bind/Bindable;
6: invokeinterface org.springframework.boot.context.properties.bind.DataObjectPropertyBinder.bindProperty:(Ljava/lang/String;Lorg/springframework/boot/context/properties/bind/Bindable;)Ljava/lang/Object;
astore 8
start local 8 7: aload 8
ifnonnull 9
8: iconst_0
ireturn
9: StackMap locals: org.springframework.boot.context.properties.bind.JavaBeanBinder org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanSupplier org.springframework.boot.context.properties.bind.DataObjectPropertyBinder org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanProperty java.lang.String org.springframework.core.ResolvableType java.util.function.Supplier java.lang.annotation.Annotation[] java.lang.Object
StackMap stack:
aload 3
invokevirtual org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanProperty.isSettable:()Z
ifeq 12
10: aload 3
aload 1
aload 8
invokevirtual org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanProperty.setValue:(Ljava/util/function/Supplier;Ljava/lang/Object;)V
11: goto 14
12: StackMap locals:
StackMap stack:
aload 6
ifnull 13
aload 8
aload 6
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 14
13: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "No setter found for property: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanProperty.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 8 end local 7 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 15 0 this Lorg/springframework/boot/context/properties/bind/JavaBeanBinder;
0 15 1 beanSupplier Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$BeanSupplier<TT;>;
0 15 2 propertyBinder Lorg/springframework/boot/context/properties/bind/DataObjectPropertyBinder;
0 15 3 property Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$BeanProperty;
1 15 4 propertyName Ljava/lang/String;
2 15 5 type Lorg/springframework/core/ResolvableType;
3 15 6 value Ljava/util/function/Supplier<Ljava/lang/Object;>;
4 15 7 annotations [Ljava/lang/annotation/Annotation;
7 15 8 bound Ljava/lang/Object;
Signature: <T:Ljava/lang/Object;>(Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$BeanSupplier<TT;>;Lorg/springframework/boot/context/properties/bind/DataObjectPropertyBinder;Lorg/springframework/boot/context/properties/bind/JavaBeanBinder$BeanProperty;)Z
MethodParameters:
Name Flags
beanSupplier
propertyBinder
property
}
SourceFile: "JavaBeanBinder.java"
NestMembers:
org.springframework.boot.context.properties.bind.JavaBeanBinder$Bean org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanProperty org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanSupplier
InnerClasses:
final Context = org.springframework.boot.context.properties.bind.Binder$Context of org.springframework.boot.context.properties.bind.Binder
Bean = org.springframework.boot.context.properties.bind.JavaBeanBinder$Bean of org.springframework.boot.context.properties.bind.JavaBeanBinder
BeanProperty = org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanProperty of org.springframework.boot.context.properties.bind.JavaBeanBinder
private BeanSupplier = org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanSupplier of org.springframework.boot.context.properties.bind.JavaBeanBinder