Package org.apache.sis.metadata.iso.content

## Class DefaultFeatureTypeInfo

- Object
- - AbstractMetadata
  - - ModifiableMetadata
    - - ISOMetadata
      - - DefaultFeatureTypeInfo

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

      @TitleProperty(name="featureTypeName")
      @UML(identifier="MD_FeatureTypeInfo",
           specification=ISO_19115)
      public class DefaultFeatureTypeInfo
      extends ISOMetadata

  Information about the occurring feature type.
  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 `FeatureTypeInfo` 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:
    `FeatureNaming`, `DefaultFeatureType`, 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
    --- | ---
    `DefaultFeatureTypeInfo()` | Constructs an initially empty feature type info.
    `DefaultFeatureTypeInfo​(DefaultFeatureTypeInfo object)` | Constructs a new instance initialized with the values from the specified metadata object.
    `DefaultFeatureTypeInfo​(GenericName featureTypeName)` | Constructs a feature type info initialized to the specified name.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Integer` | `getFeatureInstanceCount()` | Returns the number of occurrence of feature instances for this feature types, or `null` if none.
    `GenericName` | `getFeatureTypeName()` | Returns the name of the feature type.
    `void` | `setFeatureInstanceCount​(Integer newValue)` | Sets a new number of occurrence of feature instances for this feature types.
    `void` | `setFeatureTypeName​(GenericName newValue)` | Sets the name of the feature type.

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

    - #### DefaultFeatureTypeInfo

          public DefaultFeatureTypeInfo()

      Constructs an initially empty feature type info.

    - #### DefaultFeatureTypeInfo

          public DefaultFeatureTypeInfo​(GenericName featureTypeName)

      Constructs a feature type info initialized to the specified name.
      Parameters:
        `featureTypeName` - name of the feature type.

    - #### DefaultFeatureTypeInfo

          public DefaultFeatureTypeInfo​(DefaultFeatureTypeInfo 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.
      Note on properties validation: This constructor does not verify the property values of the given metadata (e.g. whether it contains unexpected negative values). This is because invalid metadata exist in practice, and verifying their validity in this copy constructor is often too late. Note that this is not the only hole, as invalid metadata instances can also be obtained by unmarshalling an invalid XML document.
      Parameters:
        `object` - the metadata to copy values from, or `null` if none.

  - ### Method Detail

    - #### getFeatureTypeName

          @UML(identifier="featureTypeName",
               obligation=MANDATORY,
               specification=ISO_19115)
          public GenericName getFeatureTypeName()

      Returns the name of the feature type.
      Returns:
        name of the feature type.
      See Also:
        `AbstractIdentifiedType​.getName()`

    - #### setFeatureTypeName

          public void setFeatureTypeName​(GenericName newValue)

      Sets the name of the feature type.
      Parameters:
        `newValue` - the new name.

    - #### getFeatureInstanceCount

          @ValueRange(minimum=1.0)
          @UML(identifier="featureInstanceCount",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public Integer getFeatureInstanceCount()

      Returns the number of occurrence of feature instances for this feature types, or `null` if none.
      Returns:
        the number of occurrence of feature instances for this feature types, or `null` if none.

    - #### setFeatureInstanceCount

          public void setFeatureInstanceCount​(Integer newValue)

      Sets a new number of occurrence of feature instances for this feature types.
      Parameters:
        `newValue` - the new number of occurrence.
      Throws:
        `IllegalArgumentException` - if the given value is negative.