# Class DefaultOperationChainMetadata

Object
AbstractMetadata
ModifiableMetadata
ISOMetadata
DefaultOperationChainMetadata

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

@TitleProperty(name="name") @UML(identifier="SV_OperationChainMetadata", specification=ISO_19115) public class DefaultOperationChainMetadata extends ISOMetadata
Operation chain information. The following properties are mandatory in a well-formed metadata according ISO 19115:
`SV_OperationChainMetadata` `├─name………………………………………………………………………………` The name as used by the service for this chain. `└─operation…………………………………………………………………` Information about the operations applied by the chain. `├─operationName……………………………………………` A unique identifier for this interface. `├─distributedComputingPlatform……` Distributed computing platforms on which the operation has been implemented. `└─connectPoint………………………………………………` Handle for accessing the service interface. `└─linkage…………………………………………………` Location for on-line access using a URL address or similar addressing scheme.
Note on International Standard versions
This class is derived from a new type defined in the ISO 19115 international standard published in 2014, while GeoAPI 3.0 is based on the version published in 2003. Consequently this implementation class does not yet implement a GeoAPI interface, but is expected to do so after the next GeoAPI releases. When the interface will become available, all references to this implementation class in Apache SIS will be replaced be references to the `OperationChainMetadata` interface.

## 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.5
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
  `DefaultOperationChainMetadata()`
  Constructs an initially empty operation chain metadata.
  `DefaultOperationChainMetadata(CharSequence name)`
  Constructs a new operation chain metadata initialized to the specified name.
  `DefaultOperationChainMetadata(DefaultOperationChainMetadata object)`
  Constructs a new instance initialized with the values from the specified metadata object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `InternationalString`
  `getDescription()`
  Returns a narrative explanation of the services in the chain and resulting output.
  `InternationalString`
  `getName()`
  Returns the name as used by the service for this chain.
  `List<DefaultOperationMetadata>`
  `getOperations()`
  Returns information about the operations applied by the chain.
  `void`
  `setDescription(InternationalString newValue)`
  Sets the narrative explanation of the services in the chain and resulting output.
  `void`
  `setName(InternationalString newValue)`
  Sets the name used by the service for this chain.
  `void`
  `setOperations(List<? extends DefaultOperationMetadata> newValues)`
  Sets the information about the operations applied by the chain.

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

  - ### DefaultOperationChainMetadata

    public DefaultOperationChainMetadata()
    Constructs an initially empty operation chain metadata.

  - ### DefaultOperationChainMetadata

    public DefaultOperationChainMetadata(CharSequence name)
    Constructs a new operation chain metadata initialized to the specified name.
    Parameters:
      `name` - the name as used by the service for this chain.

  - ### DefaultOperationChainMetadata

    public DefaultOperationChainMetadata(DefaultOperationChainMetadata 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.

- ## Method Details

  - ### getName

    @UML(identifier="name", obligation=MANDATORY, specification=ISO_19115) public InternationalString getName()
    Returns the name as used by the service for this chain.
    Returns:
      name as used by the service for this chain.

  - ### setName

    public void setName(InternationalString newValue)
    Sets the name used by the service for this chain.
    Parameters:
      `newValue` - the new name used by the service for this chain.

  - ### getDescription

    @UML(identifier="description", obligation=OPTIONAL, specification=ISO_19115) public InternationalString getDescription()
    Returns a narrative explanation of the services in the chain and resulting output.
    Returns:
      narrative explanation of the services in the chain and resulting output, or `null` if none.

  - ### setDescription

    public void setDescription(InternationalString newValue)
    Sets the narrative explanation of the services in the chain and resulting output.
    Parameters:
      `newValue` - the new a narrative explanation of the services in the chain and resulting output

  - ### getOperations

    @UML(identifier="operation", obligation=MANDATORY, specification=ISO_19115) public List<DefaultOperationMetadata> getOperations()
    Returns information about the operations applied by the chain.
    Upcoming API change — generalization
    The element type will be changed to the `OperationMetadata` interface when GeoAPI will provide it (tentatively in GeoAPI 3.1).
    Returns:
      information about the operations applied by the chain.

  - ### setOperations

    public void setOperations(List<? extends DefaultOperationMetadata> newValues)
    Sets the information about the operations applied by the chain.
    Upcoming API change — generalization
    The element type will be changed to the `OperationMetadata` interface when GeoAPI will provide it (tentatively in GeoAPI 3.1).
    Parameters:
      `newValues` - the new information about the operations applied by the chain.