# 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

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

  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`

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

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

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