Package org.apache.sis.metadata.iso.acquisition

## Class DefaultPlan

- Object
- - AbstractMetadata
  - - ModifiableMetadata
    - - ISOMetadata
      - - DefaultPlan

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

      public class DefaultPlan
      extends ISOMetadata
      implements Plan

  Designations for the planning information related to meeting the data acquisition requirements. The following properties are mandatory in a well-formed metadata according ISO 19115:
  `MI_Plan` `├─status………………………………` Current status of the plan (pending, completed, etc.) `└─citation…………………………` Identification of authority requesting target collection. `├─title………………………` Name by which the cited resource is known. `└─date…………………………` Reference date for the cited 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
    --- | ---
    `DefaultPlan()` | Constructs an initially empty plan.
    `DefaultPlan​(Plan object)` | Constructs a new instance initialized with the values from the specified metadata object.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static DefaultPlan` | `castOrCopy​(Plan object)` | Returns a SIS metadata implementation with the values of the given arbitrary implementation.
    `Citation` | `getCitation()` | Returns the identification of authority requesting target collection.
    `Collection<Operation>` | `getOperations()` | Returns the identification of the activity or activities that satisfy a plan.
    `Collection<Requirement>` | `getSatisfiedRequirements()` | Returns the requirement satisfied by the plan.
    `Progress` | `getStatus()` | Returns the current status of the plan (pending, completed, etc.)
    `GeometryType` | `getType()` | Returns the manner of sampling geometry that the planner expects for collection of objective data.
    `void` | `setCitation​(Citation newValue)` | Sets the identification of authority requesting target collection.
    `void` | `setOperations​(Collection<? extends Operation> newValues)` | Sets the identification of the activity or activities that satisfy a plan.
    `void` | `setSatisfiedRequirements​(Collection<? extends Requirement> newValues)` | Sets the requirement satisfied by the plan.
    `void` | `setStatus​(Progress newValue)` | Sets the current status of the plan (pending, completed, etc.)
    `void` | `setType​(GeometryType newValue)` | Sets the manner of sampling geometry that the planner expects for collection of objective data.

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

    - #### DefaultPlan

          public DefaultPlan()

      Constructs an initially empty plan.

    - #### DefaultPlan

          public DefaultPlan​(Plan 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(Plan)`

  - ### Method Detail

    - #### castOrCopy

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

    - #### getType

          public GeometryType getType()

      Returns the manner of sampling geometry that the planner expects for collection of objective data. `null` if unspecified.
      Specified by:
        `getType` in interface `Plan`
      Returns:
        manner of sampling geometry, or `null`.

    - #### setType

          public void setType​(GeometryType newValue)

      Sets the manner of sampling geometry that the planner expects for collection of objective data.
      Parameters:
        `newValue` - the new type value.

    - #### getStatus

          public Progress getStatus()

      Returns the current status of the plan (pending, completed, etc.)
      Specified by:
        `getStatus` in interface `Plan`
      Returns:
        current status of the plan, or `null`.

    - #### setStatus

          public void setStatus​(Progress newValue)

      Sets the current status of the plan (pending, completed, etc.)
      Parameters:
        `newValue` - the new status value.

    - #### getCitation

          public Citation getCitation()

      Returns the identification of authority requesting target collection.
      Specified by:
        `getCitation` in interface `Plan`
      Returns:
        identification of authority requesting target collection, or `null`.

    - #### setCitation

          public void setCitation​(Citation newValue)

      Sets the identification of authority requesting target collection.
      Parameters:
        `newValue` - the new citation value.

    - #### getOperations

          public Collection<Operation> getOperations()

      Returns the identification of the activity or activities that satisfy a plan.
      Specified by:
        `getOperations` in interface `Plan`
      Returns:
        identification of the activity or activities.

    - #### setOperations

          public void setOperations​(Collection<? extends Operation> newValues)

      Sets the identification of the activity or activities that satisfy a plan.
      Parameters:
        `newValues` - the new identifications of the activity.

    - #### getSatisfiedRequirements

          public Collection<Requirement> getSatisfiedRequirements()

      Returns the requirement satisfied by the plan.
      Specified by:
        `getSatisfiedRequirements` in interface `Plan`
      Returns:
        requirement satisfied by the plan.

    - #### setSatisfiedRequirements

          public void setSatisfiedRequirements​(Collection<? extends Requirement> newValues)

      Sets the requirement satisfied by the plan.
      Parameters:
        `newValues` - the new satisfied requirements.