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

  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, collectionType, copyCollection, copyList, copyMap, copySet, deepCopy, nonNullCollection, nonNullList, nonNullMap, nonNullSet, singleton, state, 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 Details

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

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