Package org.apache.sis.metadata.iso.citation

## Class DefaultResponsibility

- Object
- - AbstractMetadata
  - - ModifiableMetadata
    - - ISOMetadata
      - - DefaultResponsibility

- All Implemented Interfaces:
    `Serializable`, `Emptiable`, `LenientComparable`, `IdentifiedObject`
  Direct Known Subclasses:
    `DefaultResponsibleParty`

      @UML(identifier="CI_Responsibility",
           specification=ISO_19115)
      public class DefaultResponsibility
      extends ISOMetadata

  Information about the party and their role. The following properties are mandatory or conditional (i.e. mandatory under some circumstances) in a well-formed metadata according ISO 19115:
  `CI_Responsibility` `├─party……………………` Information about the parties. `│ └─name……………` Name of the party. `└─role………………………` Function performed by the responsible party.
  Note on International Standard versions
  This class is derived from a new type defined in the ISO 19115 international standard published in 2014, while GeoAPI 3.0 is based on the version published in 2003. Consequently this implementation class does not yet implement a GeoAPI interface, but is expected to do so after the next GeoAPI releases. When the interface will become available, all references to this implementation class in Apache SIS will be replaced be references to the `Responsibility` interface.

  Limitations:

  - Instances of this class are not synchronized for multi-threading. Synchronization, if needed, is caller's responsibility.
  - Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases. Serialization support is appropriate for short term storage or RMI between applications running the same version of Apache SIS. For long term storage, use `XML` instead.
  Since:
    0.5
  See Also:
    Serialized Form

  Defined in the `sis-metadata` module

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class ModifiableMetadata

      `ModifiableMetadata​.State`

  - ### Field Summary

    - ### Fields inherited from class ISOMetadata

      `identifiers`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DefaultResponsibility()` | Constructs an initially empty responsible party.
    `DefaultResponsibility​(DefaultResponsibility object)` | Constructs a new instance initialized with the values from the specified metadata object.
    `DefaultResponsibility​(Role role, Extent extent, AbstractParty party)` | Constructs a responsibility initialized to the specified values.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Collection<Extent>` | `getExtents()` | Returns the spatial or temporal extents of the role.
    `Collection<AbstractParty>` | `getParties()` | Returns information about the parties.
    `Role` | `getRole()` | Returns the function performed by the responsible party.
    `void` | `setExtents​(Collection<? extends Extent> newValues)` | Sets the spatial and temporal extents of the role.
    `void` | `setParties​(Collection<? extends AbstractParty> newValues)` | Sets information about the parties.
    `void` | `setRole​(Role newValue)` | Sets the function performed by the responsible party.

    - ### Methods inherited from class ISOMetadata

      `getIdentifier, getIdentifierMap, getIdentifiers, getStandard, setIdentifier, transitionTo`

    - ### Methods inherited from class ModifiableMetadata

      `checkWritePermission, checkWritePermission, collectionType, copyCollection, copyList, copyMap, copySet, freeze, isModifiable, nonNullCollection, nonNullList, nonNullMap, nonNullSet, singleton, state, unmodifiable, writeCollection, writeList, writeMap, writeSet`

    - ### Methods inherited from class AbstractMetadata

      `asMap, asTreeTable, equals, equals, getInterface, hashCode, isEmpty, prune, toString`

    - ### Methods inherited from class Object

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

- - ### Constructor Detail

    - #### DefaultResponsibility

          public DefaultResponsibility()

      Constructs an initially empty responsible party.

    - #### DefaultResponsibility

          public DefaultResponsibility​(Role role,
                                       Extent extent,
                                       AbstractParty party)

      Constructs a responsibility initialized to the specified values.
      Parameters:
        `role` - function performed by the responsible party, or `null`.
        `extent` - spatial or temporal extent of the role, or `null`.
        `party` - information about the party, or `null`.

    - #### DefaultResponsibility

          public DefaultResponsibility​(DefaultResponsibility object)

      Constructs a new instance initialized with the values from the specified metadata object. This is a shallow copy constructor, since the other metadata contained in the given object are not recursively copied.
      Parameters:
        `object` - the metadata to copy values from, or `null` if none.

  - ### Method Detail

    - #### getRole

          @UML(identifier="role",
               obligation=MANDATORY,
               specification=ISO_19115)
          public Role getRole()

      Returns the function performed by the responsible party.
      Returns:
        function performed by the responsible party.

    - #### setRole

          public void setRole​(Role newValue)

      Sets the function performed by the responsible party.
      Parameters:
        `newValue` - the new role, or `null` if none.

    - #### getExtents

          @UML(identifier="extent",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public Collection<Extent> getExtents()

      Returns the spatial or temporal extents of the role.
      Returns:
        the spatial or temporal extents of the role.

    - #### setExtents

          public void setExtents​(Collection<? extends Extent> newValues)

      Sets the spatial and temporal extents of the role.
      Parameters:
        `newValues` - the new spatial and temporal extents of the role.

    - #### getParties

          @UML(identifier="party",
               obligation=MANDATORY,
               specification=ISO_19115)
          public Collection<AbstractParty> getParties()

      Returns information about the parties.
      Upcoming API change — generalization
      The element type will be changed to the `Party` interface when GeoAPI will provide it (tentatively in GeoAPI 3.1).
      Returns:
        information about the parties.

    - #### setParties

          public void setParties​(Collection<? extends AbstractParty> newValues)

      Sets information about the parties.
      Upcoming API change — generalization
      The element type will be changed to the `Party` interface when GeoAPI will provide it (tentatively in GeoAPI 3.1).
      Parameters:
        `newValues` - new information about the parties.