code: public static Color valueOf(String color) {
  
      Objects.requireNonNull(color, "color");
      Throwable cause = null;
      try {
        Color hexColor = parseHexString(color);
        if (hexColor != null) {
          return hexColor;
        } else {
          String upperColor = BasicHelper.toUpperCase(color);
          Color namedColor = NAME_TO_COLOR_MAP.get(upperColor);
          if (namedColor != null) {
            return namedColor;
          } else if (upperColor.startsWith(ColorModel.RGB.toString())) {
            Color rgbColor = parseRgb(upperColor);
            if (rgbColor != null) {
              return rgbColor;
            }
          } else {
            return GenericColor.valueOf(color).toColor();
          }
        }
      } catch (NumberFormatException e) {
        cause = e;
      }
      throw new IllegalArgumentException(color, cause);
    }
docs: Parses the {@link Color} given as {@link String} representation.
  
  @param color is the {@link Color} given as {@link String} representation.
  @return the parsed {@link Color}.