Package org.geotools.referencing.factory
Class TransformedAuthorityFactory
Object
AbstractFactory
ReferencingFactory
AbstractAuthorityFactory
AuthorityFactoryAdapter
TransformedAuthorityFactory
- All Implemented Interfaces:
AuthorityFactory,Factory,Factory,OptionalFactory,RegistrableFactory
- Direct Known Subclasses:
OrderedAxisCRSAuthorityFactory
An authority factory which returns modified CRS, CS or datum objects from other factory implementations. This class provides a set of
replace(...) methods to be overridden by subclasses in order to replace some
CRS, CS or datum objects by
other ones. The replacement rules are determined by the subclass being used. For example the
OrderedAxisAuthorityFactory subclass can replace coordinate systems using
(latitude, longitude) axis order by coordinate systems using (longitude,
latitude) axis order.
All constructors are protected because this class must be subclassed in order to determine which of the
DatumAuthorityFactory, CSAuthorityFactory and CRSAuthorityFactory interfaces to implement.
- Since:
- 2.3
- Author:
- Martin Desruisseaux (IRD)
-
Field Summary
Fields inherited from class ReferencingFactory
LOGGERFields inherited from class AbstractFactory
hints, MAXIMUM_PRIORITY, MINIMUM_PRIORITY, NORMAL_PRIORITY, priority -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedTransformedAuthorityFactory(String authority, Hints userHints) Creates a wrappers around the default factories for the specified authority.protectedCreates a wrapper around the specified factory.protectedTransformedAuthorityFactory(CRSAuthorityFactory crsFactory, CSAuthorityFactory csFactory, DatumAuthorityFactory datumFactory, CoordinateOperationAuthorityFactory opFactory) Creates a wrapper around the specified factories. -
Method Summary
Modifier and TypeMethodDescriptioncreateFromCoordinateReferenceSystemCodes(String sourceCode, String targetCode) Creates an operation from coordinate reference system codes.voiddispose()Releases resources immediately instead of waiting for the garbage collector.intReturns the priority for this factory.protected Unit<?>replace(Unit<?> units) Replaces the specified unit, if applicable.protected CoordinateReferenceSystemReplaces (if needed) the specified coordinate reference system.protected AxisDirectionreplace(AxisDirection direction) Replaces the specified direction, if applicable.protected CoordinateSystemReplaces (if needed) the specified coordinate system by a new one.protected CoordinateSystemAxisreplace(CoordinateSystemAxis axis) Replaces (if needed) the specified axis by a new one.protected DatumReplaces (if needed) the specified datum by a new one.protected CoordinateOperationreplace(CoordinateOperation operation) Replaces (if needed) the specified coordinate operation.Methods inherited from class AuthorityFactoryAdapter
createCartesianCS, createCompoundCRS, createCoordinateOperation, createCoordinateReferenceSystem, createCoordinateSystem, createCoordinateSystemAxis, createCylindricalCS, createDatum, createDerivedCRS, createEllipsoid, createEllipsoidalCS, createEngineeringCRS, createEngineeringDatum, createExtent, createGeocentricCRS, createGeodeticDatum, createGeographicCRS, createImageCRS, createImageDatum, createObject, createOperationMethod, createParameterDescriptor, createPolarCS, createPrimeMeridian, createProjectedCRS, createSphericalCS, createTemporalCRS, createTemporalDatum, createTimeCS, createUnit, createVerticalCRS, createVerticalCS, createVerticalDatum, getAuthority, getAuthorityCodes, getAuthorityFactory, getBackingStoreDescription, getCoordinateOperationAuthorityFactory, getCRSAuthorityFactory, getCSAuthorityFactory, getDatumAuthorityFactory, getDescriptionText, getIdentifiedObjectFinder, getVendor, isAvailable, notifySuccess, toBackingFactoryCodeMethods inherited from class AbstractAuthorityFactory
noSuchAuthorityCode, trimAuthorityMethods inherited from class ReferencingFactory
ensureNonNullMethods inherited from class AbstractFactory
addImplementationHints, equals, getImplementationHints, hashCode, onDeregistration, onRegistration, toStringMethods inherited from interface Factory
getImplementationHints
-
Constructor Details
-
TransformedAuthorityFactory
Creates a wrapper around the specified factory.- Parameters:
factory- The factory to wrap.
-
TransformedAuthorityFactory
protected TransformedAuthorityFactory(CRSAuthorityFactory crsFactory, CSAuthorityFactory csFactory, DatumAuthorityFactory datumFactory, CoordinateOperationAuthorityFactory opFactory) Creates a wrapper around the specified factories.- Parameters:
crsFactory- The coordinate reference system authority factory, ornull.csFactory- The coordinate system authority factory, ornull.datumFactory- The datum authority factory, ornull.opFactory- The coordinate operation authority factory, ornull.
-
TransformedAuthorityFactory
protected TransformedAuthorityFactory(String authority, Hints userHints) throws FactoryRegistryException Creates a wrappers around the default factories for the specified authority. The factories are fetched usingReferencingFactoryFinder.- Parameters:
authority- The authority to wraps (example:"EPSG"). Ifnull, then all authority factories must be explicitly specified in the set of hints.userHints- An optional set of hints, ornullif none.- Throws:
FactoryRegistryException- if at least one factory can not be obtained.- Since:
- 2.4
-
-
Method Details
-
getPriority
public int getPriority()Returns the priority for this factory. Priorities are used byReferencingFactoryFinderfor selecting a preferred factory when many are found for the same service. The default implementation returnspriority + 1, which implies that this adapter has precedence over the wrapped factories. Subclasses should override this method if they want a different priority order for this instance.- Overrides:
getPriorityin classAbstractFactory
-
replace
Replaces the specified unit, if applicable. This method is invoked automatically by thereplace(CoordinateSystem)method. The default implementation returns the unit unchanged.- Parameters:
units- The units to replace.- Returns:
- The new units, or
unitsif no change were needed. - Throws:
FactoryException- if an error occured while creating the new units.
-
replace
Replaces the specified direction, if applicable. This method is invoked automatically by thereplace(CoordinateSystem)method. The default implementation returns the axis direction unchanged.- Parameters:
direction- The axis direction to replace.- Returns:
- The new direction, or
directionif no change were needed. - Throws:
FactoryException- if an error occured while creating the new axis direction.
-
replace
Replaces (if needed) the specified axis by a new one. The default implementation invokesreplace(Unit)andreplace(AxisDirection).- Parameters:
axis- The coordinate system axis to replace.- Returns:
- The new coordinate system axis, or
axisif no change were needed. - Throws:
FactoryException- if an error occured while creating the new coordinate system axis.
-
replace
Replaces (if needed) the specified coordinate system by a new one. The default implementation invokesreplacefor each axis. In addition, axis are sorted if this factory implements theComparatorinterface.- Parameters:
cs- The coordinate system to replace.- Returns:
- The new coordinate system, or
csif no change were needed. - Throws:
FactoryException- if an error occured while creating the new coordinate system.
-
replace
Replaces (if needed) the specified datum by a new one. The default implementation returns the datum unchanged. Subclasses should override this method if some datum replacements are desired.- Parameters:
datum- The datum to replace.- Returns:
- The new datum, or
datumif no change were needed. - Throws:
FactoryException- if an error occured while creating the new datum.
-
replace
Replaces (if needed) the specified coordinate reference system. The default implementation checks if there is a datum replacement or a coordinate system replacement. If there is at least one of those, then this method returns a new coordinate reference system using the new datum and coordinate system.- Parameters:
crs- The coordinate reference system to replace.- Returns:
- A new CRS, or
crsif no change were needed. - Throws:
FactoryException- if an error occured while creating the new CRS object.
-
replace
Replaces (if needed) the specified coordinate operation. The default implementation checks if there is a source or target CRS replacement. If there is at least one of those, then this method returns a new coordinate operation using the new CRS.- Parameters:
operation- The coordinate operation to replace.- Returns:
- A new operation, or
operationif no change were needed. - Throws:
FactoryException- if an error occured while creating the new operation object.
-
createFromCoordinateReferenceSystemCodes
public Set<CoordinateOperation> createFromCoordinateReferenceSystemCodes(String sourceCode, String targetCode) throws FactoryException Creates an operation from coordinate reference system codes. The default implementation first invokes the same method from the underlying operation factory, and next invokesreplacefor each operations.- Overrides:
createFromCoordinateReferenceSystemCodesin classAuthorityFactoryAdapter- Parameters:
sourceCode- Coded value of source coordinate reference system.targetCode- Coded value of target coordinate reference system.- Returns:
- The operations from
sourceCRStotargetCRS. - Throws:
FactoryException- if the object creation failed.
-
dispose
Releases resources immediately instead of waiting for the garbage collector. This method do not dispose the resources of wrapped factories (e.g.crsFactory), because they may still in use by other classes.- Overrides:
disposein classAuthorityFactoryAdapter- Throws:
FactoryException- if an error occured while disposing the factory.
-