# Class DefaultOperation

Object
AbstractMetadata
ModifiableMetadata
ISOMetadata
DefaultOperation

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

public class DefaultOperation extends ISOMetadata implements Operation
Designations for the operation used to acquire the dataset. The following properties are mandatory in a well-formed metadata according ISO 19115:
`MI_Operation` `├─identifier…………………` Unique identification of the operation. `│ └─code………………………` Alphanumeric value identifying an instance in the namespace. `├─status……………………………` Status of the data acquisition. `└─parentOperation……` Heritage of the operation.

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static DefaultOperation`
  `castOrCopy(Operation object)`
  Returns a SIS metadata implementation with the values of the given arbitrary implementation.
  `Collection<Operation>`
  `getChildOperations()`
  Returns the sub-missions that make up part of a larger mission.
  `Citation`
  `getCitation()`
  Returns the identification of the mission.
  `InternationalString`
  `getDescription()`
  Returns the description of the mission on which the platform observations are made and the objectives of that mission.
  `Identifier`
  `getIdentifier()`
  Returns the unique identification of the operation.
  `Collection<Objective>`
  `getObjectives()`
  Returns object(s) or area(s) of interest to be sensed.
  `Operation`
  `getParentOperation()`
  Returns the heritage of the operation.
  `Plan`
  `getPlan()`
  Returns the plan satisfied by the operation.
  `Collection<Platform>`
  `getPlatforms()`
  Returns the platform (or platforms) used in the operation.
  `Collection<Event>`
  `getSignificantEvents()`
  Returns the record of an event occurring during an operation.
  `Progress`
  `getStatus()`
  Returns the status of the data acquisition.
  `OperationType`
  `getType()`
  Returns the collection technique for the operation.
  `void`
  `setChildOperations(Collection<? extends Operation> newValues)`
  Sets the sub-missions that make up part of a larger mission.
  `void`
  `setCitation(Citation newValue)`
  Sets the identification of the mission.
  `void`
  `setDescription(InternationalString newValue)`
  Sets the description of the mission on which the platform observations are made and the objectives of that mission.
  `void`
  `setIdentifier(Identifier newValue)`
  Sets the unique identification of the operation.
  `void`
  `setObjectives(Collection<? extends Objective> newValues)`
  Sets Object(s) or area(s) of interest to be sensed.
  `void`
  `setParentOperation(Operation newValue)`
  Sets the heritage of the operation.
  `void`
  `setPlan(Plan newValue)`
  Sets the plan satisfied by the operation.
  `void`
  `setPlatforms(Collection<? extends Platform> newValues)`
  Sets the platform (or platforms) used in the operation.
  `void`
  `setSignificantEvents(Collection<? extends Event> newValues)`
  Sets the record of an event occurring during an operation.
  `void`
  `setStatus(Progress newValue)`
  Sets the status of the data acquisition.
  `void`
  `setType(OperationType newValue)`
  Sets the collection technique for the operation.

  ### Methods inherited from class ISOMetadata

  `getIdentifierMap, getIdentifiers, getStandard`

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

  - ### DefaultOperation

    public DefaultOperation()
    Constructs an initially empty operation.

  - ### DefaultOperation

    public DefaultOperation(Operation 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(Operation)`

