class org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder implements org.springframework.web.util.UriComponentsBuilder$PathComponentBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder
  super_class: java.lang.Object
{
  private final java.util.LinkedList<org.springframework.web.util.UriComponentsBuilder$PathComponentBuilder> builders;
    descriptor: Ljava/util/LinkedList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/LinkedList<Lorg/springframework/web/util/UriComponentsBuilder$PathComponentBuilder;>;

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder this
         0: .line 927
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 929
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder.builders:Ljava/util/LinkedList;
         2: .line 927
            return
        end local 0 // org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/web/util/UriComponentsBuilder$CompositePathComponentBuilder;

  public void addPathSegments(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder this
        start local 1 // java.lang.String[] pathSegments
         0: .line 932
            aload 1 /* pathSegments */
            invokestatic org.springframework.util.ObjectUtils.isEmpty:([Ljava/lang/Object;)Z
            ifne 9
         1: .line 933
            aload 0 /* this */
            ldc Lorg/springframework/web/util/UriComponentsBuilder$PathSegmentComponentBuilder;
            invokevirtual org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder.getLastBuilder:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.springframework.web.util.UriComponentsBuilder$PathSegmentComponentBuilder
            astore 2 /* psBuilder */
        start local 2 // org.springframework.web.util.UriComponentsBuilder$PathSegmentComponentBuilder psBuilder
         2: .line 934
            aload 0 /* this */
            ldc Lorg/springframework/web/util/UriComponentsBuilder$FullPathComponentBuilder;
            invokevirtual org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder.getLastBuilder:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.springframework.web.util.UriComponentsBuilder$FullPathComponentBuilder
            astore 3 /* fpBuilder */
        start local 3 // org.springframework.web.util.UriComponentsBuilder$FullPathComponentBuilder fpBuilder
         3: .line 935
            aload 2 /* psBuilder */
            ifnonnull 8
         4: .line 936
            new org.springframework.web.util.UriComponentsBuilder$PathSegmentComponentBuilder
            dup
            invokespecial org.springframework.web.util.UriComponentsBuilder$PathSegmentComponentBuilder.<init>:()V
            astore 2 /* psBuilder */
         5: .line 937
            aload 0 /* this */
            getfield org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder.builders:Ljava/util/LinkedList;
            aload 2 /* psBuilder */
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
         6: .line 938
            aload 3 /* fpBuilder */
            ifnull 8
         7: .line 939
            aload 3 /* fpBuilder */
            invokevirtual org.springframework.web.util.UriComponentsBuilder$FullPathComponentBuilder.removeTrailingSlash:()V
         8: .line 942
      StackMap locals: org.springframework.web.util.UriComponentsBuilder$PathSegmentComponentBuilder org.springframework.web.util.UriComponentsBuilder$FullPathComponentBuilder
      StackMap stack:
            aload 2 /* psBuilder */
            aload 1 /* pathSegments */
            invokevirtual org.springframework.web.util.UriComponentsBuilder$PathSegmentComponentBuilder.append:([Ljava/lang/String;)V
        end local 3 // org.springframework.web.util.UriComponentsBuilder$FullPathComponentBuilder fpBuilder
        end local 2 // org.springframework.web.util.UriComponentsBuilder$PathSegmentComponentBuilder psBuilder
         9: .line 944
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String[] pathSegments
        end local 0 // org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lorg/springframework/web/util/UriComponentsBuilder$CompositePathComponentBuilder;
            0   10     1  pathSegments  [Ljava/lang/String;
            2    9     2     psBuilder  Lorg/springframework/web/util/UriComponentsBuilder$PathSegmentComponentBuilder;
            3    9     3     fpBuilder  Lorg/springframework/web/util/UriComponentsBuilder$FullPathComponentBuilder;
    MethodParameters:
              Name  Flags
      pathSegments  

  public void addPath(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder this
        start local 1 // java.lang.String path
         0: .line 947
            aload 1 /* path */
            invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
            ifeq 11
         1: .line 948
            aload 0 /* this */
            ldc Lorg/springframework/web/util/UriComponentsBuilder$PathSegmentComponentBuilder;
            invokevirtual org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder.getLastBuilder:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.springframework.web.util.UriComponentsBuilder$PathSegmentComponentBuilder
            astore 2 /* psBuilder */
        start local 2 // org.springframework.web.util.UriComponentsBuilder$PathSegmentComponentBuilder psBuilder
         2: .line 949
            aload 0 /* this */
            ldc Lorg/springframework/web/util/UriComponentsBuilder$FullPathComponentBuilder;
            invokevirtual org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder.getLastBuilder:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.springframework.web.util.UriComponentsBuilder$FullPathComponentBuilder
            astore 3 /* fpBuilder */
        start local 3 // org.springframework.web.util.UriComponentsBuilder$FullPathComponentBuilder fpBuilder
         3: .line 950
            aload 2 /* psBuilder */
            ifnull 7
         4: .line 951
            aload 1 /* path */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
            aload 1 /* path */
            goto 6
      StackMap locals: org.springframework.web.util.UriComponentsBuilder$PathSegmentComponentBuilder org.springframework.web.util.UriComponentsBuilder$FullPathComponentBuilder
      StackMap stack:
         5: new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         6: astore 1 /* path */
         7: .line 953
      StackMap locals:
      StackMap stack:
            aload 3 /* fpBuilder */
            ifnonnull 10
         8: .line 954
            new org.springframework.web.util.UriComponentsBuilder$FullPathComponentBuilder
            dup
            invokespecial org.springframework.web.util.UriComponentsBuilder$FullPathComponentBuilder.<init>:()V
            astore 3 /* fpBuilder */
         9: .line 955
            aload 0 /* this */
            getfield org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder.builders:Ljava/util/LinkedList;
            aload 3 /* fpBuilder */
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
        10: .line 957
      StackMap locals:
      StackMap stack:
            aload 3 /* fpBuilder */
            aload 1 /* path */
            invokevirtual org.springframework.web.util.UriComponentsBuilder$FullPathComponentBuilder.append:(Ljava/lang/String;)V
        end local 3 // org.springframework.web.util.UriComponentsBuilder$FullPathComponentBuilder fpBuilder
        end local 2 // org.springframework.web.util.UriComponentsBuilder$PathSegmentComponentBuilder psBuilder
        11: .line 959
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String path
        end local 0 // org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lorg/springframework/web/util/UriComponentsBuilder$CompositePathComponentBuilder;
            0   12     1       path  Ljava/lang/String;
            2   11     2  psBuilder  Lorg/springframework/web/util/UriComponentsBuilder$PathSegmentComponentBuilder;
            3   11     3  fpBuilder  Lorg/springframework/web/util/UriComponentsBuilder$FullPathComponentBuilder;
    MethodParameters:
      Name  Flags
      path  

  private <T> T getLastBuilder(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder this
        start local 1 // java.lang.Class builderClass
         0: .line 964
            aload 0 /* this */
            getfield org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder.builders:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.isEmpty:()Z
            ifne 4
         1: .line 965
            aload 0 /* this */
            getfield org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder.builders:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
            checkcast org.springframework.web.util.UriComponentsBuilder$PathComponentBuilder
            astore 2 /* last */
        start local 2 // org.springframework.web.util.UriComponentsBuilder$PathComponentBuilder last
         2: .line 966
            aload 1 /* builderClass */
            aload 2 /* last */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 967
            aload 2 /* last */
            areturn
        end local 2 // org.springframework.web.util.UriComponentsBuilder$PathComponentBuilder last
         4: .line 970
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.Class builderClass
        end local 0 // org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lorg/springframework/web/util/UriComponentsBuilder$CompositePathComponentBuilder;
            0    5     1  builderClass  Ljava/lang/Class<TT;>;
            2    4     2          last  Lorg/springframework/web/util/UriComponentsBuilder$PathComponentBuilder;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
              Name  Flags
      builderClass  

  public org.springframework.web.util.HierarchicalUriComponents$PathComponent build();
    descriptor: ()Lorg/springframework/web/util/HierarchicalUriComponents$PathComponent;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder this
         0: .line 975
            aload 0 /* this */
            getfield org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder.builders:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.size:()I
            istore 1 /* size */
        start local 1 // int size
         1: .line 976
            new java.util.ArrayList
            dup
            iload 1 /* size */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* components */
        start local 2 // java.util.List components
         2: .line 977
            aload 0 /* this */
            getfield org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder.builders:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder int java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.web.util.UriComponentsBuilder$PathComponentBuilder
            astore 3 /* componentBuilder */
        start local 3 // org.springframework.web.util.UriComponentsBuilder$PathComponentBuilder componentBuilder
         4: .line 978
            aload 3 /* componentBuilder */
            invokeinterface org.springframework.web.util.UriComponentsBuilder$PathComponentBuilder.build:()Lorg/springframework/web/util/HierarchicalUriComponents$PathComponent;
            astore 5 /* pathComponent */
        start local 5 // org.springframework.web.util.HierarchicalUriComponents$PathComponent pathComponent
         5: .line 979
            aload 5 /* pathComponent */
            ifnull 7
         6: .line 980
            aload 2 /* components */
            aload 5 /* pathComponent */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // org.springframework.web.util.HierarchicalUriComponents$PathComponent pathComponent
        end local 3 // org.springframework.web.util.UriComponentsBuilder$PathComponentBuilder componentBuilder
         7: .line 977
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 983
            aload 2 /* components */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 10
         9: .line 984
            getstatic org.springframework.web.util.HierarchicalUriComponents.NULL_PATH_COMPONENT:Lorg/springframework/web/util/HierarchicalUriComponents$PathComponent;
            areturn
        10: .line 986
      StackMap locals: org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder int java.util.List
      StackMap stack:
            aload 2 /* components */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 12
        11: .line 987
            aload 2 /* components */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.springframework.web.util.HierarchicalUriComponents$PathComponent
            areturn
        12: .line 989
      StackMap locals:
      StackMap stack:
            new org.springframework.web.util.HierarchicalUriComponents$PathComponentComposite
            dup
            aload 2 /* components */
            invokespecial org.springframework.web.util.HierarchicalUriComponents$PathComponentComposite.<init>:(Ljava/util/List;)V
            areturn
        end local 2 // java.util.List components
        end local 1 // int size
        end local 0 // org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0              this  Lorg/springframework/web/util/UriComponentsBuilder$CompositePathComponentBuilder;
            1   13     1              size  I
            2   13     2        components  Ljava/util/List<Lorg/springframework/web/util/HierarchicalUriComponents$PathComponent;>;
            4    7     3  componentBuilder  Lorg/springframework/web/util/UriComponentsBuilder$PathComponentBuilder;
            5    7     5     pathComponent  Lorg/springframework/web/util/HierarchicalUriComponents$PathComponent;

  public org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder cloneBuilder();
    descriptor: ()Lorg/springframework/web/util/UriComponentsBuilder$CompositePathComponentBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder this
         0: .line 994
            new org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder
            dup
            invokespecial org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder.<init>:()V
            astore 1 /* compositeBuilder */
        start local 1 // org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder compositeBuilder
         1: .line 995
            aload 0 /* this */
            getfield org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder.builders:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.web.util.UriComponentsBuilder$PathComponentBuilder
            astore 2 /* builder */
        start local 2 // org.springframework.web.util.UriComponentsBuilder$PathComponentBuilder builder
         3: .line 996
            aload 1 /* compositeBuilder */
            getfield org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder.builders:Ljava/util/LinkedList;
            aload 2 /* builder */
            invokeinterface org.springframework.web.util.UriComponentsBuilder$PathComponentBuilder.cloneBuilder:()Lorg/springframework/web/util/UriComponentsBuilder$PathComponentBuilder;
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // org.springframework.web.util.UriComponentsBuilder$PathComponentBuilder builder
         4: .line 995
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 998
            aload 1 /* compositeBuilder */
            areturn
        end local 1 // org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder compositeBuilder
        end local 0 // org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lorg/springframework/web/util/UriComponentsBuilder$CompositePathComponentBuilder;
            1    6     1  compositeBuilder  Lorg/springframework/web/util/UriComponentsBuilder$CompositePathComponentBuilder;
            3    4     2           builder  Lorg/springframework/web/util/UriComponentsBuilder$PathComponentBuilder;

  public org.springframework.web.util.UriComponentsBuilder$PathComponentBuilder cloneBuilder();
    descriptor: ()Lorg/springframework/web/util/UriComponentsBuilder$PathComponentBuilder;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder.cloneBuilder:()Lorg/springframework/web/util/UriComponentsBuilder$CompositePathComponentBuilder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "UriComponentsBuilder.java"
NestHost: org.springframework.web.util.UriComponentsBuilder
InnerClasses:
  abstract PathComponent = org.springframework.web.util.HierarchicalUriComponents$PathComponent of org.springframework.web.util.HierarchicalUriComponents
  final PathComponentComposite = org.springframework.web.util.HierarchicalUriComponents$PathComponentComposite of org.springframework.web.util.HierarchicalUriComponents
  private CompositePathComponentBuilder = org.springframework.web.util.UriComponentsBuilder$CompositePathComponentBuilder of org.springframework.web.util.UriComponentsBuilder
  private FullPathComponentBuilder = org.springframework.web.util.UriComponentsBuilder$FullPathComponentBuilder of org.springframework.web.util.UriComponentsBuilder
  private abstract PathComponentBuilder = org.springframework.web.util.UriComponentsBuilder$PathComponentBuilder of org.springframework.web.util.UriComponentsBuilder
  private PathSegmentComponentBuilder = org.springframework.web.util.UriComponentsBuilder$PathSegmentComponentBuilder of org.springframework.web.util.UriComponentsBuilder