Package org.apache.sis.metadata.iso.lineage

## Class DefaultProcessStep

- Object
- - AbstractMetadata
  - - ModifiableMetadata
    - - ISOMetadata
      - - DefaultProcessStep

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

      @TitleProperty(name="description")
      public class DefaultProcessStep
      extends ISOMetadata
      implements ProcessStep

  Information about an event or transformation in the life of a resource. Includes the process used to maintain the resource. The following property is mandatory in a well-formed metadata according ISO 19115:
  `LI_ProcessStep` `└─description……` Description of the event, including related parameters or tolerances.

  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
    --- | ---
    `DefaultProcessStep()` | Creates an initially empty process step.
    `DefaultProcessStep​(CharSequence description)` | Creates a process step initialized to the given description.
    `DefaultProcessStep​(ProcessStep 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 DefaultProcessStep` | `castOrCopy​(ProcessStep object)` | Returns a SIS metadata implementation with the values of the given arbitrary implementation.
    `Date` | `getDate()` | Deprecated. As of ISO 19115-1:2014, replaced by `getStepDateTime()`.
    `InternationalString` | `getDescription()` | Returns the description of the event, including related parameters or tolerances.
    `Collection<Source>` | `getOutputs()` | Returns the description of the product generated as a result of the process step.
    `Processing` | `getProcessingInformation()` | Returns the comprehensive information about the procedure by which the algorithm was applied to derive geographic data from the raw instrument measurements, such as datasets, software used, and the processing environment.
    `Collection<ResponsibleParty>` | `getProcessors()` | Returns the identification of, and means of communication with, person(s) and organization(s) associated with the process step.
    `InternationalString` | `getRationale()` | Returns the requirement or purpose for the process step.
    `Collection<Citation>` | `getReferences()` | Returns the process step documentation.
    `Collection<ProcessStepReport>` | `getReports()` | Returns the report generated by the process step.
    `Scope` | `getScope()` | Returns the type of resource and / or extent to which the process step applies.
    `Collection<Source>` | `getSources()` | Returns the information about the source data used in creating the data specified by the scope.
    `TemporalPrimitive` | `getStepDateTime()` | Returns the date, time or range of date and time over which the process step occurred.
    `void` | `setDate​(Date newValue)` | Deprecated. As of ISO 19115-1:2014, replaced by `setStepDateTime(TemporalPrimitive)`.
    `void` | `setDescription​(InternationalString newValue)` | Sets the description of the event, including related parameters or tolerances.
    `void` | `setOutputs​(Collection<? extends Source> newValues)` | Sets the description of the product generated as a result of the process step.
    `void` | `setProcessingInformation​(Processing newValue)` | Sets the comprehensive information about the procedure by which the algorithm was applied to derive geographic data from the raw instrument measurements, such as datasets, software used, and the processing environment.
    `void` | `setProcessors​(Collection<? extends ResponsibleParty> newValues)` | Identification of, and means of communication with, person(s) and organization(s) associated with the process step.
    `void` | `setRationale​(InternationalString newValue)` | Sets the requirement or purpose for the process step.
    `void` | `setReferences​(Collection<? extends Citation> newValues)` | Sets the process step documentation.
    `void` | `setReports​(Collection<? extends ProcessStepReport> newValues)` | Sets the report generated by the process step.
    `void` | `setScope​(Scope newValue)` | Sets the type of resource and / or extent to which the process step applies.
    `void` | `setSources​(Collection<? extends Source> newValues)` | Information about the source data used in creating the data specified by the scope.
    `void` | `setStepDateTime​(TemporalPrimitive newValue)` | Sets the date, time or range of date and time over which the process step occurred.

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

    - #### DefaultProcessStep

          public DefaultProcessStep()

      Creates an initially empty process step.

    - #### DefaultProcessStep

          public DefaultProcessStep​(CharSequence description)

      Creates a process step initialized to the given description.
      Parameters:
        `description` - description of the event, including related parameters or tolerances.

    - #### DefaultProcessStep

          public DefaultProcessStep​(ProcessStep 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(ProcessStep)`

  - ### Method Detail

    - #### castOrCopy

          public static DefaultProcessStep castOrCopy​(ProcessStep 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 `DefaultProcessStep`, then it is returned unchanged.
      - Otherwise a new `DefaultProcessStep` 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 event, including related parameters or tolerances.
      Specified by:
        `getDescription` in interface `ProcessStep`
      Returns:
        description of the event, or `null`.

    - #### setDescription

          public void setDescription​(InternationalString newValue)

      Sets the description of the event, including related parameters or tolerances.
      Parameters:
        `newValue` - the new description.

    - #### getRationale

          public InternationalString getRationale()

      Returns the requirement or purpose for the process step.
      Specified by:
        `getRationale` in interface `ProcessStep`
      Returns:
        requirement or purpose for the process step, or `null`.

    - #### setRationale

          public void setRationale​(InternationalString newValue)

      Sets the requirement or purpose for the process step.
      Parameters:
        `newValue` - the new rationale.

    - #### getStepDateTime

          public TemporalPrimitive getStepDateTime()

      Returns the date, time or range of date and time over which the process step occurred.
      Returns:
        date, time or period over which the process step occurred, or `null`.
      Since:
        1.0

    - #### setStepDateTime

          public void setStepDateTime​(TemporalPrimitive newValue)

      Sets the date, time or range of date and time over which the process step occurred.
      Parameters:
        `newValue` - the new date, time or period.
      Since:
        1.0

    - #### getDate

          @Deprecated
          public Date getDate()

      Deprecated.
      As of ISO 19115-1:2014, replaced by `getStepDateTime()`.
      Returns the date and time or range of date and time on or over which the process step occurred.
      Specified by:
        `getDate` in interface `ProcessStep`
      Returns:
        date on or over which the process step occurred, or `null`.

    - #### setDate

          @Deprecated
          public void setDate​(Date newValue)

      Deprecated.
      As of ISO 19115-1:2014, replaced by `setStepDateTime(TemporalPrimitive)`.
      Sets the date and time or range of date and time on or over which the process step occurred.
      Parameters:
        `newValue` - the new date.

    - #### getProcessors

          public Collection<ResponsibleParty> getProcessors()

      Returns the identification of, and means of communication with, person(s) and organization(s) associated with the process step.
      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:
        `getProcessors` in interface `ProcessStep`
      Returns:
        means of communication with person(s) and organization(s) associated with the process step.

    - #### setProcessors

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

      Identification of, and means of communication with, person(s) and organization(s) associated with the process step.
      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 processors.

    - #### getReferences

          @UML(identifier="reference",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public Collection<Citation> getReferences()

      Returns the process step documentation.
      Returns:
        process step documentation.
      Since:
        0.5

    - #### setReferences

          public void setReferences​(Collection<? extends Citation> newValues)

      Sets the process step documentation.
      Parameters:
        `newValues` - the new documentation.
      Since:
        0.5

    - #### getScope

          @UML(identifier="scope",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public Scope getScope()

      Returns the type of resource and / or extent to which the process step applies.
      Returns:
        type of resource, or `null` if none.
      Since:
        0.5

    - #### setScope

          public void setScope​(Scope newValue)

      Sets the type of resource and / or extent to which the process step applies.
      Parameters:
        `newValue` - the new type of resource.
      Since:
        0.5

    - #### getSources

          public Collection<Source> getSources()

      Returns the information about the source data used in creating the data specified by the scope.
      Specified by:
        `getSources` in interface `ProcessStep`
      Returns:
        information about the source data used in creating the data.

    - #### setSources

          public void setSources​(Collection<? extends Source> newValues)

      Information about the source data used in creating the data specified by the scope.
      Parameters:
        `newValues` - the new sources.

    - #### getOutputs

          public Collection<Source> getOutputs()

      Returns the description of the product generated as a result of the process step.
      Specified by:
        `getOutputs` in interface `ProcessStep`
      Returns:
        product generated as a result of the process step.

    - #### setOutputs

          public void setOutputs​(Collection<? extends Source> newValues)

      Sets the description of the product generated as a result of the process step.
      Parameters:
        `newValues` - the new output values.

    - #### getProcessingInformation

          public Processing getProcessingInformation()

      Returns the comprehensive information about the procedure by which the algorithm was applied to derive geographic data from the raw instrument measurements, such as datasets, software used, and the processing environment.
      Specified by:
        `getProcessingInformation` in interface `ProcessStep`
      Returns:
        procedure by which the algorithm was applied to derive geographic data, or `null`.

    - #### setProcessingInformation

          public void setProcessingInformation​(Processing newValue)

      Sets the comprehensive information about the procedure by which the algorithm was applied to derive geographic data from the raw instrument measurements, such as datasets, software used, and the processing environment.
      Parameters:
        `newValue` - the new processing information value.

    - #### getReports

          public Collection<ProcessStepReport> getReports()

      Returns the report generated by the process step.
      Specified by:
        `getReports` in interface `ProcessStep`
      Returns:
        report generated by the process step.

    - #### setReports

          public void setReports​(Collection<? extends ProcessStepReport> newValues)

      Sets the report generated by the process step.
      Parameters:
        `newValues` - the new process step report values.