Package org.apache.sis.metadata.iso.spatial

## Class DefaultGeoreferenceable

- Object
- - AbstractMetadata
  - - ModifiableMetadata
    - - ISOMetadata
      - - AbstractSpatialRepresentation
        - - DefaultGridSpatialRepresentation
          - - DefaultGeoreferenceable

- All Implemented Interfaces:
    `Serializable`, `Emptiable`, `LenientComparable`, `IdentifiedObject`, `Georeferenceable`, `GridSpatialRepresentation`, `SpatialRepresentation`

      public class DefaultGeoreferenceable
      extends DefaultGridSpatialRepresentation
      implements Georeferenceable

  Grid with cells irregularly spaced in any given geographic/map projection coordinate reference system. Individual cells can be geolocated using geolocation information supplied with the data but cannot be geolocated from the grid properties alone.

  The following properties are mandatory in a well-formed metadata according ISO 19115:

  `MD_Georeferenceable` `├─numberOfDimensions…………………………………………………` Number of independent spatial-temporal axes. `├─axisDimensionProperties……………………………………` Information about spatial-temporal axis properties. `│ ├─dimensionName……………………………………………………` Name of the axis. `│ └─dimensionSize……………………………………………………` Number of elements along the axis. `├─cellGeometry…………………………………………………………………` Identification of grid data as point or cell. `├─transformationParameterAvailability……` Indication of whether or not parameters for transformation exists. `├─controlPointAvailability…………………………………` Indication of whether or not control point(s) exists. `├─orientationParameterAvailability……………` Indication of whether or not orientation parameters are available. `├─geolocationInformation………………………………………` Information that can be used to geolocate the data. `└─georeferencedParameters……………………………………` Terms which support grid data georeferencing.

  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

  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
    --- | ---
    `DefaultGeoreferenceable()` | Constructs an initially empty georeferenceable.
    `DefaultGeoreferenceable​(Georeferenceable object)` | Constructs a new instance initialized with the values from the specified metadata object.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static DefaultGeoreferenceable` | `castOrCopy​(Georeferenceable object)` | Returns a SIS metadata implementation with the values of the given arbitrary implementation.
    `Collection<GeolocationInformation>` | `getGeolocationInformation()` | Returns the information that can be used to geolocate the data.
    `Record` | `getGeoreferencedParameters()` | Returns the terms which support grid data georeferencing.
    `InternationalString` | `getOrientationParameterDescription()` | Returns a description of parameters used to describe sensor orientation.
    `Collection<Citation>` | `getParameterCitations()` | Returns a reference providing description of the parameters.
    `boolean` | `isControlPointAvailable()` | Returns an indication of whether or not control point(s) exists.
    `boolean` | `isOrientationParameterAvailable()` | Returns an indication of whether or not orientation parameters are available.
    `void` | `setControlPointAvailable​(boolean newValue)` | Sets an indication of whether or not control point(s) exists.
    `void` | `setGeolocationInformation​(Collection<? extends GeolocationInformation> newValues)` | Sets the information that can be used to geolocate the data.
    `void` | `setGeoreferencedParameters​(Record newValue)` | Sets the terms which support grid data georeferencing.
    `void` | `setOrientationParameterAvailable​(boolean newValue)` | Sets an indication of whether or not orientation parameters are available.
    `void` | `setOrientationParameterDescription​(InternationalString newValue)` | Sets a description of parameters used to describe sensor orientation.
    `void` | `setParameterCitations​(Collection<? extends Citation> newValues)` | Sets a reference providing description of the parameters.

    - ### Methods inherited from class DefaultGridSpatialRepresentation

      `castOrCopy, getAxisDimensionProperties, getCellGeometry, getNumberOfDimensions, isTransformationParameterAvailable, setAxisDimensionProperties, setCellGeometry, setNumberOfDimensions, setTransformationParameterAvailable`

    - ### Methods inherited from class AbstractSpatialRepresentation

      `castOrCopy`

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

    - ### Methods inherited from interface GridSpatialRepresentation

      `getAxisDimensionProperties, getCellGeometry, getNumberOfDimensions, isTransformationParameterAvailable`

- - ### Constructor Detail

    - #### DefaultGeoreferenceable

          public DefaultGeoreferenceable()

      Constructs an initially empty georeferenceable.

    - #### DefaultGeoreferenceable

          public DefaultGeoreferenceable​(Georeferenceable 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.
      See Also:
        `castOrCopy(Georeferenceable)`

  - ### Method Detail

    - #### castOrCopy

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

    - #### isControlPointAvailable

          public boolean isControlPointAvailable()

      Returns an indication of whether or not control point(s) exists.
      Specified by:
        `isControlPointAvailable` in interface `Georeferenceable`
      Returns:
        whether or not control point(s) exists.

    - #### setControlPointAvailable

          public void setControlPointAvailable​(boolean newValue)

      Sets an indication of whether or not control point(s) exists.
      Parameters:
        `newValue` - `true` if control points are available.

    - #### isOrientationParameterAvailable

          public boolean isOrientationParameterAvailable()

      Returns an indication of whether or not orientation parameters are available.
      Specified by:
        `isOrientationParameterAvailable` in interface `Georeferenceable`
      Returns:
        whether or not orientation parameters are available.

    - #### setOrientationParameterAvailable

          public void setOrientationParameterAvailable​(boolean newValue)

      Sets an indication of whether or not orientation parameters are available.
      Parameters:
        `newValue` - `true` if orientation parameter are available.

    - #### getOrientationParameterDescription

          public InternationalString getOrientationParameterDescription()

      Returns a description of parameters used to describe sensor orientation.
      Specified by:
        `getOrientationParameterDescription` in interface `Georeferenceable`
      Returns:
        description of parameters used to describe sensor orientation, or `null`.

    - #### setOrientationParameterDescription

          public void setOrientationParameterDescription​(InternationalString newValue)

      Sets a description of parameters used to describe sensor orientation.
      Parameters:
        `newValue` - the new orientation parameter description.

    - #### getGeoreferencedParameters

          public Record getGeoreferencedParameters()

      Returns the terms which support grid data georeferencing.
      Specified by:
        `getGeoreferencedParameters` in interface `Georeferenceable`
      Returns:
        terms which support grid data georeferencing, or `null`.

    - #### setGeoreferencedParameters

          public void setGeoreferencedParameters​(Record newValue)

      Sets the terms which support grid data georeferencing.
      Parameters:
        `newValue` - the new georeferenced parameters.

    - #### getParameterCitations

          public Collection<Citation> getParameterCitations()

      Returns a reference providing description of the parameters.
      Specified by:
        `getParameterCitations` in interface `Georeferenceable`
      Returns:
        reference providing description of the parameters.

    - #### setParameterCitations

          public void setParameterCitations​(Collection<? extends Citation> newValues)

      Sets a reference providing description of the parameters.
      Parameters:
        `newValues` - the new parameter citations.

    - #### getGeolocationInformation

          public Collection<GeolocationInformation> getGeolocationInformation()

      Returns the information that can be used to geolocate the data.
      Specified by:
        `getGeolocationInformation` in interface `Georeferenceable`
      Returns:
        a geolocalisation of the data.

    - #### setGeolocationInformation

          public void setGeolocationInformation​(Collection<? extends GeolocationInformation> newValues)

      Sets the information that can be used to geolocate the data.
      Parameters:
        `newValues` - the new geolocation information values.