code: public static final Color fromNormalizedHSL(final double h, final double s, final double l)
      {
          // see http://www.w3.org/TR/css3-color/
          //
          // HOW TO RETURN hsl.to.rgb(h, s, l):
          // SELECT:
          // l<=0.5: PUT l*(s+1) IN m2
          // ELSE: PUT l+s-l*s IN m2
          // PUT l*2-m2 IN m1
          // PUT hue.to.rgb(m1, m2, h+1/3) IN r
          // PUT hue.to.rgb(m1, m2, h ) IN g
          // PUT hue.to.rgb(m1, m2, h-1/3) IN b
          // RETURN (r, g, b)
  
          final double m2 = (l <= 0.5) ? (l * (s + 1)) : ((l + s) - (l * s));
  
          final double m1 = (l * 2) - m2;
  
          return new Color(fixRGB((int) Math.round(255 * hueToRGB(m1, m2, h + (1.0 / 3)))), fixRGB((int) Math.round(255 * hueToRGB(m1, m2, h))), fixRGB((int) Math.round(255 * hueToRGB(m1, m2, h - (1.0 / 3)))));
      }
docs: Converts HSL (hue, saturation, lightness) to RGB.
  HSL values should already be normalized to [0,1]
  
  @param h in [0,1]
  @param s in [0,1]
  @param l in [0,1]
  
  @return Color with RGB values