# Interface DatumAuthorityFactory

All Superinterfaces:
  `AuthorityFactory, Factory`

All Known Implementing Classes:
  `EPSGDataAccess, EPSGFactory, MultiAuthoritiesFactory`

@UML(identifier="CS_CoordinateSystemAuthorityFactory", specification=OGC_01009) public interface DatumAuthorityFactory extends AuthorityFactory
Creates datum objects using authority codes. External authorities are used to manage definitions of objects used in this interface. The definitions of these objects are referenced using code strings. A commonly used authority is EPSG, which is also used in the GeoTIFF standard.

Since:
  1.0
See Also:
  - `CSAuthorityFactory`
  - `CRSAuthorityFactory`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Datum`
  `createDatum(String code)`
  Returns an arbitrary datum from a code.
  `Ellipsoid`
  `createEllipsoid(String code)`
  Returns an ellipsoid from a code.
  `EngineeringDatum`
  `createEngineeringDatum(String code)`
  Creates a engineering datum from a code.
  `GeodeticDatum`
  `createGeodeticDatum(String code)`
  Returns a geodetic datum from a code.
  `ImageDatum`
  `createImageDatum(String code)`
  Creates a image datum from a code.
  `PrimeMeridian`
  `createPrimeMeridian(String code)`
  Returns a prime meridian from a code.
  `TemporalDatum`
  `createTemporalDatum(String code)`
  Creates a temporal datum from a code.
  `VerticalDatum`
  `createVerticalDatum(String code)`
  Creates a vertical datum from a code.

  ### Methods inherited from interface AuthorityFactory

  `createObject, getAuthority, getAuthorityCodes, getDescriptionText`

  ### Methods inherited from interface Factory

  `getVendor`

- ## Method Details

  - ### createDatum

    Datum createDatum(String code) throws NoSuchAuthorityCodeException, FactoryException
    Returns an arbitrary datum from a code. If the datum type is know at compile time, it is recommended to invoke the most precise method instead of this one (for example `createGeodeticDatum(code)` instead of `createDatum(code)` if the caller know he is asking for a geodetic datum).
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The datum for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.
    See Also:
      - `createGeodeticDatum(String)`
      - `createVerticalDatum(String)`
      - `createTemporalDatum(String)`

  - ### createEngineeringDatum

    EngineeringDatum createEngineeringDatum(String code) throws NoSuchAuthorityCodeException, FactoryException
    Creates a engineering datum from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The datum for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.
    See Also:
      - `CRSAuthorityFactory​.createEngineeringCRS(String)`

  - ### createImageDatum

    ImageDatum createImageDatum(String code) throws NoSuchAuthorityCodeException, FactoryException
    Creates a image datum from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The datum for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.
    See Also:
      - `CRSAuthorityFactory​.createImageCRS(String)`

  - ### createVerticalDatum

    @UML(identifier="createVerticalDatum", specification=OGC_01009) VerticalDatum createVerticalDatum(String code) throws NoSuchAuthorityCodeException, FactoryException
    Creates a vertical datum from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The datum for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.
    See Also:
      - `CRSAuthorityFactory​.createVerticalCRS(String)`

  - ### createTemporalDatum

    TemporalDatum createTemporalDatum(String code) throws NoSuchAuthorityCodeException, FactoryException
    Creates a temporal datum from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The datum for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.
    See Also:
      - `CRSAuthorityFactory​.createTemporalCRS(String)`

  - ### createGeodeticDatum

    @UML(identifier="createHorizontalDatum", specification=OGC_01009) GeodeticDatum createGeodeticDatum(String code) throws NoSuchAuthorityCodeException, FactoryException
    Returns a geodetic datum from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The datum for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.
    See Also:
      - `createEllipsoid(String)`
      - `createPrimeMeridian(String)`
      - `CRSAuthorityFactory​.createGeographicCRS(String)`
      - `CRSAuthorityFactory​.createProjectedCRS(String)`

  - ### createEllipsoid

    @UML(identifier="createEllipsoid", specification=OGC_01009) Ellipsoid createEllipsoid(String code) throws NoSuchAuthorityCodeException, FactoryException
    Returns an ellipsoid from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The ellipsoid for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.
    See Also:
      - `createGeodeticDatum(String)`

  - ### createPrimeMeridian

    @UML(identifier="createPrimeMeridian", specification=OGC_01009) PrimeMeridian createPrimeMeridian(String code) throws NoSuchAuthorityCodeException, FactoryException
    Returns a prime meridian from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The prime meridian for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.
    See Also:
      - `createGeodeticDatum(String)`