# Class DefaultAddress

Object
AbstractMetadata
ModifiableMetadata
ISOMetadata
DefaultAddress

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

public class DefaultAddress extends ISOMetadata implements Address
Location of the responsible individual 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

- ## 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
  `DefaultAddress()`
  Constructs an initially empty address.
  `DefaultAddress(Address object)`
  Constructs a new instance initialized with the values from the specified metadata object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static DefaultAddress`
  `castOrCopy(Address object)`
  Returns a SIS metadata implementation with the values of the given arbitrary implementation.
  `InternationalString`
  `getAdministrativeArea()`
  Return the state, province of the location.
  `InternationalString`
  `getCity()`
  Returns the city of the location.
  `InternationalString`
  `getCountry()`
  Returns the country of the physical address.
  `Collection<String>`
  `getDeliveryPoints()`
  Returns the address line for the location (as described in ISO 11180, Annex A).
  `Collection<String>`
  `getElectronicMailAddresses()`
  Returns the address of the electronic mailbox of the responsible organization or individual.
  `String`
  `getPostalCode()`
  Returns ZIP or other postal code.
  `void`
  `setAdministrativeArea(InternationalString newValue)`
  Sets the state, province of the location.
  `void`
  `setCity(InternationalString newValue)`
  Sets the city of the location.
  `void`
  `setCountry(InternationalString newValue)`
  Sets the country of the physical address.
  `void`
  `setDeliveryPoints(Collection<? extends String> newValues)`
  Sets the address line for the location (as described in ISO 11180, Annex A).
  `void`
  `setElectronicMailAddresses(Collection<? extends String> newValues)`
  Sets the address of the electronic mailbox of the responsible organization or individual.
  `void`
  `setPostalCode(String newValue)`
  Sets ZIP or other postal code.

  ### Methods inherited from class ISOMetadata

  `getIdentifier, getIdentifierMap, getIdentifiers, getStandard, setIdentifier`

  ### Methods inherited from class ModifiableMetadata

  `checkWritePermission, collectionType, 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

  - ### DefaultAddress

    public DefaultAddress()
    Constructs an initially empty address.

  - ### DefaultAddress

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

- ## Method Details

  - ### castOrCopy

    public static DefaultAddress castOrCopy(Address 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 `DefaultAddress`, then it is returned unchanged.
    - Otherwise a new `DefaultAddress` 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.

  - ### getAdministrativeArea

    public InternationalString getAdministrativeArea()
    Return the state, province of the location.
    Specified by:
      `getAdministrativeArea` in interface `Address`
    Returns:
      state, province of the location, or `null`.

  - ### setAdministrativeArea

    public void setAdministrativeArea(InternationalString newValue)
    Sets the state, province of the location.
    Parameters:
      `newValue` - the new administrative area.

  - ### getCity

    public InternationalString getCity()
    Returns the city of the location.
    Specified by:
      `getCity` in interface `Address`
    Returns:
      the city of the location, or `null`.

  - ### setCity

    public void setCity(InternationalString newValue)
    Sets the city of the location.
    Parameters:
      `newValue` - the new city, or `null` if none.

  - ### getCountry

    public InternationalString getCountry()
    Returns the country of the physical address.
    Specified by:
      `getCountry` in interface `Address`
    Returns:
      country of the physical address, or `null`.

  - ### setCountry

    public void setCountry(InternationalString newValue)
    Sets the country of the physical address.
    Parameters:
      `newValue` - the new country, or `null` if none.

  - ### getDeliveryPoints

    public Collection<String> getDeliveryPoints()
    Returns the address line for the location (as described in ISO 11180, Annex A).
    Upcoming API change — internationalization
    The return type may be changed from `Collection<String>` to `Collection<? extends InternationalString>` in GeoAPI 4.0.
    Specified by:
      `getDeliveryPoints` in interface `Address`
    Returns:
      address line for the location.

  - ### setDeliveryPoints

    public void setDeliveryPoints(Collection<? extends String> newValues)
    Sets the address line for the location (as described in ISO 11180, Annex A).
    Upcoming API change — internationalization
    The argument type may be changed from `Collection<String>` to `Collection<? extends InternationalString>` in GeoAPI 4.0.
    Parameters:
      `newValues` - the new delivery points, or `null` if none.

  - ### getElectronicMailAddresses

    public Collection<String> getElectronicMailAddresses()
    Returns the address of the electronic mailbox of the responsible organization or individual.
    Specified by:
      `getElectronicMailAddresses` in interface `Address`
    Returns:
      address of the electronic mailbox of the responsible organization or individual.

  - ### setElectronicMailAddresses

    public void setElectronicMailAddresses(Collection<? extends String> newValues)
    Sets the address of the electronic mailbox of the responsible organization or individual.
    Parameters:
      `newValues` - the new electronic mail addresses, or `null` if none.

  - ### getPostalCode

    public String getPostalCode()
    Returns ZIP or other postal code.
    Specified by:
      `getPostalCode` in interface `Address`
    Returns:
      ZIP or other postal code, or `null`.

  - ### setPostalCode

    public void setPostalCode(String newValue)
    Sets ZIP or other postal code.
    Parameters:
      `newValue` - the new postal code, or `null` if none.