# Class Role

Object
CodeList<Role>
Role

All Implemented Interfaces:
  `Serializable, Comparable<Role>`

@UML(identifier="CI_RoleCode", specification=ISO_19115) public final class Role extends CodeList<Role>
Function performed by the responsible party.

Since:
  2.0
See Also:
  - Serialized Form

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from class CodeList

  `CodeList​.Filter`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final Role`
  `AUTHOR`
  Party who authored the resource.
  `static final Role`
  `CUSTODIAN`
  Party that accepts accountability and responsibility for the data and ensures appropriate care and maintenance of the resource.
  `static final Role`
  `DISTRIBUTOR`
  Party who distributes the resource.
  `static final Role`
  `ORIGINATOR`
  Party who created the resource.
  `static final Role`
  `OWNER`
  Party that owns the resource.
  `static final Role`
  `POINT_OF_CONTACT`
  Party who can be contacted for acquiring knowledge about or acquisition of the resource.
  `static final Role`
  `PRINCIPAL_INVESTIGATOR`
  Key party responsible for gathering information and conducting research.
  `static final Role`
  `PROCESSOR`
  Party who has processed the data in a manner such that the resource has been modified.
  `static final Role`
  `PUBLISHER`
  Party who published the resource.
  `static final Role`
  `RESOURCE_PROVIDER`
  Party that supplies the resource.
  `static final Role`
  `USER`
  Party who uses the resource.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Role[]`
  `family()`
  Returns the list of enumerations of the same kind as this enum.
  `static Role`
  `valueOf(String code)`
  Returns the role that matches the given string, or returns a new one if none match it.
  `static Role[]`
  `values()`
  Returns the list of `Role`s.

  ### Methods inherited from class CodeList

  `compareTo, identifier, name, names, ordinal, readResolve, toString, valueOf, valueOf`

  ### Methods inherited from class Object

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

- ## Field Details

  - ### RESOURCE_PROVIDER

    @UML(identifier="resourceProvider", obligation=CONDITIONAL, specification=ISO_19115) public static final Role RESOURCE_PROVIDER
    Party that supplies the resource.

  - ### CUSTODIAN

    @UML(identifier="custodian", obligation=CONDITIONAL, specification=ISO_19115) public static final Role CUSTODIAN
    Party that accepts accountability and responsibility for the data and ensures appropriate care and maintenance of the resource.

  - ### OWNER

    @UML(identifier="owner", obligation=CONDITIONAL, specification=ISO_19115) public static final Role OWNER
    Party that owns the resource.

  - ### USER

    @UML(identifier="user", obligation=CONDITIONAL, specification=ISO_19115) public static final Role USER
    Party who uses the resource.

  - ### DISTRIBUTOR

    @UML(identifier="distributor", obligation=CONDITIONAL, specification=ISO_19115) public static final Role DISTRIBUTOR
    Party who distributes the resource.

  - ### ORIGINATOR

    @UML(identifier="originator", obligation=CONDITIONAL, specification=ISO_19115) public static final Role ORIGINATOR
    Party who created the resource.

  - ### POINT_OF_CONTACT

    @UML(identifier="pointOfContact", obligation=CONDITIONAL, specification=ISO_19115) public static final Role POINT_OF_CONTACT
    Party who can be contacted for acquiring knowledge about or acquisition of the resource.

  - ### PRINCIPAL_INVESTIGATOR

    @UML(identifier="principalInvestigator", obligation=CONDITIONAL, specification=ISO_19115) public static final Role PRINCIPAL_INVESTIGATOR
    Key party responsible for gathering information and conducting research.

  - ### PROCESSOR

    @UML(identifier="processor", obligation=CONDITIONAL, specification=ISO_19115) public static final Role PROCESSOR
    Party who has processed the data in a manner such that the resource has been modified.

  - ### PUBLISHER

    @UML(identifier="publisher", obligation=CONDITIONAL, specification=ISO_19115) public static final Role PUBLISHER
    Party who published the resource.

  - ### AUTHOR

    @UML(identifier="author", obligation=CONDITIONAL, specification=ISO_19115) public static final Role AUTHOR
    Party who authored the resource.
    Since:
      2.1

- ## Method Details

  - ### values

    public static Role[] values()
    Returns the list of `Role`s.
    Returns:
      The list of codes declared in the current JVM.

  - ### family

    public Role[] family()
    Returns the list of enumerations of the same kind as this enum.
    Specified by:
      `family` in class `CodeList<Role>`
    Returns:
      The codes of the same kind as this code.

  - ### valueOf

    public static Role valueOf(String code)
    Returns the role that matches the given string, or returns a new one if none match it.
    Parameters:
      `code` - The name of the code to fetch or to create.
    Returns:
      A code matching the given name.