# Class DefaultFeatureCatalogueDescription

Object
AbstractMetadata
ModifiableMetadata
ISOMetadata
AbstractContentInformation
DefaultFeatureCatalogueDescription

All Implemented Interfaces:
  `Serializable, Emptiable, LenientComparable, IdentifiedObject, ContentInformation, FeatureCatalogueDescription`

public class DefaultFeatureCatalogueDescription extends AbstractContentInformation implements FeatureCatalogueDescription
Information identifying the feature catalogue or the conceptual schema. The following properties are mandatory in a well-formed metadata according ISO 19115:
`MD_FeatureCatalogueDescription` `├─includedWithDataset…………………` Indication of whether or not the feature catalogue is included with the dataset. `└─featureCatalogueCitation……` Complete bibliographic reference to one or more external feature catalogues. `├─title……………………………………………` Name by which the cited resource is known. `└─date………………………………………………` Reference date for the cited resource.

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

- ## 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
  `DefaultFeatureCatalogueDescription()`
  Constructs an initially empty feature catalogue description.
  `DefaultFeatureCatalogueDescription(FeatureCatalogueDescription object)`
  Constructs a new instance initialized with the values from the specified metadata object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static DefaultFeatureCatalogueDescription`
  `castOrCopy(FeatureCatalogueDescription object)`
  Returns a SIS metadata implementation with the values of the given arbitrary implementation.
  `Collection<Citation>`
  `getFeatureCatalogueCitations()`
  Returns the complete bibliographic reference to one or more external feature catalogues.
  `Collection<DefaultFeatureTypeInfo>`
  `getFeatureTypeInfo()`
  Returns the subset of feature types from cited feature catalogue occurring in resource.
  `final Collection<GenericName>`
  `getFeatureTypes()`
  Deprecated.
  As of ISO 19115:2014, replaced by `getFeatureTypeInfo()`.
  `Collection<Locale>`
  `getLanguages()`
  Deprecated.
  Replaced by `getLocalesAndCharsets()​.keySet()`.
  `Map<Locale,Charset>`
  `getLocalesAndCharsets()`
  Returns the language(s) and character set(s) used within the catalogue.
  `Boolean`
  `isCompliant()`
  Returns whether or not the cited feature catalogue complies with ISO 19110.
  `boolean`
  `isIncludedWithDataset()`
  Returns whether or not the feature catalogue is included with the resource.
  `void`
  `setCompliant(Boolean newValue)`
  Sets whether or not the cited feature catalogue complies with ISO 19110.
  `void`
  `setFeatureCatalogueCitations(Collection<? extends Citation> newValues)`
  Sets the complete bibliographic reference to one or more external feature catalogues.
  `void`
  `setFeatureTypeInfo(Collection<? extends DefaultFeatureTypeInfo> newValues)`
  Sets the subset of feature types from cited feature catalogue occurring in resource.
  `void`
  `setFeatureTypes(Collection<? extends GenericName> newValues)`
  Deprecated.
  As of ISO 19115:2014, replaced by `setFeatureTypeInfo(Collection)`.
  `void`
  `setIncludedWithDataset(boolean newValue)`
  Sets whether or not the feature catalogue is included with the resource.
  `void`
  `setLanguages(Collection<? extends Locale> newValues)`
  Deprecated.
  Replaced by putting keys in `getLocalesAndCharsets()` map.
  `void`
  `setLocalesAndCharsets(Map<? extends Locale, ? extends Charset> newValues)`
  Sets the language(s) and character set(s) used within the catalogue.

  ### Methods inherited from class AbstractContentInformation

  `castOrCopy`

  ### Methods inherited from class ISOMetadata

  `getIdentifier, getIdentifierMap, getIdentifiers, getStandard, setIdentifier`

  ### Methods inherited from class ModifiableMetadata

  `checkWritePermission, 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

  - ### DefaultFeatureCatalogueDescription

    public DefaultFeatureCatalogueDescription()
    Constructs an initially empty feature catalogue description.

  - ### DefaultFeatureCatalogueDescription

    public DefaultFeatureCatalogueDescription(FeatureCatalogueDescription 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.
    See Also:
      - `castOrCopy(FeatureCatalogueDescription)`

- ## Method Details

  - ### castOrCopy

    public static DefaultFeatureCatalogueDescription castOrCopy(FeatureCatalogueDescription 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 `DefaultFeatureCatalogueDescription`, then it is returned unchanged.
    - Otherwise a new `DefaultFeatureCatalogueDescription` instance is created using the copy constructor and returned. Note that this is a shallow copy operation, because 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.

  - ### isCompliant

    public Boolean isCompliant()
    Returns whether or not the cited feature catalogue complies with ISO 19110.
    Specified by:
      `isCompliant` in interface `FeatureCatalogueDescription`
    Returns:
      whether or not the cited feature catalogue complies with ISO 19110, or `null`.

  - ### setCompliant

    public void setCompliant(Boolean newValue)
    Sets whether or not the cited feature catalogue complies with ISO 19110.
    Parameters:
      `newValue` - the new compliance value.

  - ### getLocalesAndCharsets

    @UML(identifier="locale", obligation=CONDITIONAL, specification=ISO_19115) public Map<Locale,Charset> getLocalesAndCharsets()
    Returns the language(s) and character set(s) used within the catalogue.
    Returns:
      language(s) and character set(s) used within the catalogue.
    Since:
      1.0

  - ### setLocalesAndCharsets

    public void setLocalesAndCharsets(Map<? extends Locale, ? extends Charset> newValues)
    Sets the language(s) and character set(s) used within the catalogue.
    Parameters:
      `newValues` - the new language(s) and character set(s) used within the catalogue.
    Since:
      1.0

  - ### getLanguages

    @Deprecated(since="1.0") public Collection<Locale> getLanguages()
    Deprecated.
    Replaced by `getLocalesAndCharsets()​.keySet()`.
    Returns the language(s) used within the catalogue.
    Specified by:
      `getLanguages` in interface `FeatureCatalogueDescription`
    Returns:
      language(s) used within the catalogue.

  - ### setLanguages

    @Deprecated(since="1.0") public void setLanguages(Collection<? extends Locale> newValues)
    Deprecated.
    Replaced by putting keys in `getLocalesAndCharsets()` map.
    Sets the language(s) used within the catalogue.
    Parameters:
      `newValues` - the new languages.

  - ### isIncludedWithDataset

    public boolean isIncludedWithDataset()
    Returns whether or not the feature catalogue is included with the resource.
    Specified by:
      `isIncludedWithDataset` in interface `FeatureCatalogueDescription`
    Returns:
      whether or not the feature catalogue is included with the resource.

  - ### setIncludedWithDataset

    public void setIncludedWithDataset(boolean newValue)
    Sets whether or not the feature catalogue is included with the resource.
    Parameters:
      `newValue` - `true` if the feature catalogue is included.

  - ### getFeatureTypeInfo

    @UML(identifier="featureTypes", obligation=OPTIONAL, specification=ISO_19115) public Collection<DefaultFeatureTypeInfo> getFeatureTypeInfo()
    Returns the subset of feature types from cited feature catalogue occurring in resource.
    Upcoming API change — generalization
    The element type will be changed to the `FeatureTypeInfo` interface when GeoAPI will provide it (tentatively in GeoAPI 3.1).
    Returns:
      subset of feature types occurring in resource.
    Since:
      0.5

  - ### setFeatureTypeInfo

    public void setFeatureTypeInfo(Collection<? extends DefaultFeatureTypeInfo> newValues)
    Sets the subset of feature types from cited feature catalogue occurring in resource.
    Upcoming API change — generalization
    The element type will be changed to the `FeatureTypeInfo` interface when GeoAPI will provide it (tentatively in GeoAPI 3.1).
    Parameters:
      `newValues` - the new feature types.
    Since:
      0.5

  - ### getFeatureTypes

    @Deprecated(since="1.0") public final Collection<GenericName> getFeatureTypes()
    Deprecated.
    As of ISO 19115:2014, replaced by `getFeatureTypeInfo()`.
    Returns the names of feature types.
    Specified by:
      `getFeatureTypes` in interface `FeatureCatalogueDescription`
    Returns:
      the feature type names.

  - ### setFeatureTypes

    @Deprecated(since="1.0") public void setFeatureTypes(Collection<? extends GenericName> newValues)
    Deprecated.
    As of ISO 19115:2014, replaced by `setFeatureTypeInfo(Collection)`.
    Sets the names of feature types.
    Parameters:
      `newValues` - the new feature type names.

  - ### getFeatureCatalogueCitations

    public Collection<Citation> getFeatureCatalogueCitations()
    Returns the complete bibliographic reference to one or more external feature catalogues.
    Specified by:
      `getFeatureCatalogueCitations` in interface `FeatureCatalogueDescription`
    Returns:
      bibliographic reference to one or more external feature catalogues.

  - ### setFeatureCatalogueCitations

    public void setFeatureCatalogueCitations(Collection<? extends Citation> newValues)
    Sets the complete bibliographic reference to one or more external feature catalogues.
    Parameters:
      `newValues` - the feature catalogue citations.