# Interface Deprecable

All Known Implementing Classes:
  `AbstractCoordinateOperation`, `AbstractCRS`, `AbstractCS`, `AbstractDatum`, `AbstractIdentifiedObject`, `AbstractIdentifiedType`, `AbstractOperation`, `AbstractParameterDescriptor`, `AbstractReferenceSystem`, `DefaultAffineCS`, `DefaultAssociationRole`, `DefaultAttributeType`, `DefaultCartesianCS`, `DefaultCompoundCRS`, `DefaultCompoundCS`, `DefaultConversion`, `DefaultCoordinateSystemAxis`, `DefaultCylindricalCS`, `DefaultDatumEnsemble`, `DefaultDerivedCRS`, `DefaultEllipsoid`, `DefaultEllipsoidalCS`, `DefaultEngineeringCRS`, `DefaultEngineeringDatum`, `DefaultFeatureType`, `DefaultGeocentricCRS`, `DefaultGeodeticDatum`, `DefaultGeodeticDatum​.Dynamic`, `DefaultGeographicCRS`, `DefaultImageCRS`, `DefaultImageDatum`, `DefaultLinearCS`, `DefaultOperationMethod`, `DefaultParameterDescriptor`, `DefaultParameterDescriptorGroup`, `DefaultParametricCRS`, `DefaultParametricCS`, `DefaultParametricDatum`, `DefaultPassThroughOperation`, `DefaultPolarCS`, `DefaultPrimeMeridian`, `DefaultProjectedCRS`, `DefaultSphericalCS`, `DefaultTemporalCRS`, `DefaultTemporalDatum`, `DefaultTimeCS`, `DefaultTransformation`, `DefaultUserDefinedCS`, `DefaultVerticalCRS`, `DefaultVerticalCS`, `DefaultVerticalDatum`, `DefaultVerticalDatum​.Dynamic`, `GeohashReferenceSystem`, `MilitaryGridReferenceSystem`, `ReferencingByIdentifiers`

public interface Deprecable
Interface of classes for which deprecated instances may exist. Despite the name, the entities deprecated by this interface are unrelated to the entities deprecated by the Java `Deprecated` annotation. This interface is for identifying deprecated data rather than language constructs.

## Examples

When an error is discovered in the definition of a Coordinate Reference System (CRS) in the EPSG database, the EPSG maintainers do not change the data. Instead, they deprecate the erroneous definition and create a new one with a new EPSG code. The `isDeprecated()` method in this interface allows users to identify CRS instances created from such deprecated database records, for example in order to log a warning when data are projected to a deprecated CRS.

Some examples of deprecated instances are:

- An `AbstractIdentifiedObject` (typically a CRS) which has been built from a deprecated EPSG code.
- A `NamedIdentifier` containing the legacy name of an object which has been renamed.

Since:
  0.3

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default InternationalString`
  `getRemarks()`
  If this instance is deprecated, the reason or the alternative to use.
  `boolean`
  `isDeprecated()`
  Returns `true` if this instance is deprecated.

- ## Method Details

  - ### isDeprecated

    boolean isDeprecated()
    Returns `true` if this instance is deprecated. In such case, the remarks may contain information about the new object to use.
    Returns:
      `true` if this instance is deprecated.

  - ### getRemarks

    default InternationalString getRemarks()
    If this instance is deprecated, the reason or the alternative to use. Otherwise, an optional free text.
    Example: "superseded by code XYZ".
    Returns:
      comments about this instance, or `null` if none. Shall be the reason for deprecation or the alternative to use if this instance is deprecated.