org.geotools.referencing.operation
Class MathTransformProvider

java.lang.Object
  extended byorg.geotools.referencing.wkt.Formattable
      extended byorg.geotools.referencing.AbstractIdentifiedObject
          extended byorg.geotools.referencing.operation.DefaultOperationMethod
              extended byorg.geotools.referencing.operation.MathTransformProvider
All Implemented Interfaces:
org.opengis.referencing.IdentifiedObject, org.opengis.referencing.operation.OperationMethod, java.io.Serializable
Direct Known Subclasses:
ExponentialTransform1D.Provider, GeocentricTransform.Provider, GeocentricTranslation.Provider, LogarithmicTransform1D.Provider, MapProjection.AbstractProvider, MolodenskiTransform.Provider, NADCONTransform.Provider, ProjectiveTransform.ProviderAffine, ProjectiveTransform.ProviderLongitudeRotation, WarpTransform2D.Provider

public abstract class MathTransformProvider
extends DefaultOperationMethod

An operation method capable to creates a math transform from set of parameter values. Implementations of this class should be listed in the following file:

The math transform factory will parse this file in order to gets all available providers on a system. If this file is bundle in many JAR files, the math transform factory will read all of them.

Since:
2.0
Version:
$Id: MathTransformProvider.java 17672 2006-01-19 00:25:55Z desruisseaux $
Author:
Martin Desruisseaux
See Also:
Serialized Form

Nested Class Summary
protected static class MathTransformProvider.Delegate
          The result of a call to createMathTransform.
 
Field Summary
 
Fields inherited from class org.geotools.referencing.operation.DefaultOperationMethod
sourceDimensions, targetDimensions
 
Fields inherited from class org.geotools.referencing.AbstractIdentifiedObject
EMPTY_ALIAS_ARRAY, EMPTY_IDENTIFIER_ARRAY, IDENTIFIER_COMPARATOR, NAME_COMPARATOR, REMARKS_COMPARATOR
 
Fields inherited from interface org.opengis.referencing.operation.OperationMethod
FORMULA_KEY
 
Fields inherited from interface org.opengis.referencing.IdentifiedObject
ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY
 
Constructor Summary
MathTransformProvider(int sourceDimensions, int targetDimensions, org.opengis.parameter.ParameterDescriptorGroup parameters)
          Constructs a math transform provider from a set of parameters.
MathTransformProvider(java.util.Map properties, int sourceDimensions, int targetDimensions, org.opengis.parameter.ParameterDescriptorGroup parameters)
          Constructs a math transform provider from a set of properties.
 
Method Summary
protected static org.opengis.parameter.ParameterDescriptor createDescriptor(org.opengis.metadata.Identifier[] identifiers, double defaultValue, double minimum, double maximum, javax.units.Unit unit)
          Constructs a parameter descriptor from a set of alias.
protected static org.opengis.parameter.ParameterDescriptorGroup createDescriptorGroup(org.opengis.metadata.Identifier[] identifiers, org.opengis.parameter.GeneralParameterDescriptor[] parameters)
          Constructs a parameter group from a set of alias.
protected abstract  org.opengis.referencing.operation.MathTransform createMathTransform(org.opengis.parameter.ParameterValueGroup values)
          Creates a math transform from the specified group of parameter values.
protected static org.opengis.parameter.ParameterDescriptor createOptionalDescriptor(org.opengis.metadata.Identifier[] identifiers, double minimum, double maximum, javax.units.Unit unit)
          Constructs an optional parameter descriptor from a set of alias.
protected static double doubleValue(org.opengis.parameter.ParameterDescriptor param, org.opengis.parameter.ParameterValueGroup group)
          Returns the parameter value for the specified operation parameter.
protected  org.opengis.parameter.ParameterValueGroup ensureValidValues(org.opengis.parameter.ParameterValueGroup values)
          Ensures that the given set of parameters contains only valid values.
protected  java.lang.String formatWKT(Formatter formatter)
          Format the inner part of a Well Known Text (WKT) element.
protected  java.lang.Class getOperationType()
          Returns the operation type.
protected static int intValue(org.opengis.parameter.ParameterDescriptor param, org.opengis.parameter.ParameterValueGroup group)
          Returns the parameter value for the specified operation parameter.
protected static java.lang.String stringValue(org.opengis.parameter.ParameterDescriptor param, org.opengis.parameter.ParameterValueGroup group)
          Returns the parameter value for the specified operation parameter.
protected static java.lang.Object value(org.opengis.parameter.ParameterDescriptor param, org.opengis.parameter.ParameterValueGroup group)
          Returns the parameter value for the specified operation parameter.
 
