code: public static GenericColor valueOf(Hue hue, Saturation saturation, Brightness brightness, Alpha alpha) {
  
      Objects.requireNonNull(hue, "hue");
      Objects.requireNonNull(saturation, "saturation");
      Objects.requireNonNull(brightness, "brightness");
      Objects.requireNonNull(alpha, "alpha");
      GenericColor genericColor = new GenericColor();
      genericColor.hue = hue;
      genericColor.saturationHsb = saturation;
      genericColor.brightness = brightness;
      genericColor.alpha = alpha;
      double b = brightness.getValueAsFactor();
      double chroma = b * saturation.getValueAsFactor();
      genericColor.chroma = new Chroma(chroma);
      double min = b - chroma;
      double lightness = (min + b) / 2;
      genericColor.lightness = new Lightness(lightness);
      double saturationHsl = calculateSaturationHsl(chroma, lightness);
      genericColor.saturationHsl = new Saturation(saturationHsl);
      calculateRgb(genericColor, hue, min, chroma);
      return genericColor;
    }
docs: Creates a {@link GenericColor} from the given {@link Segment}s of {@link ColorModel#HSB}.
  
  @param hue is the {@link Hue} part.
  @param saturation is the {@link Saturation} part.
  @param brightness is the {@link Brightness} part.
  @param alpha is the {@link Alpha} value.
  @return the {@link GenericColor}.