class org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder implements java.util.function.BiFunction<java.lang.String, org.springframework.web.util.HierarchicalUriComponents$Type, java.lang.String>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder
  super_class: java.lang.Object
{
  private final java.nio.charset.Charset charset;
    descriptor: Ljava/nio/charset/Charset;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.StringBuilder currentLiteral;
    descriptor: Ljava/lang/StringBuilder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.StringBuilder currentVariable;
    descriptor: Ljava/lang/StringBuilder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.StringBuilder output;
    descriptor: Ljava/lang/StringBuilder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(java.nio.charset.Charset);
    descriptor: (Ljava/nio/charset/Charset;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder this
        start local 1 // java.nio.charset.Charset charset
         0: .line 771
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 764
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            putfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.currentLiteral:Ljava/lang/StringBuilder;
         2: .line 766
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            putfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.currentVariable:Ljava/lang/StringBuilder;
         3: .line 768
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            putfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.output:Ljava/lang/StringBuilder;
         4: .line 772
            aload 0 /* this */
            aload 1 /* charset */
            putfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.charset:Ljava/nio/charset/Charset;
         5: .line 773
            return
        end local 1 // java.nio.charset.Charset charset
        end local 0 // org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/springframework/web/util/HierarchicalUriComponents$UriTemplateEncoder;
            0    6     1  charset  Ljava/nio/charset/Charset;
    MethodParameters:
         Name  Flags
      charset  

  public java.lang.String apply(java.lang.String, org.springframework.web.util.HierarchicalUriComponents$Type);
    descriptor: (Ljava/lang/String;Lorg/springframework/web/util/HierarchicalUriComponents$Type;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder this
        start local 1 // java.lang.String source
        start local 2 // org.springframework.web.util.HierarchicalUriComponents$Type type
         0: .line 780
            aload 1 /* source */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmple 2
            aload 1 /* source */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 123
            if_icmpne 2
            aload 1 /* source */
            aload 1 /* source */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 125
            if_icmpne 2
         1: .line 781
            aload 1 /* source */
            areturn
         2: .line 785
      StackMap locals:
      StackMap stack:
            aload 1 /* source */
            bipush 123
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpne 4
         3: .line 786
            aload 1 /* source */
            aload 0 /* this */
            getfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.charset:Ljava/nio/charset/Charset;
            aload 2 /* type */
            invokestatic org.springframework.web.util.HierarchicalUriComponents.encodeUriComponent:(Ljava/lang/String;Ljava/nio/charset/Charset;Lorg/springframework/web/util/HierarchicalUriComponents$Type;)Ljava/lang/String;
            areturn
         4: .line 790
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* level */
        start local 3 // int level
         5: .line 791
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.currentLiteral:Ljava/lang/StringBuilder;
            invokevirtual org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.clear:(Ljava/lang/StringBuilder;)V
         6: .line 792
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.currentVariable:Ljava/lang/StringBuilder;
            invokevirtual org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.clear:(Ljava/lang/StringBuilder;)V
         7: .line 793
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.output:Ljava/lang/StringBuilder;
            invokevirtual org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.clear:(Ljava/lang/StringBuilder;)V
         8: .line 794
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         9: goto 27
        10: .line 795
      StackMap locals: int int
      StackMap stack:
            aload 1 /* source */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c */
        start local 5 // char c
        11: .line 796
            iload 5 /* c */
            bipush 123
            if_icmpne 15
        12: .line 797
            iinc 3 /* level */ 1
        13: .line 798
            iload 3 /* level */
            iconst_1
            if_icmpne 15
        14: .line 799
            aload 0 /* this */
            aload 2 /* type */
            invokevirtual org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.encodeAndAppendCurrentLiteral:(Lorg/springframework/web/util/HierarchicalUriComponents$Type;)V
        15: .line 802
      StackMap locals: int
      StackMap stack:
            iload 5 /* c */
            bipush 125
            if_icmpne 22
            iload 3 /* level */
            ifle 22
        16: .line 803
            iinc 3 /* level */ -1
        17: .line 804
            aload 0 /* this */
            getfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.currentVariable:Ljava/lang/StringBuilder;
            bipush 125
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        18: .line 805
            iload 3 /* level */
            ifne 26
        19: .line 806
            aload 0 /* this */
            getfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.output:Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.currentVariable:Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            pop
        20: .line 807
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.currentVariable:Ljava/lang/StringBuilder;
            invokevirtual org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.clear:(Ljava/lang/StringBuilder;)V
        21: .line 809
            goto 26
        22: .line 810
      StackMap locals:
      StackMap stack:
            iload 3 /* level */
            ifle 25
        23: .line 811
            aload 0 /* this */
            getfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.currentVariable:Ljava/lang/StringBuilder;
            iload 5 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        24: .line 812
            goto 26
        25: .line 814
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.currentLiteral:Ljava/lang/StringBuilder;
            iload 5 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 5 // char c
        26: .line 794
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 4 /* i */
            aload 1 /* source */
            invokevirtual java.lang.String.length:()I
            if_icmplt 10
        end local 4 // int i
        28: .line 817
            iload 3 /* level */
            ifle 30
        29: .line 818
            aload 0 /* this */
            getfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.currentLiteral:Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.currentVariable:Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            pop
        30: .line 820
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* type */
            invokevirtual org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.encodeAndAppendCurrentLiteral:(Lorg/springframework/web/util/HierarchicalUriComponents$Type;)V
        31: .line 821
            aload 0 /* this */
            getfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.output:Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // int level
        end local 2 // org.springframework.web.util.HierarchicalUriComponents$Type type
        end local 1 // java.lang.String source
        end local 0 // org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   32     0    this  Lorg/springframework/web/util/HierarchicalUriComponents$UriTemplateEncoder;
            0   32     1  source  Ljava/lang/String;
            0   32     2    type  Lorg/springframework/web/util/HierarchicalUriComponents$Type;
            5   32     3   level  I
            9   28     4       i  I
           11   26     5       c  C
    MethodParameters:
        Name  Flags
      source  
      type    

  private void encodeAndAppendCurrentLiteral(org.springframework.web.util.HierarchicalUriComponents$Type);
    descriptor: (Lorg/springframework/web/util/HierarchicalUriComponents$Type;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder this
        start local 1 // org.springframework.web.util.HierarchicalUriComponents$Type type
         0: .line 825
            aload 0 /* this */
            getfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.output:Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.currentLiteral:Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.charset:Ljava/nio/charset/Charset;
            aload 1 /* type */
            invokestatic org.springframework.web.util.HierarchicalUriComponents.encodeUriComponent:(Ljava/lang/String;Ljava/nio/charset/Charset;Lorg/springframework/web/util/HierarchicalUriComponents$Type;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         1: .line 826
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.currentLiteral:Ljava/lang/StringBuilder;
            invokevirtual org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.clear:(Ljava/lang/StringBuilder;)V
         2: .line 827
            return
        end local 1 // org.springframework.web.util.HierarchicalUriComponents$Type type
        end local 0 // org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/web/util/HierarchicalUriComponents$UriTemplateEncoder;
            0    3     1  type  Lorg/springframework/web/util/HierarchicalUriComponents$Type;
    MethodParameters:
      Name  Flags
      type  

  private void clear(java.lang.StringBuilder);
    descriptor: (Ljava/lang/StringBuilder;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder this
        start local 1 // java.lang.StringBuilder sb
         0: .line 830
            aload 1 /* sb */
            iconst_0
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.length:()I
            invokevirtual java.lang.StringBuilder.delete:(II)Ljava/lang/StringBuilder;
            pop
         1: .line 831
            return
        end local 1 // java.lang.StringBuilder sb
        end local 0 // org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/web/util/HierarchicalUriComponents$UriTemplateEncoder;
            0    2     1    sb  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      sb    

  public java.lang.Object apply(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast java.lang.String
            aload 2
            checkcast org.springframework.web.util.HierarchicalUriComponents$Type
            invokevirtual org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder.apply:(Ljava/lang/String;Lorg/springframework/web/util/HierarchicalUriComponents$Type;)Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Ljava/util/function/BiFunction<Ljava/lang/String;Lorg/springframework/web/util/HierarchicalUriComponents$Type;Ljava/lang/String;>;
SourceFile: "HierarchicalUriComponents.java"
NestHost: org.springframework.web.util.HierarchicalUriComponents
InnerClasses:
  abstract Type = org.springframework.web.util.HierarchicalUriComponents$Type of org.springframework.web.util.HierarchicalUriComponents
  private UriTemplateEncoder = org.springframework.web.util.HierarchicalUriComponents$UriTemplateEncoder of org.springframework.web.util.HierarchicalUriComponents