Package org.apache.sis.metadata.iso.distribution

## Class DefaultStandardOrderProcess

- Object
- - AbstractMetadata
  - - ModifiableMetadata
    - - ISOMetadata
      - - DefaultStandardOrderProcess

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

      public class DefaultStandardOrderProcess
      extends ISOMetadata
      implements StandardOrderProcess

  Common ways in which the resource may be obtained or received, and related instructions and fee information.

  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
    --- | ---
    `DefaultStandardOrderProcess()` | Constructs an initially empty standard order process.
    `DefaultStandardOrderProcess​(StandardOrderProcess 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 DefaultStandardOrderProcess` | `castOrCopy​(StandardOrderProcess object)` | Returns a SIS metadata implementation with the values of the given arbitrary implementation.
    `Currency` | `getCurrency()` | Returns the monetary units of the `fees` (as specified in ISO 4217).
    `InternationalString` | `getFees()` | Returns fees and terms for retrieving the resource.
    `InternationalString` | `getOrderingInstructions()` | Returns general instructions, terms and services provided by the distributor.
    `Record` | `getOrderOptions()` | Returns the request/purchase choices.
    `RecordType` | `getOrderOptionsType()` | Returns the description of the order options record.
    `RecordType` | `getOrderOptionType()` | Deprecated. Renamed `getOrderOptionsType()` for ISO 19115 conformance.
    `Date` | `getPlannedAvailableDateTime()` | Returns the date and time when the dataset will be available.
    `InternationalString` | `getTurnaround()` | Returns typical turnaround time for the filling of an order.
    `void` | `setCurrency​(Currency newValue)` | Sets the monetary units of the `fees` (as specified in ISO 4217).
    `void` | `setFees​(InternationalString newValue)` | Sets fees and terms for retrieving the resource.
    `void` | `setOrderingInstructions​(InternationalString newValue)` | Sets general instructions, terms and services provided by the distributor.
    `void` | `setOrderOptions​(Record newValue)` | Sets the request/purchase choices.
    `void` | `setOrderOptionsType​(RecordType newValue)` | Sets the description of the order options record.
    `void` | `setOrderOptionType​(RecordType newValue)` | Deprecated. Renamed `setOrderOptionsType(RecordType)` for ISO 19115 conformance.
    `void` | `setPlannedAvailableDateTime​(Date newValue)` | Sets the date and time when the dataset will be available.
    `void` | `setTurnaround​(InternationalString newValue)` | Sets typical turnaround time for the filling of an order.

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

    - #### DefaultStandardOrderProcess

          public DefaultStandardOrderProcess()

      Constructs an initially empty standard order process.

    - #### DefaultStandardOrderProcess

          public DefaultStandardOrderProcess​(StandardOrderProcess 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(StandardOrderProcess)`

  - ### Method Detail

    - #### castOrCopy

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

    - #### getFees

          public InternationalString getFees()

      Returns fees and terms for retrieving the resource. Include monetary units (as specified in ISO 4217). The monetary units may also be available with `getCurrency()`.
      Specified by:
        `getFees` in interface `StandardOrderProcess`
      Returns:
        fees and terms for retrieving the resource, or `null`.
      See Also:
        `getCurrency()`

    - #### setFees

          public void setFees​(InternationalString newValue)

      Sets fees and terms for retrieving the resource. Include monetary units (as specified in ISO 4217).
      Parameters:
        `newValue` - the new fees.
      See Also:
        `setCurrency(Currency)`

    - #### getCurrency

          public Currency getCurrency()

      Returns the monetary units of the `fees` (as specified in ISO 4217).

      Constraints:
      For ISO 19115 compatibility reasons, this method is not required to return a non-null value even if the text returned by `getFees()` contains a currency units. However if this method returns a non-null value, then that value is required to be consistent with the fees text.

      Returns:
        the fees monetary units, or `null` if none or unknown.
      Since:
        0.5
      See Also:
        `getFees()`

    - #### setCurrency

          public void setCurrency​(Currency newValue)

      Sets the monetary units of the `fees` (as specified in ISO 4217). Callers should ensure that the given currency is consistent with the currency in the fees text.
      Parameters:
        `newValue` - the new currency.
      Since:
        0.5
      See Also:
        `setFees(InternationalString)`

    - #### getPlannedAvailableDateTime

          public Date getPlannedAvailableDateTime()

      Returns the date and time when the dataset will be available.
      Specified by:
        `getPlannedAvailableDateTime` in interface `StandardOrderProcess`
      Returns:
        date and time when the dataset will be available, or `null`.

    - #### setPlannedAvailableDateTime

          public void setPlannedAvailableDateTime​(Date newValue)

      Sets the date and time when the dataset will be available.
      Parameters:
        `newValue` - the new planned available time.

    - #### getOrderingInstructions

          public InternationalString getOrderingInstructions()

      Returns general instructions, terms and services provided by the distributor.
      Specified by:
        `getOrderingInstructions` in interface `StandardOrderProcess`
      Returns:
        general instructions, terms and services provided by the distributor, or `null`.

    - #### setOrderingInstructions

          public void setOrderingInstructions​(InternationalString newValue)

      Sets general instructions, terms and services provided by the distributor.
      Parameters:
        `newValue` - the new ordering instructions.

    - #### getTurnaround

          public InternationalString getTurnaround()

      Returns typical turnaround time for the filling of an order.
      Specified by:
        `getTurnaround` in interface `StandardOrderProcess`
      Returns:
        typical turnaround time for the filling of an order, or `null`.

    - #### setTurnaround

          public void setTurnaround​(InternationalString newValue)

      Sets typical turnaround time for the filling of an order.
      Parameters:
        `newValue` - the new turnaround.

    - #### getOrderOptionsType

          @UML(identifier="orderOptionsType",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public RecordType getOrderOptionsType()

      Returns the description of the order options record.
      Returns:
        description of the order options record, or `null` if none.
      Since:
        1.0
      See Also:
        `DefaultRecord​.getRecordType()`

    - #### getOrderOptionType

          public RecordType getOrderOptionType()

      Deprecated.
      Renamed `getOrderOptionsType()` for ISO 19115 conformance.
      Returns:
        description of the order options record, or `null` if none.
      Since:
        0.5

    - #### setOrderOptionsType

          public void setOrderOptionsType​(RecordType newValue)

      Sets the description of the order options record.
      Parameters:
        `newValue` - new description of the order options record.
      Since:
        1.0

    - #### setOrderOptionType

          @Deprecated
          public void setOrderOptionType​(RecordType newValue)

      Deprecated.
      Renamed `setOrderOptionsType(RecordType)` for ISO 19115 conformance.
      Parameters:
        `newValue` - new description of the order options record.
      Since:
        0.5

    - #### getOrderOptions

          @UML(identifier="orderOptions",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public Record getOrderOptions()

      Returns the request/purchase choices.
      Returns:
        request/purchase choices.
      Since:
        0.5
      TODO:
        We presume that this record is filled by the vendor for describing the options chosen by the client when he ordered the resource. We presume that this is not a record to be filled by the user for new orders, otherwise this method would need to be a factory rather than a getter.

    - #### setOrderOptions

          public void setOrderOptions​(Record newValue)

      Sets the request/purchase choices.
      Parameters:
        `newValue` - the new request/purchase choices.
      Since:
        0.5