class EnumColors {

  @NotNull
  public Color getColor(@NotNull E type) {
    List<Color> colorList = myColors.get(type);
    if (colorList == null) {
      throw new IllegalStateException("No colors for value " + type);
    }
    return colorList.get(myColorIndex % colorList.size());
  }

  public  EnumColors(@NotNull Map<E, Color> colors);
  private  EnumColors(@NotNull Builder<E> builder);

}