Package org.apache.sis.metadata.iso.citation

## Class DefaultOnlineResource

- Object
- - AbstractMetadata
  - - ModifiableMetadata
    - - ISOMetadata
      - - DefaultOnlineResource

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

      public class DefaultOnlineResource
      extends ISOMetadata
      implements OnlineResource

  Information about on-line sources from which the dataset, specification, or community profile name and extended metadata elements can be obtained. The following property is mandatory in a well-formed metadata according ISO 19115:
  `CI_OnlineResource` `└─linkage………………` Location (address) for on-line access using a Uniform Resource Locator address or similar addressing scheme.

  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
    --- | ---
    `DefaultOnlineResource()` | Creates an initially empty on line resource.
    `DefaultOnlineResource​(URI linkage)` | Creates an on line resource initialized to the given URI.
    `DefaultOnlineResource​(OnlineResource object)` | Constructs a new instance initialized with the values from the specified metadata object.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static DefaultOnlineResource` | `castOrCopy​(OnlineResource object)` | Returns a SIS metadata implementation with the values of the given arbitrary implementation.
    `String` | `getApplicationProfile()` | Returns the name of an application profile that can be used with the online resource.
    `InternationalString` | `getDescription()` | Returns the detailed text description of what the online resource is/does.
    `OnLineFunction` | `getFunction()` | Returns the code for function performed by the online resource.
    `URI` | `getLinkage()` | Returns the location (address) for on-line access using a Uniform Resource Locator address or similar addressing scheme.
    `String` | `getName()` | Name of the online resource.
    `String` | `getProtocol()` | Returns the connection protocol to be used.
    `String` | `getProtocolRequest()` | Returns the request used to access the resource depending on the protocol.
    `void` | `setApplicationProfile​(String newValue)` | Sets the name of an application profile that can be used with the online resource.
    `void` | `setDescription​(InternationalString newValue)` | Sets the detailed text description of what the online resource is/does.
    `void` | `setFunction​(OnLineFunction newValue)` | Sets the code for function performed by the online resource.
    `void` | `setLinkage​(URI newValue)` | Sets the location (address) for on-line access using a Uniform Resource Locator address or similar addressing scheme such as "`http://www​.statkart​.no/isotc211`".
    `void` | `setName​(String newValue)` | Sets the name of the online resource.
    `void` | `setProtocol​(String newValue)` | Sets the connection protocol to be used.
    `void` | `setProtocolRequest​(String newValue)` | Sets the request to be used.

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

    - #### DefaultOnlineResource

          public DefaultOnlineResource()

      Creates an initially empty on line resource.

    - #### DefaultOnlineResource

          public DefaultOnlineResource​(URI linkage)

      Creates an on line resource initialized to the given URI.
      Parameters:
        `linkage` - the location for on-line access using a Uniform Resource Locator address, or `null` if none.

    - #### DefaultOnlineResource

          public DefaultOnlineResource​(OnlineResource 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(OnlineResource)`

  - ### Method Detail

    - #### castOrCopy

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

    - #### getApplicationProfile

          public String getApplicationProfile()

      Returns the name of an application profile that can be used with the online resource. Returns `null` if none.
      Specified by:
        `getApplicationProfile` in interface `OnlineResource`
      Returns:
        application profile that can be used with the online resource, or `null`.

    - #### setApplicationProfile

          public void setApplicationProfile​(String newValue)

      Sets the name of an application profile that can be used with the online resource.
      Parameters:
        `newValue` - the new application profile.

    - #### getName

          public String getName()

      Name of the online resource. Returns `null` if none.
      Upcoming API change — internationalization
      The return type may be changed from `String` to `InternationalString` in GeoAPI 4.0.
      Specified by:
        `getName` in interface `OnlineResource`
      Returns:
        name of the online resource, or `null`.

    - #### setName

          public void setName​(String newValue)

      Sets the name of the online resource.
      Upcoming API change — internationalization
      The argument type may be changed from `String` to `InternationalString` in GeoAPI 4.0.
      Parameters:
        `newValue` - the new name, or `null` if none.

    - #### getDescription

          public InternationalString getDescription()

      Returns the detailed text description of what the online resource is/does.
      Specified by:
        `getDescription` in interface `OnlineResource`
      Returns:
        text description of what the online resource is/does, or `null`.

    - #### setDescription

          public void setDescription​(InternationalString newValue)

      Sets the detailed text description of what the online resource is/does.
      Parameters:
        `newValue` - the new description, or `null` if none.

    - #### getFunction

          public OnLineFunction getFunction()

      Returns the code for function performed by the online resource.
      Specified by:
        `getFunction` in interface `OnlineResource`
      Returns:
        function performed by the online resource, or `null`.

    - #### setFunction

          public void setFunction​(OnLineFunction newValue)

      Sets the code for function performed by the online resource.
      Parameters:
        `newValue` - the new function, or `null` if none.

    - #### getLinkage

          public URI getLinkage()

      Returns the location (address) for on-line access using a Uniform Resource Locator address or similar addressing scheme.
      Specified by:
        `getLinkage` in interface `OnlineResource`
      Returns:
        location for on-line access using a Uniform Resource Locator address or similar scheme, or `null`.

    - #### setLinkage

          public void setLinkage​(URI newValue)

      Sets the location (address) for on-line access using a Uniform Resource Locator address or similar addressing scheme such as "`http://www​.statkart​.no/isotc211`".
      Parameters:
        `newValue` - the new linkage, or `null` if none.

    - #### getProtocol

          public String getProtocol()

      Returns the connection protocol to be used.
      Example: ftp, http get KVP, http POST, etc.
      Specified by:
        `getProtocol` in interface `OnlineResource`
      Returns:
        connection protocol to be used, or `null`.

    - #### setProtocol

          public void setProtocol​(String newValue)

      Sets the connection protocol to be used.
      Parameters:
        `newValue` - the new protocol, or `null` if none.

    - #### getProtocolRequest

          @UML(identifier="protocolRequest",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public String getProtocolRequest()

      Returns the request used to access the resource depending on the protocol. This is used mainly for POST requests.
      Example:

      >     <GetFeature service="WFS" version="2.0.0"
      >                 outputFormat="application/gml+xml;verson=3.2"
      >                 xmlns="(…snip…)">
      >         <Query typeNames="Roads"/>
      >     </GetFeature>

      Returns:
        Request used to access the resource.
      Since:
        0.5

    - #### setProtocolRequest

          public void setProtocolRequest​(String newValue)

      Sets the request to be used.
      Parameters:
        `newValue` - the new request, or `null` if none.
      Since:
        0.5