docs: @Override
  	public String toUriString() {
  		StringBuilder uriBuilder = new StringBuilder();
  		if (getScheme() != null) {
  			uriBuilder.append(getScheme());
  			uriBuilder.append(':');
  		}
  		if (this.userInfo != null || this.host != null) {
  			uriBuilder.append("//");
  			if (this.userInfo != null) {
  				uriBuilder.append(this.userInfo);
  				uriBuilder.append('@');
  			}
  			if (this.host != null) {
  				uriBuilder.append(host);
  			}
  			if (getPort() != -1) {
  				uriBuilder.append(':');
  				uriBuilder.append(port);
  			}
  		}
  		String path = getPath();
  		if (StringUtils.hasLength(path)) {
  			if (uriBuilder.length() != 0 && path.charAt(0) != PATH_DELIMITER) {
  				uriBuilder.append(PATH_DELIMITER);
  			}
  			uriBuilder.append(path);
  		}
  		String query = getQuery();
  		if (query != null) {
  			uriBuilder.append('?');
  			uriBuilder.append(query);
  		}
  		if (getFragment() != null) {
  			uriBuilder.append('#');
  			uriBuilder.append(getFragment());
  		}
  		return uriBuilder.toString();
  	}