Package org.apache.sis.io.wkt

## Enum ElementKind

- Object
- - Enum<ElementKind>
  - - ElementKind

- All Implemented Interfaces:
    `Serializable`, `Comparable<ElementKind>`

      public enum ElementKind
      extends Enum<ElementKind>

  Kind of an element in a Well Known Text. Different kinds of elements can be associated to different colors.
  Since:
    0.4

  Defined in the `sis-referencing` module

- - ### Enum Constant Summary

    Enum Constants
    Enum Constant | Description
    --- | ---
    `AXIS` | Coordinate system axes, often represented by `AXIS[…]` elements.
    `CITATION` | Citation (typically for the authority), often represented by `CITATION[…]` elements.
    `CODE_LIST` | Code list values.
    `DATUM` | Datum, often represented by `DATUM[…]` elements.
    `ERROR` | Unformattable elements.
    `EXTENT` | CRS, datum or operation domain of validity, often represented by `AREA[…]` or `BBOX[…]` elements.
    `IDENTIFIER` | Object identifier, typically written almost last just before remarks.
    `INTEGER` | Integer numbers.
    `METHOD` | Operation methods, often represented by `PROJECTION[…]` elements.
    `NAME` | Object name, typically written immediately after the WKT keyword and its opening bracket.
    `NUMBER` | Floating point numbers (excluding integer types).
    `PARAMETER` | Name of parameters, often represented by `PARAMETER[…]` elements.
    `REMARKS` | Remarks, often represented by `REMARKS[…]` elements.
    `SCOPE` | CRS, datum or operation scope, often represented by `SCOPE[…]` elements.
    `UNIT` | Units of measurement, often represented by `UNIT[…]` elements.

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static ElementKind` | `forType​(Class<?> type)` | Returns the element kind for an object of the given type.
    `static ElementKind` | `valueOf​(String name)` | Returns the enum constant of this type with the specified name.
    `static ElementKind[]` | `values()` | Returns an array containing the constants of this enum type, in the order they are declared.

    - ### Methods inherited from class Enum

      `clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

    - ### Methods inherited from class Object

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Enum Constant Detail

    - #### NAME

          public static final ElementKind NAME

      Object name, typically written immediately after the WKT keyword and its opening bracket.

    - #### IDENTIFIER

          public static final ElementKind IDENTIFIER

      Object identifier, typically written almost last just before remarks.

    - #### NUMBER

          public static final ElementKind NUMBER

      Floating point numbers (excluding integer types).

    - #### INTEGER

          public static final ElementKind INTEGER

      Integer numbers.

    - #### UNIT

          public static final ElementKind UNIT

      Units of measurement, often represented by `UNIT[…]` elements.

    - #### AXIS

          public static final ElementKind AXIS

      Coordinate system axes, often represented by `AXIS[…]` elements.

    - #### CODE_LIST

          public static final ElementKind CODE_LIST

      Code list values.

    - #### PARAMETER

          public static final ElementKind PARAMETER

      Name of parameters, often represented by `PARAMETER[…]` elements.

    - #### METHOD

          public static final ElementKind METHOD

      Operation methods, often represented by `PROJECTION[…]` elements.

    - #### DATUM

          public static final ElementKind DATUM

      Datum, often represented by `DATUM[…]` elements.

    - #### SCOPE

          public static final ElementKind SCOPE

      CRS, datum or operation scope, often represented by `SCOPE[…]` elements.

    - #### EXTENT

          public static final ElementKind EXTENT

      CRS, datum or operation domain of validity, often represented by `AREA[…]` or `BBOX[…]` elements.

    - #### CITATION

          public static final ElementKind CITATION

      Citation (typically for the authority), often represented by `CITATION[…]` elements.

    - #### REMARKS

          public static final ElementKind REMARKS

      Remarks, often represented by `REMARKS[…]` elements.

      When formatting an ISO 19162 Well Known Text, texts quoted as remarks preserve non-ASCII characters. By contrast, quoted texts in any other `ElementKind` will have some non-ASCII characters replaced by ASCII ones (e.g. "é" → "e").

    - #### ERROR

          public static final ElementKind ERROR

      Unformattable elements.

  - ### Method Detail

    - #### values

          public static ElementKind[] values()

      Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

          for (ElementKind c : ElementKind.values())
              System.out.println(c);

      Returns:
        an array containing the constants of this enum type, in the order they are declared

    - #### valueOf

          public static ElementKind valueOf​(String name)

      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
        `name` - the name of the enum constant to be returned.
      Returns:
        the enum constant with the specified name
      Throws:
        `IllegalArgumentException` - if this enum type has no constant with the specified name
        `NullPointerException` - if the argument is null

    - #### forType

          public static ElementKind forType​(Class<?> type)

      Returns the element kind for an object of the given type. The current implementation defines the following associations:

      Mapping from Java type to WKT element
      Base type | Kind
      --- | ---
      `Datum` | `DATUM`
      `OperationMethod` | `METHOD`
      `GeneralParameterValue` | `PARAMETER`
      `CoordinateSystemAxis` | `AXIS`
      `Identifier` | `IDENTIFIER`
      `Citation` | `CITATION`
      `CodeList` | `CODE_LIST`
      `Extent` | `EXTENT`
      `Unit` | `UNIT`
      `Number` | `INTEGER` or `NUMBER`

      The given type can be any sub-type of the above types. If an object implements more than one of the above interfaces, then the selected `ElementKind` is arbitrary.
      Parameters:
        `type` - the object type, or `null`.
      Returns:
        the element kind of the given type, or `null` if none match.