# Class AttributeNames.Responsible

Object
Responsible

All Implemented Interfaces:
  `Serializable`

Enclosing class:
  `AttributeNames`

public static class AttributeNames.Responsible extends Object implements Serializable
Holds the attribute names describing a responsible party. In the following table, the header lists the constants defined in the `AttributeNames` class and the other cells give the values assigned in this class fields for those constants.

Names of netCDF attributes describing a responsible party
Field in this class | `CREATOR` | `CONTRIBUTOR` | `PUBLISHER`
--- | --- | --- | ---
`NAME` | `"creator_name"` | `"contributor_name"` | `"publisher_name"`
`TYPE` | `"creator_type"` |  | `"publisher_type"`
`INSTITUTION` | `"creator_institution"` |  | `"publisher_institution"`
`URL` | `"creator_url"` | `"contributor_url"` | `"publisher_url"`
`EMAIL` | `"creator_email"` | `"contributor_email"` | `"publisher_email"`
`ROLE` |  | `"contributor_role"` |
`DEFAULT_ROLE` | `Role.ORIGINATOR` |  | `Role​.PUBLISHER`

## Departure from conventions

The member names in this class are upper-cases because they should be considered as constants. For example, `AttributeNames​.CREATOR​.EMAIL` maps exactly to the `"creator_email"` string and nothing else. A lower-case `email` member name could be misleading since it would suggest that the field contains the actual name value rather than the key by which the value is identified in a netCDF file.

Since:
  0.3
See Also:
  - `AttributeNames​.Dimension`
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `final Role`
  `DEFAULT_ROLE`
  The role to use as a fallback if no attribute value is associated to the `ROLE` key.
  `final String`
  `EMAIL`
  The attribute name for the responsible's email address.
  `final String`
  `INSTITUTION`
  The attribute name for the responsible's institution, or `null` if none.
  `final String`
  `NAME`
  The attribute name for the responsible's name.
  `final String`
  `ROLE`
  The attribute name for the responsible's role, or `null` if none.
  `final String`
  `TYPE`
  The attribute name for the responsible's type.
  `final String`
  `URL`
  The attribute name for the responsible's URL.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Responsible(String name, String type, String institution, String url, String email, String role, Role defaultRole)`
  Creates a new set of attribute names.

- ## Method Summary

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### NAME

    public final String NAME
    The attribute name for the responsible's name. Possible values for this field are `"creator_name"`, `"contributor_name"` or `"publisher_name"`.

    Path in ISO 19115:

    - `ResponsibleParty` / `individualName`

  - ### TYPE

    public final String TYPE
    The attribute name for the responsible's type. Possible values for this field are `"creator_type"` or `"publisher_type"`. Possible values in a netCDF file are `"person"`, `"group"`, `"institution"` or `"position"`.

  - ### INSTITUTION

    public final String INSTITUTION
    The attribute name for the responsible's institution, or `null` if none. Possible value is `"institution"`.

    Path in ISO 19115:

    - `ResponsibleParty` / `organisationName`

  - ### URL

    public final String URL
    The attribute name for the responsible's URL. Possible values are `"creator_url"`, `"contributor_url"` or `"publisher_url"`.

    Path in ISO 19115:

    - `ResponsibleParty` / `contactInfo` / `onlineResource` / `linkage`

  - ### EMAIL

    public final String EMAIL
    The attribute name for the responsible's email address. Possible values are `"creator_email"`, `"contributor_email"` or `"publisher_email"`.

    Path in ISO 19115:

    - `ResponsibleParty` / `contactInfo` / `address` / `electronicMailAddress`

  - ### ROLE

    public final String ROLE
    The attribute name for the responsible's role, or `null` if none. Possible value is `"contributor_role"`.

    Path in ISO 19115:

    - `ResponsibleParty` / `ResponsibleParty​.getRole()`
    See Also:
      - `Role`

  - ### DEFAULT_ROLE

    public final Role DEFAULT_ROLE
    The role to use as a fallback if no attribute value is associated to the `ROLE` key.

- ## Constructor Details

  - ### Responsible

    public Responsible(String name, String type, String institution, String url, String email, String role, Role defaultRole)
    Creates a new set of attribute names. Any argument can be `null` if not applicable.
    Parameters:
      `name` - the attribute name for the responsible's name.
      `type` - the attribute name for the responsible party type.
      `institution` - the attribute name for the responsible's institution.
      `url` - the attribute name for the responsible's URL.
      `email` - the attribute name for the responsible's email address.
      `role` - the attribute name for the responsible party role.
      `defaultRole` - the role to use as a fallback if no attribute value is associated to the `role` key.
    Since:
      0.8