# Class Colors

Object
Colors

All Implemented Interfaces:
  `Serializable, Cloneable`

public class Colors extends Object implements Cloneable, Serializable
The colors to use for formatting Well Known Text (WKT) objects. Colors are identified by their names and can be mapped to `ElementKind`. The currently supported color names are:

- `"red"`, `"green"`, `"yellow"`, `"blue"`, `"magenta"`, `"cyan"`, `"gray"`.

The above list may be expanded in any future SIS version.

Since:
  0.4
See Also:
  - `WKTFormat​.getColors()`
  - `WKTFormat​.setColors(Colors)`
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final Colors`
  `DEFAULT`
  The default colors used by `FormattableObject​.print()`.
  `static final Colors`
  `NAMING`
  Emphasis on identification information (name and identifiers) only.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Colors()`
  Creates a new, initially empty, set of colors.
  `Colors(Colors colors)`
  Creates a new set of colors initialized to a copy of the given one.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Colors`
  `clone()`
  Returns a clone of this `Colors`.
  `boolean`
  `equals(Object other)`
  Compares this `Colors` with the given object for equality.
  `final String`
  `getName(ElementKind key)`
  Returns the color for the given syntactic element.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `void`
  `setName(ElementKind key, String color)`
  Sets the color of the given syntactic element from a color name.

  ### Methods inherited from class Object

  `finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### DEFAULT

    public static final Colors DEFAULT
    The default colors used by `FormattableObject​.print()`. Those colors give better results on a `Console` with black background. This map is immutable.
    See Also:
      - `FormattableObject​.print()`

  - ### NAMING

    public static final Colors NAMING
    Emphasis on identification information (name and identifiers) only. This map is immutable.

- ## Constructor Details

  - ### Colors

    public Colors()
    Creates a new, initially empty, set of colors.

  - ### Colors

    public Colors(Colors colors)
    Creates a new set of colors initialized to a copy of the given one.
    Parameters:
      `colors` - the set of colors to copy.

- ## Method Details

  - ### setName

    public void setName(ElementKind key, String color) throws IllegalArgumentException
    Sets the color of the given syntactic element from a color name. The color names supported in the current implementation are `"red"`, `"green"`, `"yellow"`, `"blue"`, `"magenta"`, `"cyan"` and `"gray"`, case-insensitive.
    Parameters:
      `key` - the syntactic element for which to set the color.
      `color` - the color to give to the specified element, or `null` if none.
    Throws:
      `IllegalArgumentException` - if the given color name is not recognized.
      `UnsupportedOperationException` - if this `Colors` instance is immutable.

  - ### getName

    public final String getName(ElementKind key)
    Returns the color for the given syntactic element.
    Parameters:
      `key` - the syntactic element for which to get the color.
    Returns:
      the color of the specified element, or `null` if none.

  - ### clone

    public Colors clone()
    Returns a clone of this `Colors`.
    Overrides:
      `clone` in class `Object`
    Returns:
      a clone of this `Colors`.

  - ### equals

    public boolean equals(Object other)
    Compares this `Colors` with the given object for equality.
    Overrides:
      `equals` in class `Object`
    Parameters:
      `other` - the object to compare with this `Colors`.
    Returns:
      `true` if both objects are equal.

  - ### hashCode

    public int hashCode()
    Returns a hash code value for this object.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      a hash code value.