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

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

  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
    --- | ---
    `DefaultOperation()` | Constructs an initially empty operation.
    `DefaultOperation​(Operation 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 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, 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

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

  - ### Method Detail

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

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