# Interface CSAuthorityFactory

All Superinterfaces:
  `AuthorityFactory, Factory`

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

public interface CSAuthorityFactory extends AuthorityFactory
Creates coordinate systems 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:
  - `CRSAuthorityFactory`
  - `DatumAuthorityFactory`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `CartesianCS`
  `createCartesianCS(String code)`
  Creates a cartesian coordinate system from a code.
  `CoordinateSystem`
  `createCoordinateSystem(String code)`
  Returns an arbitrary coordinate system from a code.
  `CoordinateSystemAxis`
  `createCoordinateSystemAxis(String code)`
  Returns a coordinate system axis from a code.
  `CylindricalCS`
  `createCylindricalCS(String code)`
  Creates a cylindrical coordinate system from a code.
  `EllipsoidalCS`
  `createEllipsoidalCS(String code)`
  Creates an ellipsoidal coordinate system from a code.
  `PolarCS`
  `createPolarCS(String code)`
  Creates a polar coordinate system from a code.
  `SphericalCS`
  `createSphericalCS(String code)`
  Creates a spherical coordinate system from a code.
  `TimeCS`
  `createTimeCS(String code)`
  Creates a temporal coordinate system from a code.
  `Unit<?>`
  `createUnit(String code)`
  Returns an unit from a code.
  `VerticalCS`
  `createVerticalCS(String code)`
  Creates a vertical coordinate system from a code.

  ### Methods inherited from interface AuthorityFactory

  `createObject, getAuthority, getAuthorityCodes, getDescriptionText`

  ### Methods inherited from interface Factory

  `getVendor`

- ## Method Details

  - ### createCoordinateSystem

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

  - ### createCartesianCS

    CartesianCS createCartesianCS(String code) throws NoSuchAuthorityCodeException, FactoryException
    Creates a cartesian coordinate system from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The coordinate system for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.

  - ### createPolarCS

    PolarCS createPolarCS(String code) throws NoSuchAuthorityCodeException, FactoryException
    Creates a polar coordinate system from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The coordinate system for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.

  - ### createCylindricalCS

    CylindricalCS createCylindricalCS(String code) throws NoSuchAuthorityCodeException, FactoryException
    Creates a cylindrical coordinate system from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The coordinate system for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.

  - ### createSphericalCS

    SphericalCS createSphericalCS(String code) throws NoSuchAuthorityCodeException, FactoryException
    Creates a spherical coordinate system from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The coordinate system for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.

  - ### createEllipsoidalCS

    EllipsoidalCS createEllipsoidalCS(String code) throws NoSuchAuthorityCodeException, FactoryException
    Creates an ellipsoidal coordinate system from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The coordinate system for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.

  - ### createVerticalCS

    VerticalCS createVerticalCS(String code) throws NoSuchAuthorityCodeException, FactoryException
    Creates a vertical coordinate system from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The coordinate system for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.

  - ### createTimeCS

    TimeCS createTimeCS(String code) throws NoSuchAuthorityCodeException, FactoryException
    Creates a temporal coordinate system from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The coordinate system for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.

  - ### createCoordinateSystemAxis

    CoordinateSystemAxis createCoordinateSystemAxis(String code) throws NoSuchAuthorityCodeException, FactoryException
    Returns a coordinate system axis from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The axis for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.

  - ### createUnit

    @UML(identifier="CS_CoordinateSystemAuthorityFactory.createLinearUnit, createAngularUnit", specification=OGC_01009) Unit<?> createUnit(String code) throws NoSuchAuthorityCodeException, FactoryException
    Returns an unit from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The unit for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.