# Class DefaultResponsibleParty

Object
AbstractMetadata
ModifiableMetadata
ISOMetadata
DefaultResponsibility
DefaultResponsibleParty

All Implemented Interfaces:
  `Serializable, Emptiable, LenientComparable, IdentifiedObject, ResponsibleParty`

public class DefaultResponsibleParty extends DefaultResponsibility implements ResponsibleParty
Identification of, and means of communication with, person(s) and organizations associated with the dataset. The following properties are mandatory or conditional (i.e. mandatory under some circumstances) in a well-formed metadata according ISO 19115:
`CI_ResponsibleParty` `├─role……………………………` Function performed by the responsible party. `└─party…………………………` Information about the parties. `└─name…………………` Name of the party.
Upcoming API change — deprecation
As of ISO 19115:2014, the `ResponsibleParty` type has been replaced by `Responsibility` to allow more flexible associations of individuals, organisations, and roles. This `ResponsibleParty` interface may be deprecated in GeoAPI 4.0.

Since:
  0.3
See Also:
  - Serialized Form

- ## 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
  `DefaultResponsibleParty()`
  Constructs an initially empty responsible party.
  `DefaultResponsibleParty(DefaultResponsibility object)`
  Constructs a new instance initialized with the values from the specified metadata object.
  `DefaultResponsibleParty(ResponsibleParty object)`
  Constructs a new instance initialized with the values from the specified metadata object.
  `DefaultResponsibleParty(Role role)`
  Constructs a responsibility party with the given role.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static DefaultResponsibleParty`
  `castOrCopy(ResponsibleParty object)`
  Returns a SIS metadata implementation with the values of the given arbitrary implementation.
  `Contact`
  `getContactInfo()`
  Deprecated.
  As of ISO 19115:2014, replaced by `AbstractParty​.getContactInfo()`.
  `String`
  `getIndividualName()`
  Deprecated.
  As of ISO 19115:2014, replaced by `getName()` in `DefaultIndividual`.
  `InternationalString`
  `getOrganisationName()`
  Deprecated.
  As of ISO 19115:2014, replaced by `getName()` in `DefaultOrganisation`.
  `InternationalString`
  `getPositionName()`
  Deprecated.
  As of ISO 19115:2014, replaced by `DefaultIndividual​.getPositionName()`.
  `Role`
  `getRole()`
  Returns the function performed by the responsible party.
  `void`
  `setContactInfo(Contact newValue)`
  Deprecated.
  As of ISO 19115:2014, replaced by `AbstractParty​.setContactInfo(Collection)`.
  `void`
  `setIndividualName(String newValue)`
  Deprecated.
  As of ISO 19115:2014, replaced by `setName(InternationalString)` in `DefaultIndividual`.
  `void`
  `setOrganisationName(InternationalString newValue)`
  Deprecated.
  As of ISO 19115:2014, replaced by `setName(InternationalString)` in `DefaultOrganisation`.
  `void`
  `setPositionName(InternationalString newValue)`
  Deprecated.
  As of ISO 19115:2014, replaced by `DefaultIndividual​.setPositionName(InternationalString)`.
  `void`
  `setRole(Role newValue)`
  Sets the function performed by the responsible party.

  ### Methods inherited from class DefaultResponsibility

  `getExtents, getParties, setExtents, setParties`

  ### Methods inherited from class ISOMetadata

  `getIdentifier, getIdentifierMap, getIdentifiers, getStandard, setIdentifier`

  ### Methods inherited from class ModifiableMetadata

  `checkWritePermission, copyCollection, copyList, copyMap, copySet, deepCopy, nonNullCollection, nonNullList, nonNullMap, nonNullSet, singleton, state, writeCollection, writeList, writeMap, writeSet`

  ### Methods inherited from class AbstractMetadata

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

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### DefaultResponsibleParty

    public DefaultResponsibleParty()
    Constructs an initially empty responsible party.

  - ### DefaultResponsibleParty

    public DefaultResponsibleParty(Role role)
    Constructs a responsibility party with the given role.
    Parameters:
      `role` - the function performed by the responsible party, or `null`.

  - ### DefaultResponsibleParty

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

  - ### DefaultResponsibleParty

    public DefaultResponsibleParty(ResponsibleParty 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.
    See Also:
      - `castOrCopy(ResponsibleParty)`

- ## Method Details

  - ### castOrCopy

    public static DefaultResponsibleParty castOrCopy(ResponsibleParty object)
    Returns a SIS metadata implementation with the values of the given arbitrary implementation. This method performs the first applicable action in the following choices:
    - If the given object is `null`, then this method returns `null`.
    - Otherwise if the given object is already an instance of `DefaultResponsibleParty`, then it is returned unchanged.
    - Otherwise a new `DefaultResponsibleParty` instance is created using the copy constructor and returned. Note that this is a shallow copy operation, because the other metadata contained in the given object are not recursively copied.
    Parameters:
      `object` - the object to get as a SIS implementation, or `null` if none.
    Returns:
      a SIS implementation containing the values of the given object (may be the given object itself), or `null` if the argument was null.

  - ### getIndividualName

    @Deprecated(since="1.0") public String getIndividualName()
    Deprecated.
    As of ISO 19115:2014, replaced by `getName()` in `DefaultIndividual`.
    Returns the name of the responsible person- surname, given name, title separated by a delimiter. Only one of `individualName`, `organisationName` and `positionName` shall be provided.

    This implementation returns the name of the first `Individual` found in the collection of parties. If no individual is found in the parties, then this method fallbacks on the first organisation member.

    Specified by:
      `getIndividualName` in interface `ResponsibleParty`
    Returns:
      name, surname, given name and title of the responsible person, or `null`.

  - ### setIndividualName

    @Deprecated(since="1.0") public void setIndividualName(String newValue)
    Deprecated.
    As of ISO 19115:2014, replaced by `setName(InternationalString)` in `DefaultIndividual`.
    Sets the name of the responsible person- surname, given name, title separated by a delimiter. Only one of `individualName`, `organisationName` and `positionName` shall be provided.

    This implementation sets the name of the first `Individual` found in the collection of parties, or create a new individual if no existing instance was found.

    Parameters:
      `newValue` - the new individual name, or `null` if none.

  - ### getOrganisationName

    @Deprecated(since="1.0") public InternationalString getOrganisationName()
    Deprecated.
    As of ISO 19115:2014, replaced by `getName()` in `DefaultOrganisation`.
    Returns the name of the responsible organization. Only one of `individualName`, `organisationName` and `positionName` shall be provided.

    This implementation returns the name of the first `Organisation` found in the collection of parties.

    Specified by:
      `getOrganisationName` in interface `ResponsibleParty`
    Returns:
      name of the responsible organization, or `null`.

  - ### setOrganisationName

    @Deprecated(since="1.0") public void setOrganisationName(InternationalString newValue)
    Deprecated.
    As of ISO 19115:2014, replaced by `setName(InternationalString)` in `DefaultOrganisation`.
    Sets the name of the responsible organization. Only one of `individualName`, `organisationName` and `positionName` shall be provided.

    This implementation sets the name of the first `Organisation` found in the collection of parties, or create a new organization if no existing instance was found.

    Parameters:
      `newValue` - the new organization name, or `null` if none.

  - ### getPositionName

    @Deprecated(since="1.0") public InternationalString getPositionName()
    Deprecated.
    As of ISO 19115:2014, replaced by `DefaultIndividual​.getPositionName()`.
    Returns the role or position of the responsible person Only one of `individualName`, `organisationName` and `positionName` shall be provided.

    This implementation returns the position of the first `Individual` found in the collection of parties. If no individual is found in the parties, then this method fallbacks on the first organisation member.

    Specified by:
      `getPositionName` in interface `ResponsibleParty`
    Returns:
      role or position of the responsible person, or `null`

  - ### setPositionName

    @Deprecated(since="1.0") public void setPositionName(InternationalString newValue)
    Deprecated.
    As of ISO 19115:2014, replaced by `DefaultIndividual​.setPositionName(InternationalString)`.
    set the role or position of the responsible person Only one of `individualName`, `organisationName` and `positionName` shall be provided.

    This implementation sets the position name of the first `Individual` found in the collection of parties, or create a new individual if no existing instance was found.

    Parameters:
      `newValue` - the new position name, or `null` if none.

  - ### getContactInfo

    @Deprecated(since="1.0") public Contact getContactInfo()
    Deprecated.
    As of ISO 19115:2014, replaced by `AbstractParty​.getContactInfo()`.
    Returns the address of the responsible party.

    This implementation returns the first non-null contact found in the collection of parties.

    Specified by:
      `getContactInfo` in interface `ResponsibleParty`
    Returns:
      address of the responsible party, or `null`.

  - ### setContactInfo

    @Deprecated(since="1.0") public void setContactInfo(Contact newValue)
    Deprecated.
    As of ISO 19115:2014, replaced by `AbstractParty​.setContactInfo(Collection)`.
    Sets the address of the responsible party.

    This implementation sets the contact info in the first party found in the collection of parties.

    Parameters:
      `newValue` - the new contact info, or `null` if none.

  - ### getRole

    public Role getRole()
    Returns the function performed by the responsible party.
    Specified by:
      `getRole` in interface `ResponsibleParty`
    Overrides:
      `getRole` in class `DefaultResponsibility`
    Returns:
      function performed by the responsible party.

  - ### setRole

    public void setRole(Role newValue)
    Sets the function performed by the responsible party.
    Overrides:
      `setRole` in class `DefaultResponsibility`
    Parameters:
      `newValue` - the new role.