Package org.apache.sis.feature.builder

## Enum AttributeRole

- Object
- - Enum<AttributeRole>
  - - AttributeRole

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

      public enum AttributeRole
      extends Enum<AttributeRole>

  Roles that can be associated to some attributes for instructing `FeatureTypeBuilder` how to generate pre-defined operations. Those pre-defined operations are:
  - A compound operation for generating a unique identifier from an arbitrary amount of attribute values.
  - A link operation for referencing a geometry to be used as the default geometry.
  - An operation for computing the bounding box of all geometries found in the feature. This operation is automatically added if the feature contains a default geometry.
  This enumeration allows user code to specify which feature attribute to use for creating those operations.
  Since:
    0.8
  See Also:
    `AttributeTypeBuilder​.addRole(AttributeRole)`

  Defined in the `sis-feature` module

- - ### Enum Constant Summary

    Enum Constants
    Enum Constant | Description
    --- | ---
    `DEFAULT_GEOMETRY` | Attribute value will be flagged as the default geometry.
    `IDENTIFIER_COMPONENT` | Attribute value will be part of a unique identifier for the feature instance.

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static AttributeRole` | `valueOf​(String name)` | Returns the enum constant of this type with the specified name.
    `static AttributeRole[]` | `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

    - #### IDENTIFIER_COMPONENT

          public static final AttributeRole IDENTIFIER_COMPONENT

      Attribute value will be part of a unique identifier for the feature instance. An arbitrary amount of attributes can be flagged as identifier components:
      - If no attribute has this role, then no attribute is marked as feature identifier.
      - If exactly one attribute has this role, then a synthetic attribute named `"sis:identifier"` will be created as a link to the flagged attribute.
      - If more than one attribute have this role, then a synthetic attribute named `"sis:identifier"` will be created as a compound key made of all flagged attributes. The separator character can be modified by a call to `FeatureTypeBuilder​.setIdentifierDelimiters(String, String, String)`
      See Also:
        `FeatureTypeBuilder​.setIdentifierDelimiters(String, String, String)`

    - #### DEFAULT_GEOMETRY

          public static final AttributeRole DEFAULT_GEOMETRY

      Attribute value will be flagged as the default geometry. Feature can have an arbitrary amount of geometry attributes, but only one can be flagged as the default geometry.

  - ### Method Detail

    - #### values

          public static AttributeRole[] 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 (AttributeRole c : AttributeRole.values())
              System.out.println(c);

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

    - #### valueOf

          public static AttributeRole 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