code: public static Scheme parse(String scheme) {
          final Scheme res = SCHEMES.get(Ascii.toLowerCase(requireNonNull(scheme, "scheme")));
          if (res == null) {
              throw new IllegalArgumentException("scheme: " + scheme);
          }
  
          return res;
      }
docs: Parses the specified {@link String} into a {@link Scheme}. This method will return the same
  {@link Scheme} instance for equal values of {@code scheme}.
  
  @throws IllegalArgumentException if the specified {@link String} could not be parsed or
  there is no such {@link Scheme} available