Methods inherited from class org.geotools.referencing.operation.DefaultOperationMethod
checkDimensions, equals, getFormula, getParameters, getSourceDimensions, getTargetDimensions, hashCode
 
Methods inherited from class org.geotools.referencing.AbstractIdentifiedObject
asSet, ensureAngularUnit, ensureLinearUnit, ensureNonNull, ensureNonNull, ensureTimeUnit, equals, equals, equals, equals, getAlias, getIdentifier, getIdentifier, getIdentifiers, getName, getName, getName, getProperties, getProperties, getRemarks, nameMatches, nameMatches
 
Methods inherited from class org.geotools.referencing.wkt.Formattable
toString, toWKT, toWKT, toWKT
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.opengis.referencing.IdentifiedObject
getAlias, getIdentifiers, getName, getRemarks, toWKT
 

Constructor Detail

MathTransformProvider

public MathTransformProvider(int sourceDimensions,
                             int targetDimensions,
                             org.opengis.parameter.ParameterDescriptorGroup parameters)
Constructs a math transform provider from a set of parameters. The provider identifiers will be the same than the parameter ones.

Parameters:
sourceDimensions - Number of dimensions in the source CRS of this operation method.
targetDimensions - Number of dimensions in the target CRS of this operation method.
parameters - The set of parameters (never ).

MathTransformProvider

public MathTransformProvider(java.util.Map properties,
                             int sourceDimensions,
                             int targetDimensions,
                             org.opengis.parameter.ParameterDescriptorGroup parameters)
Constructs a math transform provider from a set of properties. The properties map is given unchanged to the super-class constructor.

Parameters:
properties - Set of properties. Should contains at least "name".
sourceDimensions - Number of dimensions in the source CRS of this operation method.
targetDimensions - Number of dimensions in the target CRS of this operation method.
parameters - The set of parameters (never ).
Method Detail

getOperationType

protected java.lang.Class getOperationType()
Returns the operation type. It may be Operation.class, Conversion.class, Projection.class, etc. The default implementation returns . Subclass should overrides this methods and returns the appropriate OpenGIS interface type (not the implementation type).


createMathTransform

protected abstract org.opengis.referencing.operation.MathTransform createMathTransform(org.opengis.parameter.ParameterValueGroup values)
                                                                                throws org.opengis.parameter.InvalidParameterNameException,
                                                                                       org.opengis.parameter.ParameterNotFoundException,
                                                                                       org.opengis.parameter.InvalidParameterValueException,
                                                                                       org.opengis.referencing.FactoryException
Creates a math transform from the specified group of parameter values. Subclasses can implements this method as in the example below:
 double semiMajor = values.parameter("semi_major").doubleValue(SI.METER);
 double semiMinor = values.parameter("semi_minor").doubleValue(SI.METER);
 // etc...
 return new MyTransform(semiMajor, semiMinor, ...);
 

Parameters:
values - The group of parameter values.
Returns:
The created math transform.
Throws:
org.opengis.parameter.InvalidParameterNameException - if the values contains an unknow parameter.
org.opengis.parameter.ParameterNotFoundException - if a required parameter was not found.
org.opengis.parameter.InvalidParameterValueException - if a parameter has an invalid value.
org.opengis.referencing.FactoryException - if the math transform can't be created for some other reason (for example a required file was not found).
See Also:
MathTransformProvider.Delegate

createDescriptor

protected static org.opengis.parameter.ParameterDescriptor createDescriptor(org.opengis.metadata.Identifier[] identifiers,
                                                                            double defaultValue,
                                                                            double minimum,
                                                                            double maximum,
                                                                            javax.units.Unit unit)
Constructs a parameter descriptor from a set of alias. The parameter is identified by codes provided by one or more authorities. Common authorities are OGC and EPSG for example.

The first entry in the array is both the main name and the identifiers. All others are aliases.

Parameters:
identifiers - The parameter identifiers. Most contains at least one entry.
defaultValue - The default value for the parameter, or Double.NaN if none.
minimum - The minimum parameter value, or Double.NEGATIVE_INFINITY if none.
maximum - The maximum parameter value, or Double.POSITIVE_INFINITY if none.
unit - The unit for default, minimum and maximum values.

createOptionalDescriptor

protected static org.opengis.parameter.ParameterDescriptor createOptionalDescriptor(org.opengis.metadata.Identifier[] identifiers,
                                                                                    double minimum,
                                                                                    double maximum,
                                                                                    javax.units.Unit unit)
Constructs an optional parameter descriptor from a set of alias. The parameter is identified as with createDescriptor(org.opengis.metadata.Identifier[], double, double, double, javax.units.Unit).

