final class org.springframework.boot.context.properties.bind.Binder$Context implements org.springframework.boot.context.properties.bind.BindContext
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.springframework.boot.context.properties.bind.Binder$Context
  super_class: java.lang.Object
{
  private final org.springframework.boot.context.properties.bind.BindConverter converter;
    descriptor: Lorg/springframework/boot/context/properties/bind/BindConverter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int depth;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private final java.util.List<org.springframework.boot.context.properties.source.ConfigurationPropertySource> source;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/springframework/boot/context/properties/source/ConfigurationPropertySource;>;

  private int sourcePushCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

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

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

  private org.springframework.boot.context.properties.source.ConfigurationProperty configurationProperty;
    descriptor: Lorg/springframework/boot/context/properties/source/ConfigurationProperty;
    flags: (0x0002) ACC_PRIVATE

  final org.springframework.boot.context.properties.bind.Binder this$0;
    descriptor: Lorg/springframework/boot/context/properties/bind/Binder;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(org.springframework.boot.context.properties.bind.Binder);
    descriptor: (Lorg/springframework/boot/context/properties/bind/Binder;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
         0: .line 528
            aload 0 /* this */
            aload 1
            putfield org.springframework.boot.context.properties.bind.Binder$Context.this$0:Lorg/springframework/boot/context/properties/bind/Binder;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 518
            aload 0 /* this */
            iconst_1
            anewarray org.springframework.boot.context.properties.source.ConfigurationPropertySource
            dup
            iconst_0
            aconst_null
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            putfield org.springframework.boot.context.properties.bind.Binder$Context.source:Ljava/util/List;
         2: .line 522
            aload 0 /* this */
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            putfield org.springframework.boot.context.properties.bind.Binder$Context.dataObjectBindings:Ljava/util/Deque;
         3: .line 524
            aload 0 /* this */
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            putfield org.springframework.boot.context.properties.bind.Binder$Context.constructorBindings:Ljava/util/Deque;
         4: .line 529
            aload 0 /* this */
            aload 1
            getfield org.springframework.boot.context.properties.bind.Binder.conversionService:Lorg/springframework/core/convert/ConversionService;
            aload 1
            getfield org.springframework.boot.context.properties.bind.Binder.propertyEditorInitializer:Ljava/util/function/Consumer;
            invokestatic org.springframework.boot.context.properties.bind.BindConverter.get:(Lorg/springframework/core/convert/ConversionService;Ljava/util/function/Consumer;)Lorg/springframework/boot/context/properties/bind/BindConverter;
            putfield org.springframework.boot.context.properties.bind.Binder$Context.converter:Lorg/springframework/boot/context/properties/bind/BindConverter;
         5: .line 530
            return
        end local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/springframework/boot/context/properties/bind/Binder$Context;
    MethodParameters:
        Name  Flags
      this$0  final

  private void increaseDepth();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
         0: .line 533
            aload 0 /* this */
            dup
            getfield org.springframework.boot.context.properties.bind.Binder$Context.depth:I
            iconst_1
            iadd
            putfield org.springframework.boot.context.properties.bind.Binder$Context.depth:I
         1: .line 534
            return
        end local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/boot/context/properties/bind/Binder$Context;

  private void decreaseDepth();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
         0: .line 537
            aload 0 /* this */
            dup
            getfield org.springframework.boot.context.properties.bind.Binder$Context.depth:I
            iconst_1
            isub
            putfield org.springframework.boot.context.properties.bind.Binder$Context.depth:I
         1: .line 538
            return
        end local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/boot/context/properties/bind/Binder$Context;

  private <T> T withSource(org.springframework.boot.context.properties.source.ConfigurationPropertySource, java.util.function.Supplier<T>);
    descriptor: (Lorg/springframework/boot/context/properties/source/ConfigurationPropertySource;Ljava/util/function/Supplier;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
        start local 1 // org.springframework.boot.context.properties.source.ConfigurationPropertySource source
        start local 2 // java.util.function.Supplier supplier
         0: .line 541
            aload 1 /* source */
            ifnonnull 2
         1: .line 542
            aload 2 /* supplier */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            areturn
         2: .line 544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.bind.Binder$Context.source:Ljava/util/List;
            iconst_0
            aload 1 /* source */
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 545
            aload 0 /* this */
            dup
            getfield org.springframework.boot.context.properties.bind.Binder$Context.sourcePushCount:I
            iconst_1
            iadd
            putfield org.springframework.boot.context.properties.bind.Binder$Context.sourcePushCount:I
         4: .line 547
            aload 2 /* supplier */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            astore 4
         5: .line 550
            aload 0 /* this */
            dup
            getfield org.springframework.boot.context.properties.bind.Binder$Context.sourcePushCount:I
            iconst_1
            isub
            putfield org.springframework.boot.context.properties.bind.Binder$Context.sourcePushCount:I
         6: .line 547
            aload 4
            areturn
         7: .line 549
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
         8: .line 550
            aload 0 /* this */
            dup
            getfield org.springframework.boot.context.properties.bind.Binder$Context.sourcePushCount:I
            iconst_1
            isub
            putfield org.springframework.boot.context.properties.bind.Binder$Context.sourcePushCount:I
         9: .line 551
            aload 3
            athrow
        end local 2 // java.util.function.Supplier supplier
        end local 1 // org.springframework.boot.context.properties.source.ConfigurationPropertySource source
        end local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lorg/springframework/boot/context/properties/bind/Binder$Context;
            0   10     1    source  Lorg/springframework/boot/context/properties/source/ConfigurationPropertySource;
            0   10     2  supplier  Ljava/util/function/Supplier<TT;>;
      Exception table:
        from    to  target  type
           4     5       7  any
    Signature: <T:Ljava/lang/Object;>(Lorg/springframework/boot/context/properties/source/ConfigurationPropertySource;Ljava/util/function/Supplier<TT;>;)TT;
    MethodParameters:
          Name  Flags
      source    
      supplier  

  private <T> T withDataObject(java.lang.Class<?>, java.util.function.Supplier<T>);
    descriptor: (Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
        start local 1 // java.lang.Class type
        start local 2 // java.util.function.Supplier supplier
         0: .line 555
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.bind.Binder$Context.dataObjectBindings:Ljava/util/Deque;
            aload 1 /* type */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
         1: .line 557
            aload 0 /* this */
            aload 2 /* supplier */
            invokevirtual org.springframework.boot.context.properties.bind.Binder$Context.withIncreasedDepth:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            astore 4
         2: .line 560
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.bind.Binder$Context.dataObjectBindings:Ljava/util/Deque;
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            pop
         3: .line 557
            aload 4
            areturn
         4: .line 559
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 560
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.bind.Binder$Context.dataObjectBindings:Ljava/util/Deque;
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            pop
         6: .line 561
            aload 3
            athrow
        end local 2 // java.util.function.Supplier supplier
        end local 1 // java.lang.Class type
        end local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/springframework/boot/context/properties/bind/Binder$Context;
            0    7     1      type  Ljava/lang/Class<*>;
            0    7     2  supplier  Ljava/util/function/Supplier<TT;>;
      Exception table:
        from    to  target  type
           1     2       4  any
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<*>;Ljava/util/function/Supplier<TT;>;)TT;
    MethodParameters:
          Name  Flags
      type      
      supplier  

  private boolean isBindingDataObject(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
        start local 1 // java.lang.Class type
         0: .line 565
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.bind.Binder$Context.dataObjectBindings:Ljava/util/Deque;
            aload 1 /* type */
            invokeinterface java.util.Deque.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Class type
        end local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/context/properties/bind/Binder$Context;
            0    1     1  type  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
      Name  Flags
      type  

  private <T> T withIncreasedDepth(java.util.function.Supplier<T>);
    descriptor: (Ljava/util/function/Supplier;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=4, args_size=2
        start local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
        start local 1 // java.util.function.Supplier supplier
         0: .line 569
            aload 0 /* this */
            invokevirtual org.springframework.boot.context.properties.bind.Binder$Context.increaseDepth:()V
         1: .line 571
            aload 1 /* supplier */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            astore 3
         2: .line 574
            aload 0 /* this */
            invokevirtual org.springframework.boot.context.properties.bind.Binder$Context.decreaseDepth:()V
         3: .line 571
            aload 3
            areturn
         4: .line 573
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
         5: .line 574
            aload 0 /* this */
            invokevirtual org.springframework.boot.context.properties.bind.Binder$Context.decreaseDepth:()V
         6: .line 575
            aload 2
            athrow
        end local 1 // java.util.function.Supplier supplier
        end local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/springframework/boot/context/properties/bind/Binder$Context;
            0    7     1  supplier  Ljava/util/function/Supplier<TT;>;
      Exception table:
        from    to  target  type
           1     2       4  any
    Signature: <T:Ljava/lang/Object;>(Ljava/util/function/Supplier<TT;>;)TT;
    MethodParameters:
          Name  Flags
      supplier  

  void setConfigurationProperty(org.springframework.boot.context.properties.source.ConfigurationProperty);
    descriptor: (Lorg/springframework/boot/context/properties/source/ConfigurationProperty;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
        start local 1 // org.springframework.boot.context.properties.source.ConfigurationProperty configurationProperty
         0: .line 579
            aload 0 /* this */
            aload 1 /* configurationProperty */
            putfield org.springframework.boot.context.properties.bind.Binder$Context.configurationProperty:Lorg/springframework/boot/context/properties/source/ConfigurationProperty;
         1: .line 580
            return
        end local 1 // org.springframework.boot.context.properties.source.ConfigurationProperty configurationProperty
        end local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0                   this  Lorg/springframework/boot/context/properties/bind/Binder$Context;
            0    2     1  configurationProperty  Lorg/springframework/boot/context/properties/source/ConfigurationProperty;
    MethodParameters:
                       Name  Flags
      configurationProperty  

  void clearConfigurationProperty();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
         0: .line 583
            aload 0 /* this */
            aconst_null
            putfield org.springframework.boot.context.properties.bind.Binder$Context.configurationProperty:Lorg/springframework/boot/context/properties/source/ConfigurationProperty;
         1: .line 584
            return
        end local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/boot/context/properties/bind/Binder$Context;

  void pushConstructorBoundTypes(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
        start local 1 // java.lang.Class value
         0: .line 587
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.bind.Binder$Context.constructorBindings:Ljava/util/Deque;
            aload 1 /* value */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
         1: .line 588
            return
        end local 1 // java.lang.Class value
        end local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/springframework/boot/context/properties/bind/Binder$Context;
            0    2     1  value  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
       Name  Flags
      value  

  boolean isNestedConstructorBinding();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
         0: .line 591
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.bind.Binder$Context.constructorBindings:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/boot/context/properties/bind/Binder$Context;

  void popConstructorBoundTypes();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
         0: .line 595
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.bind.Binder$Context.constructorBindings:Ljava/util/Deque;
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            pop
         1: .line 596
            return
        end local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/boot/context/properties/bind/Binder$Context;

  org.springframework.boot.context.properties.bind.PlaceholdersResolver getPlaceholdersResolver();
    descriptor: ()Lorg/springframework/boot/context/properties/bind/PlaceholdersResolver;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
         0: .line 599
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.bind.Binder$Context.this$0:Lorg/springframework/boot/context/properties/bind/Binder;
            getfield org.springframework.boot.context.properties.bind.Binder.placeholdersResolver:Lorg/springframework/boot/context/properties/bind/PlaceholdersResolver;
            areturn
        end local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/context/properties/bind/Binder$Context;

  org.springframework.boot.context.properties.bind.BindConverter getConverter();
    descriptor: ()Lorg/springframework/boot/context/properties/bind/BindConverter;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
         0: .line 603
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.bind.Binder$Context.converter:Lorg/springframework/boot/context/properties/bind/BindConverter;
            areturn
        end local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/context/properties/bind/Binder$Context;

  public org.springframework.boot.context.properties.bind.Binder getBinder();
    descriptor: ()Lorg/springframework/boot/context/properties/bind/Binder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
         0: .line 608
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.bind.Binder$Context.this$0:Lorg/springframework/boot/context/properties/bind/Binder;
            areturn
        end local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/context/properties/bind/Binder$Context;

  public int getDepth();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
         0: .line 613
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.bind.Binder$Context.depth:I
            ireturn
        end local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/context/properties/bind/Binder$Context;

  public java.lang.Iterable<org.springframework.boot.context.properties.source.ConfigurationPropertySource> getSources();
    descriptor: ()Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
         0: .line 618
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.bind.Binder$Context.sourcePushCount:I
            ifle 2
         1: .line 619
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.bind.Binder$Context.source:Ljava/util/List;
            areturn
         2: .line 621
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.bind.Binder$Context.this$0:Lorg/springframework/boot/context/properties/bind/Binder;
            getfield org.springframework.boot.context.properties.bind.Binder.sources:Ljava/lang/Iterable;
            areturn
        end local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/boot/context/properties/bind/Binder$Context;
    Signature: ()Ljava/lang/Iterable<Lorg/springframework/boot/context/properties/source/ConfigurationPropertySource;>;

  public org.springframework.boot.context.properties.source.ConfigurationProperty getConfigurationProperty();
    descriptor: ()Lorg/springframework/boot/context/properties/source/ConfigurationProperty;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
         0: .line 626
            aload 0 /* this */
            getfield org.springframework.boot.context.properties.bind.Binder$Context.configurationProperty:Lorg/springframework/boot/context/properties/source/ConfigurationProperty;
            areturn
        end local 0 // org.springframework.boot.context.properties.bind.Binder$Context this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/context/properties/bind/Binder$Context;
}
SourceFile: "Binder.java"
NestHost: org.springframework.boot.context.properties.bind.Binder
InnerClasses:
  final Context = org.springframework.boot.context.properties.bind.Binder$Context of org.springframework.boot.context.properties.bind.Binder