# Package org.apache.sis.referencing.factory

package org.apache.sis.referencing.factory
Creates Coordinate Reference System (CRS) objects from given properties or authority codes. This package provides two kinds of factories:

- `GeodeticAuthorityFactory` creates geodetic objects from codes defined by an authority. An authority is an organization that maintains definitions of authority codes. An authority code is a compact string defined by an authority to reference a particular spatial reference object. A frequently used set of authority codes is the EPSG geodetic dataset, a database of coordinate systems and other spatial referencing objects where each object has a code number ID.
- `GeodeticObjectFactory` creates complex objects that can not be created by the authority factories. Allows also inversion of control when used with the EPSG authority factory or with the WKT parser.

Authority factories available in Apache SIS are listed below. Factories defined in this package do not require any configuration or external resources. Factories defined in the `sql` sub-package require a connection to a database.

Authority factory implementations
Authorities | Implementation class | Conditions
--- | --- | ---
`CRS`, `AUTO` and `AUTO2` | `CommonAuthorityFactory` | None.
`EPSG` | `EPSGFactory` | Requires installation of EPSG dataset.

Since:
  0.6

Defined in the `sis-referencing` module

- Related Packages
  Package
  Description
  org.apache.sis.referencing
  Base classes for reference systems used for general positioning.
  org.apache.sis.referencing.factory.sql
  Factories for geodetic objects defined in a SQL database, typically the EPSG dataset.
  org.apache.sis.referencing.crs
  Coordinate Reference System (CRS) definitions as coordinate systems related to the earth through datum.
  org.apache.sis.referencing.cs
  Coordinate System (CS) definitions as the set of coordinate system axes that spans the coordinate space.
  org.apache.sis.referencing.datum
  Relationship of a `CoordinateSystem` (an abstract mathematical entity) to the earth or other system.
  org.apache.sis.referencing.gazetteer
  Mapping between geographic identifiers (addresses, grid indexes…) and locations (descriptions, coordinates…).
  org.apache.sis.referencing.operation
  Relationship between any two Coordinate Reference Systems (CRS).
- Class
  Description
  CommonAuthorityFactory
  Creates coordinate reference systems in the "`OGC`", "`CRS`" or `"AUTO(2)"` namespaces.
  ConcurrentAuthorityFactory<DAO extends GeodeticAuthorityFactory>
  A concurrent authority factory that caches all objects created by another factory.
  FactoryDataException
  Thrown when a factory contains invalid data.
  GeodeticAuthorityFactory
  Creates geodetic objects from codes defined by an authority.
  GeodeticObjectFactory
  Creates Coordinate Reference System (CRS) implementations, with their Coordinate System (CS) and Datum components.
  IdentifiedObjectFinder
  Searches in an authority factory for objects approximately equal to a given object.
  IdentifiedObjectFinder.Domain
  The domain of the search (for example whether to include deprecated objects in the search).
  IdentifiedObjectSet<T extends IdentifiedObject>
  A lazy set of `IdentifiedObject` instances created from their authority codes only when first needed.
  InvalidGeodeticParameterException
  Thrown when a factory `createFoo(…)` method is given invalid parameters.
  MissingFactoryResourceException
  Thrown when a particular object can not be created because a resource is missing.
  MultiAuthoritiesFactory
  A factory that delegates the object creation to another factory determined from the authority part in “authority:code” arguments.
  NoSuchAuthorityFactoryException
  Thrown when no factory has been found for a given authority name.
  UnavailableFactoryException
  Thrown when a whole factory can not be created because a resource is missing.