Parameters:
identifiers - The parameter identifiers. Most contains at least one entry.
minimum - The minimum parameter value, or Double.NEGATIVE_INFINITY if none.
maximum - The maximum parameter value, or Double.POSITIVE_INFINITY if none.
unit - The unit for default, minimum and maximum values.

createDescriptorGroup

protected static org.opengis.parameter.ParameterDescriptorGroup createDescriptorGroup(org.opengis.metadata.Identifier[] identifiers,
                                                                                      org.opengis.parameter.GeneralParameterDescriptor[] parameters)
Constructs a parameter group from a set of alias. The parameter group is identified by codes provided by one or more authorities. Common authorities are OGC and EPSG for example.

Special rules:

Parameters:
identifiers - The operation identifiers. Most contains at least one entry.
parameters - The set of parameters, or or an empty array if none.

ensureValidValues

protected org.opengis.parameter.ParameterValueGroup ensureValidValues(org.opengis.parameter.ParameterValueGroup values)
                                                               throws org.opengis.parameter.InvalidParameterNameException,
                                                                      org.opengis.parameter.InvalidParameterValueException
Ensures that the given set of parameters contains only valid values. This method compares all parameter names against the names declared in the operation method parameter descriptor. If an unknow parameter name is found, then an InvalidParameterNameException is thrown. This method also ensures that all values are assignable to the expected class, are between the minimum and maximum values and are one of the set of valid values. If the value fails any of those tests, then an InvalidParameterValueException is thrown.

Parameters:
values - The parameters values to check.
Returns:
The parameter values to use for math transform construction. May be different than the supplied argument if some missing values needed to be filled with default values.
Throws:
org.opengis.parameter.InvalidParameterNameException - if a parameter name is unknow.
org.opengis.parameter.InvalidParameterValueException - if a parameter has an invalid value.

value

protected static java.lang.Object value(org.opengis.parameter.ParameterDescriptor param,
                                        org.opengis.parameter.ParameterValueGroup group)
                                 throws org.opengis.parameter.ParameterNotFoundException
Returns the parameter value for the specified operation parameter. This convenience method is used by subclasses for initializing math transform from a set of parameters.

Parameters:
param - The parameter to look for.
group - The parameter value group to search into.
Returns:
The requested parameter value, or if is optional and the user didn't provided any value.
Throws:
org.opengis.parameter.ParameterNotFoundException - if the parameter is not found.
To Do:
Move to the Parameters class.

stringValue

protected static java.lang.String stringValue(org.opengis.parameter.ParameterDescriptor param,
                                              org.opengis.parameter.ParameterValueGroup group)
                                       throws org.opengis.parameter.ParameterNotFoundException
Returns the parameter value for the specified operation parameter. This convenience method is used by subclasses for initializing math transform from a set of parameters.

Parameters:
param - The parameter to look for.
group - The parameter value group to search into.
Returns:
The requested parameter value, or if is optional and the user didn't provided any value.
Throws:
org.opengis.parameter.ParameterNotFoundException - if the parameter is not found.
To Do:
Move to the Parameters class.

intValue

protected static int intValue(org.opengis.parameter.ParameterDescriptor param,
                              org.opengis.parameter.ParameterValueGroup group)
                       throws org.opengis.parameter.ParameterNotFoundException
Returns the parameter value for the specified operation parameter. This convenience method is used by subclasses for initializing math transform from a set of parameters.

Parameters:
param - The parameter to look for.
group - The parameter value group to search into.
Returns:
The requested parameter value, or if is optional and the user didn't provided any value.
Throws:
org.opengis.parameter.ParameterNotFoundException - if the parameter is not found.
To Do:
Move to the Parameters class.

doubleValue

protected static double doubleValue(org.opengis.parameter.ParameterDescriptor param,
                                    org.opengis.parameter.ParameterValueGroup group)
                             throws org.opengis.parameter.ParameterNotFoundException
Returns the parameter value for the specified operation parameter. Values are automatically converted into the standard units specified by the supplied argument. This convenience method is used by subclasses for initializing math transform from a set of parameters.

Parameters:
param - The parameter to look for.
group - The parameter value group to search into.
Returns:
The requested parameter value, or if is optional and the user didn't provided any value.
Throws:
org.opengis.parameter.ParameterNotFoundException - if the parameter is not found.
To Do:
Move to the Parameters class.

formatWKT

protected java.lang.String formatWKT(Formatter formatter)
Format the inner part of a Well Known Text (WKT) element.

Overrides:
formatWKT in class DefaultOperationMethod
Parameters:
formatter - The formatter to use.
Returns:
The WKT element name.


Copyright © GeoTools. All Rights Reserved.