# Class DefaultReleasability

Object
AbstractMetadata
ModifiableMetadata
ISOMetadata
DefaultReleasability

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

@UML(identifier="MD_Releasability", specification=ISO_19115) public class DefaultReleasability extends ISOMetadata
Information about resource release constraints.
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 `Releasability` 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

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Collection<DefaultResponsibility>`
  `getAddressees()`
  Returns the parties to which the release statement applies.
  `Collection<Restriction>`
  `getDisseminationConstraints()`
  Components in determining releasability.
  `InternationalString`
  `getStatement()`
  Returns the release statement.
  `void`
  `setAddressees(Collection<? extends DefaultResponsibility> newValues)`
  Sets the parties to which the release statement applies.
  `void`
  `setDisseminationConstraints(Collection<? extends Restriction> newValues)`
  Sets the components in determining releasability.
  `void`
  `setStatement(InternationalString newValue)`
  Sets the release statement.

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

  - ### DefaultReleasability

    public DefaultReleasability()
    Creates an initially empty releasability.

  - ### DefaultReleasability

    public DefaultReleasability(DefaultReleasability 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.

- ## Method Details

  - ### getAddressees

    @UML(identifier="addressee", obligation=OPTIONAL, specification=ISO_19115) public Collection<DefaultResponsibility> getAddressees()
    Returns the parties to which the release statement applies.
    Upcoming API change — generalization
    The element type will be changed to the `Responsibility` interface when GeoAPI will provide it (tentatively in GeoAPI 3.1).
    Returns:
      parties to which the release statement applies.

  - ### setAddressees

    public void setAddressees(Collection<? extends DefaultResponsibility> newValues)
    Sets the parties to which the release statement applies.
    Upcoming API change — generalization
    The element type will be changed to the `Responsibility` interface when GeoAPI will provide it (tentatively in GeoAPI 3.1).
    Parameters:
      `newValues` - the new parties.

  - ### getStatement

    @UML(identifier="statement", obligation=OPTIONAL, specification=ISO_19115) public InternationalString getStatement()
    Returns the release statement.
    Returns:
      release statement, or `null` if none.

  - ### setStatement

    public void setStatement(InternationalString newValue)
    Sets the release statement.
    Parameters:
      `newValue` - the new release statement.

  - ### getDisseminationConstraints

    @UML(identifier="disseminationConstraints", obligation=OPTIONAL, specification=ISO_19115) public Collection<Restriction> getDisseminationConstraints()
    Components in determining releasability.
    Returns:
      components in determining releasability.

  - ### setDisseminationConstraints

    public void setDisseminationConstraints(Collection<? extends Restriction> newValues)
    Sets the components in determining releasability.
    Parameters:
      `newValues` - the new components.