class org.springframework.boot.context.properties.bind.MapBinder extends org.springframework.boot.context.properties.bind.AggregateBinder<java.util.Map<java.lang.Object, java.lang.Object>>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.boot.context.properties.bind.MapBinder
super_class: org.springframework.boot.context.properties.bind.AggregateBinder
{
private static final org.springframework.boot.context.properties.bind.Bindable<java.util.Map<java.lang.String, java.lang.String>> STRING_STRING_MAP;
descriptor: Lorg/springframework/boot/context/properties/bind/Bindable;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lorg/springframework/boot/context/properties/bind/Bindable<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Ljava/lang/String;
ldc Ljava/lang/String;
invokestatic org.springframework.boot.context.properties.bind.Bindable.mapOf:(Ljava/lang/Class;Ljava/lang/Class;)Lorg/springframework/boot/context/properties/bind/Bindable;
putstatic org.springframework.boot.context.properties.bind.MapBinder.STRING_STRING_MAP:Lorg/springframework/boot/context/properties/bind/Bindable;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.springframework.boot.context.properties.bind.Binder$Context);
descriptor: (Lorg/springframework/boot/context/properties/bind/Binder$Context;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.springframework.boot.context.properties.bind.AggregateBinder.<init>:(Lorg/springframework/boot/context/properties/bind/Binder$Context;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/boot/context/properties/bind/MapBinder;
0 2 1 context Lorg/springframework/boot/context/properties/bind/Binder$Context;
MethodParameters:
Name Flags
context
protected boolean isAllowRecursiveBinding(org.springframework.boot.context.properties.source.ConfigurationPropertySource);
descriptor: (Lorg/springframework/boot/context/properties/source/ConfigurationPropertySource;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/boot/context/properties/bind/MapBinder;
0 1 1 source Lorg/springframework/boot/context/properties/source/ConfigurationPropertySource;
MethodParameters:
Name Flags
source
protected bindAggregate(org.springframework.boot.context.properties.source.ConfigurationPropertyName, org.springframework.boot.context.properties.bind.Bindable<?>, org.springframework.boot.context.properties.bind.AggregateElementBinder);
descriptor: (Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;Lorg/springframework/boot/context/properties/bind/Bindable;Lorg/springframework/boot/context/properties/bind/AggregateElementBinder;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual org.springframework.boot.context.properties.bind.Bindable.getValue:()Ljava/util/function/Supplier;
ifnull 1
ldc Ljava/util/Map;
goto 2
StackMap locals:
StackMap stack:
1: aload 2
invokevirtual org.springframework.boot.context.properties.bind.Bindable.getType:()Lorg/springframework/core/ResolvableType;
ldc Ljava/lang/Object;
invokevirtual org.springframework.core.ResolvableType.resolve:(Ljava/lang/Class;)Ljava/lang/Class;
StackMap locals:
StackMap stack: java.lang.Class
2: iconst_0
invokestatic org.springframework.core.CollectionFactory.createMap:(Ljava/lang/Class;I)Ljava/util/Map;
3: astore 4
start local 4 4: aload 0
aload 2
invokevirtual org.springframework.boot.context.properties.bind.MapBinder.resolveTarget:(Lorg/springframework/boot/context/properties/bind/Bindable;)Lorg/springframework/boot/context/properties/bind/Bindable;
astore 5
start local 5 5: aload 0
aload 1
invokevirtual org.springframework.boot.context.properties.bind.MapBinder.hasDescendants:(Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;)Z
istore 6
start local 6 6: aload 0
invokevirtual org.springframework.boot.context.properties.bind.MapBinder.getContext:()Lorg/springframework/boot/context/properties/bind/Binder$Context;
invokevirtual org.springframework.boot.context.properties.bind.Binder$Context.getSources:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 8
goto 14
StackMap locals: org.springframework.boot.context.properties.bind.MapBinder org.springframework.boot.context.properties.source.ConfigurationPropertyName org.springframework.boot.context.properties.bind.Bindable org.springframework.boot.context.properties.bind.AggregateElementBinder java.util.Map org.springframework.boot.context.properties.bind.Bindable int top java.util.Iterator
StackMap stack:
7: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.boot.context.properties.source.ConfigurationPropertySource
astore 7
start local 7 8: getstatic org.springframework.boot.context.properties.source.ConfigurationPropertyName.EMPTY:Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;
aload 1
invokevirtual org.springframework.boot.context.properties.source.ConfigurationPropertyName.equals:(Ljava/lang/Object;)Z
ifne 13
9: aload 7
aload 1
invokeinterface org.springframework.boot.context.properties.source.ConfigurationPropertySource.getConfigurationProperty:(Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;)Lorg/springframework/boot/context/properties/source/ConfigurationProperty;
astore 9
start local 9 10: aload 9
ifnull 12
iload 6
ifne 12
11: aload 0
invokevirtual org.springframework.boot.context.properties.bind.MapBinder.getContext:()Lorg/springframework/boot/context/properties/bind/Binder$Context;
invokevirtual org.springframework.boot.context.properties.bind.Binder$Context.getConverter:()Lorg/springframework/boot/context/properties/bind/BindConverter;
aload 9
invokevirtual org.springframework.boot.context.properties.source.ConfigurationProperty.getValue:()Ljava/lang/Object;
aload 2
invokevirtual org.springframework.boot.context.properties.bind.BindConverter.convert:(Ljava/lang/Object;Lorg/springframework/boot/context/properties/bind/Bindable;)Ljava/lang/Object;
areturn
12: StackMap locals: org.springframework.boot.context.properties.bind.MapBinder org.springframework.boot.context.properties.source.ConfigurationPropertyName org.springframework.boot.context.properties.bind.Bindable org.springframework.boot.context.properties.bind.AggregateElementBinder java.util.Map org.springframework.boot.context.properties.bind.Bindable int org.springframework.boot.context.properties.source.ConfigurationPropertySource java.util.Iterator org.springframework.boot.context.properties.source.ConfigurationProperty
StackMap stack:
aload 7
aload 1
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic test(Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
org/springframework/boot/context/properties/source/ConfigurationPropertyName.isAncestorOf(Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;)Z (5)
(Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;)Z
invokeinterface org.springframework.boot.context.properties.source.ConfigurationPropertySource.filter:(Ljava/util/function/Predicate;)Lorg/springframework/boot/context/properties/source/ConfigurationPropertySource;
astore 7
end local 9 13: StackMap locals:
StackMap stack:
new org.springframework.boot.context.properties.bind.MapBinder$EntryBinder
dup
aload 0
aload 1
aload 5
aload 3
invokespecial org.springframework.boot.context.properties.bind.MapBinder$EntryBinder.<init>:(Lorg/springframework/boot/context/properties/bind/MapBinder;Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;Lorg/springframework/boot/context/properties/bind/Bindable;Lorg/springframework/boot/context/properties/bind/AggregateElementBinder;)V
aload 7
aload 4
invokevirtual org.springframework.boot.context.properties.bind.MapBinder$EntryBinder.bindEntries:(Lorg/springframework/boot/context/properties/source/ConfigurationPropertySource;Ljava/util/Map;)V
end local 7 14: StackMap locals: org.springframework.boot.context.properties.bind.MapBinder org.springframework.boot.context.properties.source.ConfigurationPropertyName org.springframework.boot.context.properties.bind.Bindable org.springframework.boot.context.properties.bind.AggregateElementBinder java.util.Map org.springframework.boot.context.properties.bind.Bindable int top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
15: aload 4
invokeinterface java.util.Map.isEmpty:()Z
ifeq 16
aconst_null
goto 17
StackMap locals: org.springframework.boot.context.properties.bind.MapBinder org.springframework.boot.context.properties.source.ConfigurationPropertyName org.springframework.boot.context.properties.bind.Bindable org.springframework.boot.context.properties.bind.AggregateElementBinder java.util.Map org.springframework.boot.context.properties.bind.Bindable int
StackMap stack:
16: aload 4
StackMap locals:
StackMap stack: java.util.Map
17: 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 18 0 this Lorg/springframework/boot/context/properties/bind/MapBinder;
0 18 1 name Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;
0 18 2 target Lorg/springframework/boot/context/properties/bind/Bindable<*>;
0 18 3 elementBinder Lorg/springframework/boot/context/properties/bind/AggregateElementBinder;
4 18 4 map Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
5 18 5 resolvedTarget Lorg/springframework/boot/context/properties/bind/Bindable<*>;
6 18 6 hasDescendants Z
8 14 7 source Lorg/springframework/boot/context/properties/source/ConfigurationPropertySource;
10 13 9 property Lorg/springframework/boot/context/properties/source/ConfigurationProperty;
Signature: (Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;Lorg/springframework/boot/context/properties/bind/Bindable<*>;Lorg/springframework/boot/context/properties/bind/AggregateElementBinder;)Ljava/lang/Object;
MethodParameters:
Name Flags
name
target
elementBinder
private boolean hasDescendants(org.springframework.boot.context.properties.source.ConfigurationPropertyName);
descriptor: (Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.springframework.boot.context.properties.bind.MapBinder.getContext:()Lorg/springframework/boot/context/properties/bind/Binder$Context;
invokevirtual org.springframework.boot.context.properties.bind.Binder$Context.getSources:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: org.springframework.boot.context.properties.bind.MapBinder org.springframework.boot.context.properties.source.ConfigurationPropertyName top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.boot.context.properties.source.ConfigurationPropertySource
astore 2
start local 2 2: aload 2
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 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/boot/context/properties/bind/MapBinder;
0 6 1 name Lorg/springframework/boot/context/properties/source/ConfigurationPropertyName;
2 4 2 source Lorg/springframework/boot/context/properties/source/ConfigurationPropertySource;
MethodParameters:
Name Flags
name
private org.springframework.boot.context.properties.bind.Bindable<?> resolveTarget(org.springframework.boot.context.properties.bind.Bindable<?>);
descriptor: (Lorg/springframework/boot/context/properties/bind/Bindable;)Lorg/springframework/boot/context/properties/bind/Bindable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.springframework.boot.context.properties.bind.Bindable.getType:()Lorg/springframework/core/ResolvableType;
ldc Ljava/lang/Object;
invokevirtual org.springframework.core.ResolvableType.resolve:(Ljava/lang/Class;)Ljava/lang/Class;
astore 2
start local 2 1: ldc Ljava/util/Properties;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 3
2: getstatic org.springframework.boot.context.properties.bind.MapBinder.STRING_STRING_MAP:Lorg/springframework/boot/context/properties/bind/Bindable;
areturn
3: StackMap locals: java.lang.Class
StackMap stack:
aload 1
areturn
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/MapBinder;
0 4 1 target Lorg/springframework/boot/context/properties/bind/Bindable<*>;
1 4 2 type Ljava/lang/Class<*>;
Signature: (Lorg/springframework/boot/context/properties/bind/Bindable<*>;)Lorg/springframework/boot/context/properties/bind/Bindable<*>;
MethodParameters:
Name Flags
target
protected java.util.Map<java.lang.Object, java.lang.Object> merge(java.util.function.Supplier<java.util.Map<java.lang.Object, java.lang.Object>>, java.util.Map<java.lang.Object, java.lang.Object>);
descriptor: (Ljava/util/function/Supplier;Ljava/util/Map;)Ljava/util/Map;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.springframework.boot.context.properties.bind.MapBinder.getExistingIfPossible:(Ljava/util/function/Supplier;)Ljava/util/Map;
astore 3
start local 3 1: aload 3
ifnonnull 3
2: aload 2
areturn
3: StackMap locals: java.util.Map
StackMap stack:
aload 3
aload 2
invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
4: aload 0
aload 3
invokevirtual org.springframework.boot.context.properties.bind.MapBinder.copyIfPossible:(Ljava/util/Map;)Ljava/util/Map;
5: areturn
6: StackMap locals:
StackMap stack: java.lang.UnsupportedOperationException
pop
7: aload 0
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 3
invokevirtual org.springframework.boot.context.properties.bind.MapBinder.createNewMap:(Ljava/lang/Class;Ljava/util/Map;)Ljava/util/Map;
astore 4
start local 4 8: aload 4
aload 2
invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
9: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/springframework/boot/context/properties/bind/MapBinder;
0 10 1 existing Ljava/util/function/Supplier<Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;>;
0 10 2 additional Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
1 10 3 existingMap Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
8 10 4 result Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
Exception table:
from to target type
3 5 6 Class java.lang.UnsupportedOperationException
Signature: (Ljava/util/function/Supplier<Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;>;Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;)Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
MethodParameters:
Name Flags
existing
additional
private java.util.Map<java.lang.Object, java.lang.Object> getExistingIfPossible(java.util.function.Supplier<java.util.Map<java.lang.Object, java.lang.Object>>);
descriptor: (Ljava/util/function/Supplier;)Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
checkcast java.util.Map
1: areturn
2: StackMap locals:
StackMap stack: java.lang.Exception
pop
3: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/boot/context/properties/bind/MapBinder;
0 4 1 existing Ljava/util/function/Supplier<Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;>;
Exception table:
from to target type
0 1 2 Class java.lang.Exception
Signature: (Ljava/util/function/Supplier<Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;>;)Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
MethodParameters:
Name Flags
existing
private java.util.Map<java.lang.Object, java.lang.Object> copyIfPossible(java.util.Map<java.lang.Object, java.lang.Object>);
descriptor: (Ljava/util/Map;)Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 1
invokevirtual org.springframework.boot.context.properties.bind.MapBinder.createNewMap:(Ljava/lang/Class;Ljava/util/Map;)Ljava/util/Map;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.Exception
pop
3: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/boot/context/properties/bind/MapBinder;
0 4 1 map Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
Exception table:
from to target type
0 1 2 Class java.lang.Exception
Signature: (Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;)Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
MethodParameters:
Name Flags
map
private java.util.Map<java.lang.Object, java.lang.Object> createNewMap(java.lang.Class<?>, java.util.Map<java.lang.Object, java.lang.Object>);
descriptor: (Ljava/lang/Class;Ljava/util/Map;)Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokeinterface java.util.Map.size:()I
invokestatic org.springframework.core.CollectionFactory.createMap:(Ljava/lang/Class;I)Ljava/util/Map;
astore 3
start local 3 1: aload 3
aload 2
invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
2: 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/boot/context/properties/bind/MapBinder;
0 3 1 mapClass Ljava/lang/Class<*>;
0 3 2 map Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
1 3 3 result Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
Signature: (Ljava/lang/Class<*>;Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;)Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
MethodParameters:
Name Flags
mapClass
map
protected java.lang.Object merge(java.util.function.Supplier, java.lang.Object);
descriptor: (Ljava/util/function/Supplier;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
checkcast java.util.function.Supplier
aload 2
checkcast java.util.Map
invokevirtual org.springframework.boot.context.properties.bind.MapBinder.merge:(Ljava/util/function/Supplier;Ljava/util/Map;)Ljava/util/Map;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Lorg/springframework/boot/context/properties/bind/AggregateBinder<Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;>;
SourceFile: "MapBinder.java"
NestMembers:
org.springframework.boot.context.properties.bind.MapBinder$EntryBinder
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
final Context = org.springframework.boot.context.properties.bind.Binder$Context of org.springframework.boot.context.properties.bind.Binder
private EntryBinder = org.springframework.boot.context.properties.bind.MapBinder$EntryBinder of org.springframework.boot.context.properties.bind.MapBinder