# Class DefaultProcessing

Object
AbstractMetadata
ModifiableMetadata
ISOMetadata
DefaultProcessing

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

public class DefaultProcessing extends ISOMetadata implements Processing
Comprehensive information about the procedure(s), process(es) and algorithm(s) applied in the process step. The following properties are mandatory in a well-formed metadata according ISO 19115:
`LE_Processing` `└─identifier……` Information to identify the processing package that produced the data. `└─code…………` Alphanumeric value identifying an instance in the namespace.

## 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
  `DefaultProcessing()`
  Constructs an initially empty range element description.
  `DefaultProcessing(Processing object)`
  Constructs a new instance initialized with the values from the specified metadata object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static DefaultProcessing`
  `castOrCopy(Processing object)`
  Returns a SIS metadata implementation with the values of the given arbitrary implementation.
  `Collection<Algorithm>`
  `getAlgorithms()`
  Returns the details of the methodology by which geographic information was derived from the instrument readings.
  `Collection<Citation>`
  `getDocumentations()`
  Returns the reference to documentation describing the processing.
  `Identifier`
  `getIdentifier()`
  Returns the information to identify the processing package that produced the data.
  `InternationalString`
  `getProcedureDescription()`
  Returns the additional details about the processing procedures.
  `InternationalString`
  `getRunTimeParameters()`
  Returns the parameters to control the processing operations, entered at run time.
  `Collection<Citation>`
  `getSoftwareReferences()`
  Returns the reference to document describing processing software.
  `void`
  `setAlgorithms(Collection<? extends Algorithm> newValues)`
  Sets the details of the methodology by which geographic information was derived from the instrument readings.
  `void`
  `setDocumentations(Collection<? extends Citation> newValues)`
  Sets the reference to documentation describing the processing.
  `void`
  `setIdentifier(Identifier newValue)`
  Sets the information to identify the processing package that produced the data.
  `void`
  `setProcedureDescription(InternationalString newValue)`
  Sets the additional details about the processing procedures.
  `void`
  `setRunTimeParameters(InternationalString newValue)`
  Sets the parameters to control the processing operations, entered at run time.
  `void`
  `setSoftwareReferences(Collection<? extends Citation> newValues)`
  Sets the reference to document describing processing software.

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

  - ### DefaultProcessing

    public DefaultProcessing()
    Constructs an initially empty range element description.

  - ### DefaultProcessing

    public DefaultProcessing(Processing 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(Processing)`

- ## Method Details

  - ### castOrCopy

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

  - ### getIdentifier

    public Identifier getIdentifier()
    Returns the information to identify the processing package that produced the data.
    Specified by:
      `getIdentifier` in interface `Processing`
    Overrides:
      `getIdentifier` in class `ISOMetadata`
    Returns:
      identifier of the processing package that produced the data, or `null`.

  - ### setIdentifier

    public void setIdentifier(Identifier newValue)
    Sets the information to identify the processing package that produced the data.
    Overrides:
      `setIdentifier` in class `ISOMetadata`
    Parameters:
      `newValue` - the new identifier value.

  - ### getSoftwareReferences

    public Collection<Citation> getSoftwareReferences()
    Returns the reference to document describing processing software.
    Specified by:
      `getSoftwareReferences` in interface `Processing`
    Returns:
      document describing processing software.

  - ### setSoftwareReferences

    public void setSoftwareReferences(Collection<? extends Citation> newValues)
    Sets the reference to document describing processing software.
    Parameters:
      `newValues` - the new software references values.

  - ### getProcedureDescription

    public InternationalString getProcedureDescription()
    Returns the additional details about the processing procedures. `null` if unspecified.
    Specified by:
      `getProcedureDescription` in interface `Processing`
    Returns:
      processing procedures, or `null`.

  - ### setProcedureDescription

    public void setProcedureDescription(InternationalString newValue)
    Sets the additional details about the processing procedures.
    Parameters:
      `newValue` - the new procedure description value.

  - ### getDocumentations

    public Collection<Citation> getDocumentations()
    Returns the reference to documentation describing the processing.
    Specified by:
      `getDocumentations` in interface `Processing`
    Returns:
      documentation describing the processing.

  - ### setDocumentations

    public void setDocumentations(Collection<? extends Citation> newValues)
    Sets the reference to documentation describing the processing.
    Parameters:
      `newValues` - the new documentations values.

  - ### getRunTimeParameters

    public InternationalString getRunTimeParameters()
    Returns the parameters to control the processing operations, entered at run time.
    Specified by:
      `getRunTimeParameters` in interface `Processing`
    Returns:
      parameters to control the processing operations, or `null`.

  - ### setRunTimeParameters

    public void setRunTimeParameters(InternationalString newValue)
    Sets the parameters to control the processing operations, entered at run time.
    Parameters:
      `newValue` - the new runtime parameter value.

  - ### getAlgorithms

    public Collection<Algorithm> getAlgorithms()
    Returns the details of the methodology by which geographic information was derived from the instrument readings.
    Specified by:
      `getAlgorithms` in interface `Processing`
    Returns:
      methodology by which geographic information was derived from the instrument readings.

  - ### setAlgorithms

    public void setAlgorithms(Collection<? extends Algorithm> newValues)
    Sets the details of the methodology by which geographic information was derived from the instrument readings.
    Parameters:
      `newValues` - the new algorithms values.