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

## Class DefaultKeywordClass

- Object
- - AbstractMetadata
  - - ModifiableMetadata
    - - ISOMetadata
      - - DefaultKeywordClass

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

      @TitleProperty(name="className")
      public class DefaultKeywordClass
      extends ISOMetadata

  Specification of a class to categorize keywords in a domain-specific vocabulary that has a binding to a formal ontology. The following properties are mandatory in a well-formed metadata according ISO 19115:
  `MD_KeywordClass` `├─className………………………` Character string to label the keyword category in natural language. `└─ontology…………………………` Reference that binds the keyword class to a formal conceptualization of a knowledge domain. `├─title………………………` Name by which the cited resource is known. `└─date…………………………` Reference date for the cited resource.
  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 `KeywordClass` 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

  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
    --- | ---
    `DefaultKeywordClass()` | Constructs an initially empty keyword class.
    `DefaultKeywordClass​(CharSequence className, Citation ontology)` | Creates keyword class initialized to the given key name and ontology.
    `DefaultKeywordClass​(DefaultKeywordClass object)` | Constructs a new instance initialized with the values from the specified metadata object.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `InternationalString` | `getClassName()` | Returns a label for the keyword category in natural language.
    `URI` | `getConceptIdentifier()` | Returns the URI of concept in the ontology specified by the ontology citation.
    `Citation` | `getOntology()` | Returns a reference that binds the keyword class to a formal conceptualization of a knowledge domain.
    `void` | `setClassName​(InternationalString newValue)` | Sets a label for the keyword category in natural language.
    `void` | `setConceptIdentifier​(URI newValue)` | Sets the URI of concept in the ontology specified by the ontology citation.
    `void` | `setOntology​(Citation newValue)` | Sets a reference that binds the keyword class to a formal conceptualization of a knowledge domain.

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

    - #### DefaultKeywordClass

          public DefaultKeywordClass()

      Constructs an initially empty keyword class.

    - #### DefaultKeywordClass

          public DefaultKeywordClass​(CharSequence className,
                                     Citation ontology)

      Creates keyword class initialized to the given key name and ontology.
      Parameters:
        `className` - a character string to label the keyword category in natural language.
        `ontology` - reference that binds the keyword class to a formal conceptualization of a knowledge domain.

    - #### DefaultKeywordClass

          public DefaultKeywordClass​(DefaultKeywordClass 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.

  - ### Method Detail

    - #### getClassName

          public InternationalString getClassName()

      Returns a label for the keyword category in natural language.
      Returns:
        the keyword category in natural language.

    - #### setClassName

          public void setClassName​(InternationalString newValue)

      Sets a label for the keyword category in natural language.
      Parameters:
        `newValue` - the new keyword category in natural language.

    - #### getConceptIdentifier

          public URI getConceptIdentifier()

      Returns the URI of concept in the ontology specified by the ontology citation.
      Returns:
        URI of concept in the ontology, or `null` if none.

    - #### setConceptIdentifier

          public void setConceptIdentifier​(URI newValue)

      Sets the URI of concept in the ontology specified by the ontology citation.
      Parameters:
        `newValue` - the new URI of concept in the ontology.

    - #### getOntology

          public Citation getOntology()

      Returns a reference that binds the keyword class to a formal conceptualization of a knowledge domain.
      Returns:
        a reference that binds the keyword class to a formal conceptualization.

    - #### setOntology

          public void setOntology​(Citation newValue)

      Sets a reference that binds the keyword class to a formal conceptualization of a knowledge domain.
      Parameters:
        `newValue` - the new reference that binds the keyword class to a formal conceptualization.