@Override
  public void setColor(ColorKey key, Color color) {
    if (color == NULL_COLOR_MARKER ||
        color == INHERITED_COLOR_MARKER) {
      colorMap.put(key, color);
      return;
    }
    Color directlyDefinedColor = getDirectlyDefinedColor(key);
    if (directlyDefinedColor == NULL_COLOR_MARKER ||
        directlyDefinedColor == INHERITED_COLOR_MARKER ||
        !colorsEqual(color, directlyDefinedColor)) {
      colorMap.put(key, ObjectUtils.notNull(color, NULL_COLOR_MARKER));
    }
  }
@Override
  public void setColor(ColorKey key, Color color)