Package org.apache.sis.metadata.iso.maintenance

## Class DefaultMaintenanceInformation

- Object
- - AbstractMetadata
  - - ModifiableMetadata
    - - ISOMetadata
      - - DefaultMaintenanceInformation

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

      public class DefaultMaintenanceInformation
      extends ISOMetadata
      implements MaintenanceInformation

  Information about the scope and frequency of updating. The following property is mandatory in a well-formed metadata according ISO 19115:
  `MD_MaintenanceInformation` `└─maintenanceAndUpdateFrequency……` Frequency with which changes and additions are made to the resource.

  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
    --- | ---
    `DefaultMaintenanceInformation()` | Creates a an initially empty maintenance information.
    `DefaultMaintenanceInformation​(MaintenanceFrequency maintenanceAndUpdateFrequency)` | Creates a maintenance information.
    `DefaultMaintenanceInformation​(MaintenanceInformation object)` | Constructs a new instance initialized with the values from the specified metadata object.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static DefaultMaintenanceInformation` | `castOrCopy​(MaintenanceInformation object)` | Returns a SIS metadata implementation with the values of the given arbitrary implementation.
    `Collection<ResponsibleParty>` | `getContacts()` | Returns identification of, and means of communicating with, person(s) and organization(s) with responsibility for maintaining the resource.
    `Date` | `getDateOfNextUpdate()` | Deprecated. As of ISO 19115:2014, replaced by `getMaintenanceDates()` in order to enable inclusion of a `DateType` to describe the type of the date.
    `MaintenanceFrequency` | `getMaintenanceAndUpdateFrequency()` | Returns the frequency with which changes and additions are made to the resource after the initial resource is completed.
    `Collection<CitationDate>` | `getMaintenanceDates()` | Return the date information associated with maintenance of resource.
    `Collection<InternationalString>` | `getMaintenanceNotes()` | Returns information regarding specific requirements for maintaining the resource.
    `Collection<Scope>` | `getMaintenanceScopes()` | Return the types of resource and / or extents to which the maintenance information applies.
    `Collection<ScopeDescription>` | `getUpdateScopeDescriptions()` | Deprecated. As of ISO 19115:2014, `getUpdateScopes()` and `getUpdateScopeDescriptions()` were combined into `getMaintenanceScopes()` in order to allow specifying a scope that includes a spatial and temporal extent.
    `Collection<ScopeCode>` | `getUpdateScopes()` | Deprecated. As of ISO 19115:2014, `getUpdateScopes()` and `getUpdateScopeDescriptions()` were combined into `getMaintenanceScopes()` in order to allow specifying a scope that includes a spatial and temporal extent.
    `PeriodDuration` | `getUserDefinedMaintenanceFrequency()` | Returns the maintenance period other than those defined.
    `void` | `setContacts​(Collection<? extends ResponsibleParty> newValues)` | Sets identification of, and means of communicating with, person(s) and organization(s) with responsibility for maintaining the resource.
    `void` | `setDateOfNextUpdate​(Date newValue)` | Deprecated.
    `void` | `setMaintenanceAndUpdateFrequency​(MaintenanceFrequency newValue)` | Sets the frequency with which changes and additions are made to the resource after the initial resource is completed.
    `void` | `setMaintenanceDates​(Collection<? extends CitationDate> newValues)` | Sets the date information associated with maintenance of resource.
    `void` | `setMaintenanceNotes​(Collection<? extends InternationalString> newValues)` | Sets information regarding specific requirements for maintaining the resource.
    `void` | `setMaintenanceScopes​(Collection<? extends Scope> newValues)` | Sets the types of resource and / or extents to which the maintenance information applies.
    `void` | `setUpdateScopeDescriptions​(Collection<? extends ScopeDescription> newValues)` | Deprecated. As of ISO 19115:2014, replaced by `setMaintenanceScopes(Collection)`.
    `void` | `setUpdateScopes​(Collection<? extends ScopeCode> newValues)` | Deprecated. As of ISO 19115:2014, replaced by `setMaintenanceScopes(Collection)`.
    `void` | `setUserDefinedMaintenanceFrequency​(PeriodDuration newValue)` | Sets the maintenance period other than those defined.

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

    - #### DefaultMaintenanceInformation

          public DefaultMaintenanceInformation()

      Creates a an initially empty maintenance information.

    - #### DefaultMaintenanceInformation

          public DefaultMaintenanceInformation​(MaintenanceFrequency maintenanceAndUpdateFrequency)

      Creates a maintenance information.
      Parameters:
        `maintenanceAndUpdateFrequency` - the frequency with which changes and additions are made to the resource after the initial resource is completed, or `null` if none.

    - #### DefaultMaintenanceInformation

          public DefaultMaintenanceInformation​(MaintenanceInformation 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(MaintenanceInformation)`

  - ### Method Detail

    - #### castOrCopy

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

    - #### getMaintenanceAndUpdateFrequency

          public MaintenanceFrequency getMaintenanceAndUpdateFrequency()

      Returns the frequency with which changes and additions are made to the resource after the initial resource is completed.
      Specified by:
        `getMaintenanceAndUpdateFrequency` in interface `MaintenanceInformation`
      Returns:
        frequency with which changes and additions are made to the resource, or `null`.

    - #### setMaintenanceAndUpdateFrequency

          public void setMaintenanceAndUpdateFrequency​(MaintenanceFrequency newValue)

      Sets the frequency with which changes and additions are made to the resource after the initial resource is completed.
      Parameters:
        `newValue` - the new maintenance frequency.

    - #### getMaintenanceDates

          @UML(identifier="maintenanceDate",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public Collection<CitationDate> getMaintenanceDates()

      Return the date information associated with maintenance of resource.
      Returns:
        date information associated with maintenance of resource.
      Since:
        0.5

    - #### setMaintenanceDates

          public void setMaintenanceDates​(Collection<? extends CitationDate> newValues)

      Sets the date information associated with maintenance of resource.
      Parameters:
        `newValues` - the new date information associated with maintenance of resource.
      Since:
        0.5

    - #### getDateOfNextUpdate

          @Deprecated
          public Date getDateOfNextUpdate()

      Deprecated.
      As of ISO 19115:2014, replaced by `getMaintenanceDates()` in order to enable inclusion of a `DateType` to describe the type of the date. The associated date type is `DateType​.valueOf("NEXT_UPDATE")`.
      Returns the scheduled revision date for resource. This method fetches the value from the maintenance dates.
      Specified by:
        `getDateOfNextUpdate` in interface `MaintenanceInformation`
      Returns:
        scheduled revision date, or `null`.

    - #### setDateOfNextUpdate

          @Deprecated
          public void setDateOfNextUpdate​(Date newValue)

      Deprecated.
      Sets the scheduled revision date for resource. This method stores the value in the maintenance dates.
      Parameters:
        `newValue` - the new date of next update.

    - #### getUserDefinedMaintenanceFrequency

          public PeriodDuration getUserDefinedMaintenanceFrequency()

      Returns the maintenance period other than those defined.
      Specified by:
        `getUserDefinedMaintenanceFrequency` in interface `MaintenanceInformation`
      Returns:
        the maintenance period, or `null`.

    - #### setUserDefinedMaintenanceFrequency

          public void setUserDefinedMaintenanceFrequency​(PeriodDuration newValue)

      Sets the maintenance period other than those defined.
      Parameters:
        `newValue` - the new user defined maintenance frequency.

    - #### getMaintenanceScopes

          @UML(identifier="maintenanceScope",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public Collection<Scope> getMaintenanceScopes()

      Return the types of resource and / or extents to which the maintenance information applies.
      Returns:
        type of resource and / or extent to which the maintenance information applies.
      Since:
        0.5

    - #### setMaintenanceScopes

          public void setMaintenanceScopes​(Collection<? extends Scope> newValues)

      Sets the types of resource and / or extents to which the maintenance information applies.
      Parameters:
        `newValues` - the types of resource and / or extents to which the maintenance information applies.
      Since:
        0.5

    - #### getUpdateScopes

          @Deprecated
          public final Collection<ScopeCode> getUpdateScopes()

      Deprecated.
      As of ISO 19115:2014, `getUpdateScopes()` and `getUpdateScopeDescriptions()` were combined into `getMaintenanceScopes()` in order to allow specifying a scope that includes a spatial and temporal extent.
      Returns the scope of data to which maintenance is applied. This method fetches the values from the maintenance scopes.
      Specified by:
        `getUpdateScopes` in interface `MaintenanceInformation`
      Returns:
        scope of data to which maintenance is applied.

    - #### setUpdateScopes

          @Deprecated
          public void setUpdateScopes​(Collection<? extends ScopeCode> newValues)

      Deprecated.
      As of ISO 19115:2014, replaced by `setMaintenanceScopes(Collection)`.
      Sets the scope of data to which maintenance is applied. This method stores the values in the maintenance scopes.
      Parameters:
        `newValues` - the new update scopes.

    - #### getUpdateScopeDescriptions

          @Deprecated
          public final Collection<ScopeDescription> getUpdateScopeDescriptions()

      Deprecated.
      As of ISO 19115:2014, `getUpdateScopes()` and `getUpdateScopeDescriptions()` were combined into `getMaintenanceScopes()` in order to allow specifying a scope that includes a spatial and temporal extent.
      Returns additional information about the range or extent of the resource. This method fetches the values from the maintenance scopes.
      Specified by:
        `getUpdateScopeDescriptions` in interface `MaintenanceInformation`
      Returns:
        additional information about the range or extent of the resource.

    - #### setUpdateScopeDescriptions

          @Deprecated
          public void setUpdateScopeDescriptions​(Collection<? extends ScopeDescription> newValues)

      Deprecated.
      As of ISO 19115:2014, replaced by `setMaintenanceScopes(Collection)`.
      Sets additional information about the range or extent of the resource. This method stores the values in the maintenance scopes.
      Parameters:
        `newValues` - the new update scope descriptions.

    - #### getMaintenanceNotes

          public Collection<InternationalString> getMaintenanceNotes()

      Returns information regarding specific requirements for maintaining the resource.
      Specified by:
        `getMaintenanceNotes` in interface `MaintenanceInformation`
      Returns:
        information regarding specific requirements for maintaining the resource.

    - #### setMaintenanceNotes

          public void setMaintenanceNotes​(Collection<? extends InternationalString> newValues)

      Sets information regarding specific requirements for maintaining the resource.
      Parameters:
        `newValues` - the new maintenance notes.

    - #### getContacts

          public Collection<ResponsibleParty> getContacts()

      Returns identification of, and means of communicating with, person(s) and organization(s) with responsibility for maintaining the resource.
      Upcoming API change — generalization
      As of ISO 19115:2014, `ResponsibleParty` is replaced by the `Responsibility` parent interface. This change may be applied in GeoAPI 4.0.
      Specified by:
        `getContacts` in interface `MaintenanceInformation`
      Returns:
        means of communicating with person(s) and organization(s) with responsibility for maintaining the resource.

    - #### setContacts

          public void setContacts​(Collection<? extends ResponsibleParty> newValues)

      Sets identification of, and means of communicating with, person(s) and organization(s) with responsibility for maintaining the resource.
      Upcoming API change — generalization
      As of ISO 19115:2014, `ResponsibleParty` is replaced by the `Responsibility` parent interface. This change may be applied in GeoAPI 4.0.
      Parameters:
        `newValues` - the new identification of person(s) and organization(s) with responsibility for maintaining the resource.