# 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

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

  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`

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

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

- ## Method Details

  - ### 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, 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 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(since="1.0") 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(since="1.0") 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.