Color (final @NotNull Color c1, final @NotNull Color c2, double balance) { if (balance <= 0) return c1; if (balance >= 1) return c2; Supplier<Color> func = new MixedColorProducer(c1, c2, balance); return c1 instanceof JBColor || c2 instanceof JBColor ? JBColor.lazy(func) : func.get(); }