# 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

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

  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`

  ### Methods inherited from class ModifiableMetadata

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

  - ### 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, 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(Plan)`

- ## Method Details

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

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