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

## Class AbstractParty

- Object
- - AbstractMetadata
  - - ModifiableMetadata
    - - ISOMetadata
      - - AbstractParty

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

      @TitleProperty(name="name")
      @UML(identifier="CI_Party",
           specification=ISO_19115)
      public class AbstractParty
      extends ISOMetadata

  Information about the individual and / or organization of the party. The following property is conditional (i.e. mandatory under some circumstances) in a well-formed metadata according ISO 19115:
  `CI_Party` `└─name……` Name of the 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 `Party` 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
    --- | ---
    `AbstractParty()` | Constructs an initially empty party.
    `AbstractParty​(CharSequence name, Contact contactInfo)` | Constructs a party initialized with the specified name and contact information.
    `AbstractParty​(AbstractParty object)` | Constructs a new instance initialized with the values from the specified metadata object.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Collection<Contact>` | `getContactInfo()` | Returns the contact information for the party.
    `InternationalString` | `getName()` | Return the name of the party.
    `void` | `setContactInfo​(Collection<? extends Contact> newValues)` | Sets the contact information for the party.
    `void` | `setName​(InternationalString newValue)` | Sets the name of the 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

    - #### AbstractParty

          public AbstractParty()

      Constructs an initially empty party.

    - #### AbstractParty

          public AbstractParty​(CharSequence name,
                               Contact contactInfo)

      Constructs a party initialized with the specified name and contact information.
      Parameters:
        `name` - name of the party, or `null` if none.
        `contactInfo` - contact information for the party, or `null` if none.

    - #### AbstractParty

          public AbstractParty​(AbstractParty 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

    - #### getName

          @UML(identifier="name",
               obligation=CONDITIONAL,
               specification=ISO_19115)
          public InternationalString getName()

      Return the name of the party.
      Returns:
        name of the party.

    - #### setName

          public void setName​(InternationalString newValue)

      Sets the name of the party.
      Parameters:
        `newValue` - the new name of the party.

    - #### getContactInfo

          @UML(identifier="contactInfo",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public Collection<Contact> getContactInfo()

      Returns the contact information for the party.
      Returns:
        contact information for the party.

    - #### setContactInfo

          public void setContactInfo​(Collection<? extends Contact> newValues)

      Sets the contact information for the party.
      Parameters:
        `newValues` - the new contact information for the party.