code: public URLBuilder appendPathSegments(final String segments)
     {
        if (segments != null)
        {
           String temp = segments.trim();
  
           // Only initialize the leading slash when adding the first path segments
           if (temp.startsWith("/") && this.segments.isEmpty())
           {
              metadata.setLeadingSlash(true);
           }
           if (temp.endsWith("/"))
           {
              metadata.setTrailingSlash(true);
           }
  
           String trimmedUrl = trimSurroundingSlashes(segments);
  
           // We reproduce this when building the URL by storing a single empty segment
           if (!trimmedUrl.isEmpty() || "//".equals(segments))
           {
              String[] newSegments = trimmedUrl.split("/", -1);
              this.segments.addAll(Arrays.asList(newSegments));
           }
        }
        else
        {
           throw new IllegalArgumentException("URL cannot be null.");
        }
        return this;
     }
docs: Append additional path segments to the end of this URL. When called the first time, this method will also
  initialize the {@link Metadata} for this {@link URLBuilder} based on the parsed segments given.