Interface ObjectFactory

All Superinterfaces:
Factory
All Known Subinterfaces:
CoordinateOperationFactory, CRSFactory, CSFactory, DatumFactory
All Known Implementing Classes:
AbstractCoordinateOperationFactory, AuthorityBackedFactory, BufferedCoordinateOperationFactory, DatumAliases, DefaultCoordinateOperationFactory, ReferencingObjectFactory

public interface ObjectFactory extends Factory
Base interface for all factories of identified objects. Factories build up complex objects from simpler objects or values. This factory allows applications to make coordinate systems, datum or coordinate reference systems that cannot be created by an authority factory. This factory is very flexible, whereas the authority factory is easier to use.

Object properties
Most factory methods expect a Map argument. The map can be a Properties instance. The map shall contains at least a "name" property. In the common case where the name is the only property, the map may be constructed with Collections.singletonMap("name", theName) where theName is an arbitrary name as free text.

Implementations are encouraged to recognize at least the properties listed in the following table. Additional implementation-specific properties can be added. Unknown properties shall be ignored.

Property name Value type Value given to
 "name"   ReferenceIdentifier or String   IdentifiedObject.getName()
 "alias"   String, String[], GenericName or GenericName[]   IdentifiedObject.getAlias()
 "authority"   String or Citation   Identifier.getAuthority() on the name
 "codespace"   String   ReferenceIdentifier.getCodeSpace() on the name
 "version"   String   ReferenceIdentifier.getVersion() on the name
 "identifiers"   Identifier or Identifier[]   IdentifiedObject.getIdentifiers()
 "remarks"   String or InternationalString   IdentifiedObject.getRemarks()

The "name" property is mandatory. All others are optional. All localizable attributes like "remarks" can have a language and country code suffix. For example the "remarks_fr" property stands for remarks in French and the "remarks_fr_CA" property stands for remarks in French Canadian.

Since:
GeoAPI 2.0
Author:
Martin Desruisseaux (IRD)