public final class Parameters extends Object
org.opengis.parameter
package.
"semi_major"
axis length (because it is documented in OGC specification under that
name) but doesn't know and doesn't care about who is providing the implementation. In such
case, he doesn't have the parameter's descriptor. He only have the parameter's name, and
creating a descriptor from that name (a descriptor independent of any implementation) is
tedious..
"semi_major"
axis length using the Geotools's descriptor for this parameter, we will fail to find this parameter in any
alternative ParameterValueGroup
implementations. This is against GeoAPI's
inter-operability goal.
The above doesn't mean that parameter's descriptor should not be used. They are used for inspecting meta-data about parameters, not as a key for searching parameters in a group. Since each parameter's name should be unique in a given parameter group (because maximum occurs is always 1 for single parameter), the parameter name is a suffisient key.
Modifier and Type | Field and Description |
---|---|
static ParameterDescriptorGroup |
EMPTY_GROUP
An empty parameter group.
|
Modifier and Type | Method and Description |
---|---|
static <T> ParameterDescriptor<T> |
cast(ParameterDescriptor<?> descriptor,
Class<T> type)
Casts the given parameter descriptor to the given type.
|
static <T> ParameterValue<T> |
cast(ParameterValue<?> value,
Class<T> type)
Casts the given parameter value to the given type.
|
static void |
copy(ParameterValueGroup source,
ParameterValueGroup target)
Copies all parameter values from
source to target . |
static boolean |
ensureSet(ParameterValueGroup parameters,
String name,
double value,
Unit<?> unit,
boolean force)
Ensures that the specified parameter is set.
|
static boolean |
isValid(ParameterValue<?> parameter)
Checks a parameter value against its parameter descriptor.
|
static List<Object> |
search(GeneralParameterValue param,
String name,
int maxDepth)
Searchs all parameters with the specified name.
|
static Map<String,Object> |
toNameValueMap(GeneralParameterValue parameters,
Map<String,Object> destination)
|
public static ParameterDescriptorGroup EMPTY_GROUP
public static <T> ParameterDescriptor<T> cast(ParameterDescriptor<?> descriptor, Class<T> type) throws ClassCastException
T
- The expected value class.descriptor
- The descriptor to cast.type
- The expected value class.ClassCastException
- if the given descriptor doesn't have the expected value class.public static <T> ParameterValue<T> cast(ParameterValue<?> value, Class<T> type) throws ClassCastException
T
- The expected value class.value
- The value to cast.type
- The expected value class.ClassCastException
- if the given value doesn't have the expected value class.public static boolean isValid(ParameterValue<?> parameter)
When the value class is an array (like
double[].class
) or a collection (like List.class
),
the descriptor minimum value, maximum value and valid values will be used to check the elements.
parameter
- The parameter to test.Parameter.ensureValidValue(org.opengis.parameter.ParameterDescriptor<T>, java.lang.Object)
public static List<Object> search(GeneralParameterValue param, String name, int maxDepth)
name
is compared against
parameter name
and alias
. This method search recursively in subgroups up to
the specified depth:
maxDepth
is equals to 0, then this method returns param
if and only
if it matches the specified name.
maxDepth
is equals to 1 and param
is an instance of ParameterDescriptorGroup
, then this method checks all elements in this group but not
in subgroups.
maxDepth
is a high number (e.g. 100), then this method checks all elements
in all subgroups up to the specified depth, which is likely to be never reached. In
this case, maxDepth
can be seen as a safeguard against never ending loops, for
example if parameters graph contains cyclic entries.
param
- The parameter to inspect.name
- The name of the parameter to search for. See the class javadoc for a rational
about the usage of name as a key instead of descriptor.maxDepth
- The maximal depth while descending down the parameter tree.public static void copy(ParameterValueGroup source, ParameterValueGroup target)
source
to target
. A typical usage of this
method is for transfering values from an arbitrary implementation to some specific
implementation (e.g. a parameter group implementation backed by a ParameterBlock
for image processing operations).source
- The parameters to copy.target
- Where to copy the source parameters.public static Map<String,Object> toNameValueMap(GeneralParameterValue parameters, Map<String,Object> destination)
destination
map. Keys are parameter names as String
objects, and
values are parameter values as arbitrary objects. All subgroups (if any) are extracted
recursively.parameters
- The parameters to extract values from.destination
- The destination map, or null
for a default one.destination
, or a new map if destination
was null.public static boolean ensureSet(ParameterValueGroup parameters, String name, double value, Unit<?> unit, boolean force)
value
is set if and only if no value
were already set by the user for the given name
.
The force
argument said what to do if the named parameter is already set. If the
value matches, nothing is done in all case. If there is a mismatch and force
is
true
, then the parameter is overridden with the specified value
. Otherwise,
the parameter is left unchanged but a warning is logged with the FINE
level.
parameters
- The set of projection parameters.name
- The parameter name to set.value
- The value to set, or to expect if the parameter is already set.unit
- The value unit.force
- true
for forcing the parameter to the specified value
is case of
mismatch.true
if the were a mismatch, or false
if the parameters can be used
with no change.Copyright © 1996–2019 Geotools. All rights reserved.