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

## Class DefaultContact

- Object
- - AbstractMetadata
  - - ModifiableMetadata
    - - ISOMetadata
      - - DefaultContact

- All Implemented Interfaces:
    `Serializable`, `Emptiable`, `LenientComparable`, `IdentifiedObject`, `Contact`

      public class DefaultContact
      extends ISOMetadata
      implements Contact

  Information required to enable contact with the responsible person and/or organization.

  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.3
  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
    --- | ---
    `DefaultContact()` | Constructs an initially empty contact.
    `DefaultContact​(Contact object)` | Constructs a new instance initialized with the values from the specified metadata object.
    `DefaultContact​(OnlineResource resource)` | Constructs a contact initialized to the specified online resource.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static DefaultContact` | `castOrCopy​(Contact object)` | Returns a SIS metadata implementation with the values of the given arbitrary implementation.
    `Address` | `getAddress()` | Deprecated. As of ISO 19115:2014, replaced by `getAddresses()`.
    `Collection<Address>` | `getAddresses()` | Returns the physical and email addresses at which the organization or individual may be contacted.
    `InternationalString` | `getContactInstructions()` | Returns supplemental instructions on how or when to contact the individual or organization.
    `InternationalString` | `getContactType()` | Type of the contact.
    `InternationalString` | `getHoursOfService()` | Returns the time period (including time zone) when individuals can contact the organization or individual.
    `OnlineResource` | `getOnlineResource()` | Deprecated. As of ISO 19115:2014, replaced by `getOnlineResources()`.
    `Collection<OnlineResource>` | `getOnlineResources()` | Returns on-line information that can be used to contact the individual or organization.
    `Telephone` | `getPhone()` | Deprecated. As of ISO 19115:2014, replaced by `getPhones()`.
    `Collection<Telephone>` | `getPhones()` | Returns telephone numbers at which the organization or individual may be contacted.
    `void` | `setAddress​(Address newValue)` | Deprecated. As of ISO 19115:2014, replaced by `setAddresses(Collection)`.
    `void` | `setAddresses​(Collection<? extends Address> newValues)` | Sets the physical and email addresses at which the organization or individual may be contacted.
    `void` | `setContactInstructions​(InternationalString newValue)` | Sets supplemental instructions on how or when to contact the individual or organization.
    `void` | `setContactType​(InternationalString newValue)` | Sets new type of the contact.
    `void` | `setHoursOfService​(InternationalString newValue)` | Sets time period (including time zone) when individuals can contact the organization or individual.
    `void` | `setOnlineResource​(OnlineResource newValue)` | Deprecated. As of ISO 19115:2014, replaced by `setOnlineResources(Collection)`.
    `void` | `setOnlineResources​(Collection<? extends OnlineResource> newValues)` | Sets on-line information that can be used to contact the individual or organization.
    `void` | `setPhone​(Telephone newValue)` | Deprecated. As of ISO 19115:2014, replaced by `setPhones(Collection)`.
    `void` | `setPhones​(Collection<? extends Telephone> newValues)` | Sets telephone numbers at which the organization or individual may be contacted.

    - ### 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

    - #### DefaultContact

          public DefaultContact()

      Constructs an initially empty contact.

    - #### DefaultContact

          public DefaultContact​(OnlineResource resource)

      Constructs a contact initialized to the specified online resource.
      Parameters:
        `resource` - the on-line information that can be used to contact the individual or organization, or `null` if none.

    - #### DefaultContact

          public DefaultContact​(Contact 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(Contact)`

  - ### Method Detail

    - #### castOrCopy

          public static DefaultContact castOrCopy​(Contact 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 `DefaultContact`, then it is returned unchanged.
      - Otherwise a new `DefaultContact` instance is created using the copy constructor and returned. Note that this is a shallow copy operation, since 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.

    - #### getPhones

          @UML(identifier="phone",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public Collection<Telephone> getPhones()

      Returns telephone numbers at which the organization or individual may be contacted.
      Returns:
        telephone numbers at which the organization or individual may be contacted.
      Since:
        0.5

    - #### setPhones

          public void setPhones​(Collection<? extends Telephone> newValues)

      Sets telephone numbers at which the organization or individual may be contacted.
      Parameters:
        `newValues` - the new telephones.
      Since:
        0.5

    - #### getPhone

          @Deprecated
          public Telephone getPhone()

      Deprecated.
      As of ISO 19115:2014, replaced by `getPhones()`.
      Returns telephone numbers at which the organization or individual may be contacted. This method returns the first telephone number associated to `TelephoneType​.VOICE` or `TelephoneType​.FACSIMILE FACSIMILE`.
      Specified by:
        `getPhone` in interface `Contact`
      Returns:
        telephone numbers at which the organization or individual may be contacted, or `null`.

    - #### setPhone

          @Deprecated
          public void setPhone​(Telephone newValue)

      Deprecated.
      As of ISO 19115:2014, replaced by `setPhones(Collection)`.
      Sets telephone numbers at which the organization or individual may be contacted. This method delegates to `setPhones(Collection)`.
      Parameters:
        `newValue` - the new telephone, or `null` if none.

    - #### getAddresses

          @UML(identifier="address",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public Collection<Address> getAddresses()

      Returns the physical and email addresses at which the organization or individual may be contacted.
      Returns:
        physical and email addresses at which the organization or individual may be contacted, or `null`.
      Since:
        0.5

    - #### setAddresses

          public void setAddresses​(Collection<? extends Address> newValues)

      Sets the physical and email addresses at which the organization or individual may be contacted.
      Parameters:
        `newValues` - the new addresses.
      Since:
        0.5

    - #### getAddress

          @Deprecated
          public Address getAddress()

      Deprecated.
      As of ISO 19115:2014, replaced by `getAddresses()`.
      Returns the physical and email address at which the organization or individual may be contacted. This method returns the first `adress` element, or null if none.
      Specified by:
        `getAddress` in interface `Contact`
      Returns:
        physical and email address at which the organization or individual may be contacted, or `null`.

    - #### setAddress

          @Deprecated
          public void setAddress​(Address newValue)

      Deprecated.
      As of ISO 19115:2014, replaced by `setAddresses(Collection)`.
      Sets the physical and email address at which the organization or individual may be contacted. This method delegates to `setAddresses(Collection)`.
      Parameters:
        `newValue` - the new address, or `null` if none.

    - #### getOnlineResources

          @UML(identifier="onlineResource",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public Collection<OnlineResource> getOnlineResources()

      Returns on-line information that can be used to contact the individual or organization.
      Returns:
        on-line information that can be used to contact the individual or organization.
      Since:
        0.5

    - #### setOnlineResources

          public void setOnlineResources​(Collection<? extends OnlineResource> newValues)

      Sets on-line information that can be used to contact the individual or organization.
      Parameters:
        `newValues` - the new online resources.
      Since:
        0.5

    - #### getOnlineResource

          @Deprecated
          public OnlineResource getOnlineResource()

      Deprecated.
      As of ISO 19115:2014, replaced by `getOnlineResources()`.
      Returns on-line information that can be used to contact the individual or organization. This method returns the first `online resource` element, or null if none.
      Specified by:
        `getOnlineResource` in interface `Contact`
      Returns:
        on-line information that can be used to contact the individual or organization, or `null`.

    - #### setOnlineResource

          @Deprecated
          public void setOnlineResource​(OnlineResource newValue)

      Deprecated.
      As of ISO 19115:2014, replaced by `setOnlineResources(Collection)`.
      Sets on-line information that can be used to contact the individual or organization. This method delegates to `setOnlineResources(Collection)`.
      Parameters:
        `newValue` - the new online resource, or `null` if none.

    - #### getHoursOfService

          public InternationalString getHoursOfService()

      Returns the time period (including time zone) when individuals can contact the organization or individual.
      Upcoming API change — multiplicity
      As of ISO 19115:2014, this singleton has been replaced by a collection. This change will tentatively be applied in GeoAPI 4.0.
      Specified by:
        `getHoursOfService` in interface `Contact`
      Returns:
        time period when individuals can contact the organization or individual.

    - #### setHoursOfService

          public void setHoursOfService​(InternationalString newValue)

      Sets time period (including time zone) when individuals can contact the organization or individual.
      Upcoming API change — multiplicity
      As of ISO 19115:2014, this singleton has been replaced by a collection. This change will tentatively be applied in GeoAPI 4.0.
      Parameters:
        `newValue` - the new hours of service.

    - #### getContactInstructions

          public InternationalString getContactInstructions()

      Returns supplemental instructions on how or when to contact the individual or organization.
      Specified by:
        `getContactInstructions` in interface `Contact`
      Returns:
        supplemental instructions on how or when to contact the individual or organization, or `null`.

    - #### setContactInstructions

          public void setContactInstructions​(InternationalString newValue)

      Sets supplemental instructions on how or when to contact the individual or organization.
      Parameters:
        `newValue` - the new contact instructions, or `null` if none.

    - #### getContactType

          @UML(identifier="contactType",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public InternationalString getContactType()

      Type of the contact. Returns `null` if none.
      Returns:
        type of the contact, or `null` if none.
      Since:
        0.5

    - #### setContactType

          public void setContactType​(InternationalString newValue)

      Sets new type of the contact.
      Parameters:
        `newValue` - the new type of the contact.
      Since:
        0.5