# Interface CoordinateOperationAuthorityFactory

All Superinterfaces:
  `AuthorityFactory, Factory`

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

@UML(identifier="CT_CoordinateTransformationAuthorityFactory", specification=OGC_01009) public interface CoordinateOperationAuthorityFactory extends AuthorityFactory
Creates coordinate transformation objects from codes. The codes are maintained by an external authority. A commonly used authority is EPSG, which is also used in the GeoTIFF standard.

Since:
  1.0

- ## Method Summary

  Modifier and Type
  Method
  Description
  `CoordinateOperation`
  `createCoordinateOperation(String code)`
  Creates an operation from a single operation code.
  `Set<CoordinateOperation>`
  `createFromCoordinateReferenceSystemCodes(String sourceCRS, String targetCRS)`
  Creates operations from coordinate reference system codes.
  `OperationMethod`
  `createOperationMethod(String code)`
  Creates an operation method from a single code.

  ### Methods inherited from interface AuthorityFactory

  `createObject, getAuthority, getAuthorityCodes, getDescriptionText`

  ### Methods inherited from interface Factory

  `getVendor`

- ## Method Details

  - ### createOperationMethod

    OperationMethod createOperationMethod(String code) throws NoSuchAuthorityCodeException, FactoryException
    Creates an operation method from a single code. The "authority" and "code" values of the created object will be set to the authority of this object, and the code specified by the client, respectively. The other metadata values may or may not be set.
    Parameters:
      `code` - Coded value for operation method.
    Returns:
      The operation method for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.
    Since:
      2.3

  - ### createCoordinateOperation

    @UML(identifier="createFromTransformationCode", specification=OGC_01009) CoordinateOperation createCoordinateOperation(String code) throws NoSuchAuthorityCodeException, FactoryException
    Creates an operation from a single operation code. The "authority" and "code" values of the created object will be set to the authority of this object, and the code specified by the client, respectively. The other metadata values may or may not be set.
    Parameters:
      `code` - Coded value for coordinate operation.
    Returns:
      The operation for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.

  - ### createFromCoordinateReferenceSystemCodes

    @UML(identifier="createFromCoordinateSystemCodes", specification=OGC_01009) Set<CoordinateOperation> createFromCoordinateReferenceSystemCodes(String sourceCRS, String targetCRS) throws NoSuchAuthorityCodeException, FactoryException
    Creates operations from coordinate reference system codes. This method returns only the operations declared by the authority, with preferred operations first. This method doesn't need to compute operations from `source` to `target` CRS if no such operations were explicitly defined in the authority database. Computation of arbitrary operations can be performed by `CoordinateOperationFactory​.createOperation(sourceCRS, targetCRS)` instead.
    Parameters:
      `sourceCRS` - Coded value of source coordinate reference system.
      `targetCRS` - Coded value of target coordinate reference system.
    Returns:
      The operations from `sourceCRS` to `targetCRS`.
    Throws:
      `NoSuchAuthorityCodeException` - if a specified code was not found.
      `FactoryException` - if the object creation failed for some other reason.