Package org.apache.sis.metadata.iso.identification

## Class DefaultAssociatedResource

- Object
- - AbstractMetadata
  - - ModifiableMetadata
    - - ISOMetadata
      - - DefaultAssociatedResource

- All Implemented Interfaces:
    `Serializable`, `Emptiable`, `LenientComparable`, `IdentifiedObject`
  Direct Known Subclasses:
    `DefaultAggregateInformation`

      @UML(identifier="MD_AssociatedResource",
           specification=ISO_19115)
      public class DefaultAssociatedResource
      extends ISOMetadata

  Associated resource information. The following properties are mandatory or conditional (i.e. mandatory under some circumstances) in a well-formed metadata according ISO 19115:
  `MD_AssociatedResource` `├─associationType…………` Type of relation between the resources. `├─metadataReference……` Reference to the metadata of the associated resource. `│ ├─title…………………………` Name by which the cited resource is known. `│ └─date……………………………` Reference date for the cited resource. `└─name………………………………………` Citation information about the associated resource.
  According ISO 19115, at least one of name and metadata reference shall be provided.
  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

  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
    --- | ---
    `DefaultAssociatedResource()` | Constructs an initially empty associated resource.
    `DefaultAssociatedResource​(Citation name, AssociationType associationType)` | Constructs an associated resource initialized to the specified values.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `AssociationType` | `getAssociationType()` | Returns the type of relation between the resources.
    `InitiativeType` | `getInitiativeType()` | Returns the type of initiative under which the associated resource was produced, or `null` if none.
    `Citation` | `getMetadataReference()` | Return a reference to the metadata of the associated resource, or `null` if none.
    `Citation` | `getName()` | Returns citation information about the associated resource, or `null` if none.
    `void` | `setAssociationType​(AssociationType newValue)` | Sets the type of relation between the resources.
    `void` | `setInitiativeType​(InitiativeType newValue)` | Sets a new type of initiative under which the associated resource was produced.
    `void` | `setMetadataReference​(Citation newValue)` | Sets the reference to the metadata of the associated resource.
    `void` | `setName​(Citation newValue)` | Sets citation information about the associated resource.

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

    - #### DefaultAssociatedResource

          public DefaultAssociatedResource()

      Constructs an initially empty associated resource.

    - #### DefaultAssociatedResource

          public DefaultAssociatedResource​(Citation name,
                                           AssociationType associationType)

      Constructs an associated resource initialized to the specified values.
      Parameters:
        `name` - citation information about the associated resource.
        `associationType` - type of relation between the resources.

  - ### Method Detail

    - #### getName

          @UML(identifier="name",
               obligation=CONDITIONAL,
               specification=ISO_19115)
          public Citation getName()

      Returns citation information about the associated resource, or `null` if none.
      Returns:
        Citation information about the associated resource, or `null` if none.

    - #### setName

          public void setName​(Citation newValue)

      Sets citation information about the associated resource.
      Parameters:
        `newValue` - the new citation information, or `null`.

    - #### getAssociationType

          @UML(identifier="associationType",
               obligation=MANDATORY,
               specification=ISO_19115)
          public AssociationType getAssociationType()

      Returns the type of relation between the resources.
      Returns:
        type of relation between the resources.

    - #### setAssociationType

          public void setAssociationType​(AssociationType newValue)

      Sets the type of relation between the resources.
      Parameters:
        `newValue` - the new type of relation.

    - #### getInitiativeType

          @UML(identifier="initiativeType",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public InitiativeType getInitiativeType()

      Returns the type of initiative under which the associated resource was produced, or `null` if none.
      Returns:
        the type of initiative under which the associated resource was produced, or `null` if none.

    - #### setInitiativeType

          public void setInitiativeType​(InitiativeType newValue)

      Sets a new type of initiative under which the associated resource was produced.
      Parameters:
        `newValue` - the new type of initiative.

    - #### getMetadataReference

          @UML(identifier="metadataReference",
               obligation=CONDITIONAL,
               specification=ISO_19115)
          public Citation getMetadataReference()

      Return a reference to the metadata of the associated resource, or `null` if none.
      Returns:
        reference to the metadata of the associated resource, or `null` if none.

    - #### setMetadataReference

          public void setMetadataReference​(Citation newValue)

      Sets the reference to the metadata of the associated resource.
      Parameters:
        `newValue` - the new reference to the metadata.