# 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

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

  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`

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

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

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