- ## Method Details

  - ### castOrCopy

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

  - ### getDescription

    public InternationalString getDescription()
    Returns the description of the mission on which the platform observations are made and the objectives of that mission. `null` if unspecified.
    Specified by:
      `getDescription` in interface `Operation`
    Returns:
      description of the mission, or `null`.

  - ### setDescription

    public void setDescription(InternationalString newValue)
    Sets the description of the mission on which the platform observations are made and the objectives of that mission.
    Parameters:
      `newValue` - the new description value.

  - ### getCitation

    public Citation getCitation()
    Returns the identification of the mission. `null` if unspecified.
    Specified by:
      `getCitation` in interface `Operation`
    Returns:
      identification of the mission, or `null`.

  - ### setCitation

    public void setCitation(Citation newValue)
    Sets the identification of the mission.
    Parameters:
      `newValue` - the new citation value.

  - ### getIdentifier

    public Identifier getIdentifier()
    Returns the unique identification of the operation.
    Specified by:
      `getIdentifier` in interface `Operation`
    Overrides:
      `getIdentifier` in class `ISOMetadata`
    Returns:
      unique identification of the operation, or `null`.

  - ### setIdentifier

    public void setIdentifier(Identifier newValue)
    Sets the unique identification of the operation.
    Overrides:
      `setIdentifier` in class `ISOMetadata`
    Parameters:
      `newValue` - the new identifier value.

  - ### getStatus

    public Progress getStatus()
    Returns the status of the data acquisition.
    Specified by:
      `getStatus` in interface `Operation`
    Returns:
      status of the data acquisition, or `null`.

  - ### setStatus

    public void setStatus(Progress newValue)
    Sets the status of the data acquisition.
    Parameters:
      `newValue` - the new status value.

  - ### getType

    public OperationType getType()
    Returns the collection technique for the operation.
    Specified by:
      `getType` in interface `Operation`
    Returns:
      collection technique for the operation, or `null`.

  - ### setType

    public void setType(OperationType newValue)
    Sets the collection technique for the operation.
    Parameters:
      `newValue` - the new type value.

  - ### getChildOperations

    public Collection<Operation> getChildOperations()
    Returns the sub-missions that make up part of a larger mission.
    Specified by:
      `getChildOperations` in interface `Operation`
    Returns:
      sub-missions.

  - ### setChildOperations

    public void setChildOperations(Collection<? extends Operation> newValues)
    Sets the sub-missions that make up part of a larger mission.
    Parameters:
      `newValues` - the new child operations values.

  - ### getObjectives

    public Collection<Objective> getObjectives()
    Returns object(s) or area(s) of interest to be sensed.
    Specified by:
      `getObjectives` in interface `Operation`
    Returns:
      object(s) or area(s) of interest.

  - ### setObjectives

    public void setObjectives(Collection<? extends Objective> newValues)
    Sets Object(s) or area(s) of interest to be sensed.
    Parameters:
      `newValues` - the new objectives values.

  - ### getParentOperation

    public Operation getParentOperation()
    Returns the heritage of the operation.
    Specified by:
      `getParentOperation` in interface `Operation`
    Returns:
      heritage of the operation, or `null`.

  - ### setParentOperation

    public void setParentOperation(Operation newValue)
    Sets the heritage of the operation.
    Parameters:
      `newValue` - the new parent operation value.

  - ### getPlan

    public Plan getPlan()
    Returns the plan satisfied by the operation.
    Specified by:
      `getPlan` in interface `Operation`
    Returns:
      plan satisfied by the operation, or `null`.

  - ### setPlan

    public void setPlan(Plan newValue)
    Sets the plan satisfied by the operation.
    Parameters:
      `newValue` - the new plan value.

  - ### getPlatforms

    public Collection<Platform> getPlatforms()
    Returns the platform (or platforms) used in the operation.
    Specified by:
      `getPlatforms` in interface `Operation`
    Returns:
      platforms used in the operation.

  - ### setPlatforms

    public void setPlatforms(Collection<? extends Platform> newValues)
    Sets the platform (or platforms) used in the operation.
    Parameters:
      `newValues` - the new platforms values.

  - ### getSignificantEvents

    public Collection<Event> getSignificantEvents()
    Returns the record of an event occurring during an operation.
    Specified by:
      `getSignificantEvents` in interface `Operation`
    Returns:
      record of an event occurring during an operation.

  - ### setSignificantEvents

    public void setSignificantEvents(Collection<? extends Event> newValues)
    Sets the record of an event occurring during an operation.
    Parameters:
      `newValues` - the new significant events value.