Interface ParameterValueGroup
-
- All Superinterfaces:
GeneralParameterValue
@UML(identifier="CC_ParameterValueGroup", specification=ISO_19111) public interface ParameterValueGroup extends GeneralParameterValue
A group of related parameter values.The same group can be repeated more than once in an coordinate operation or higher level
ParameterValueGroup
, if those instances contain different values of one or moreParameterValue
s which suitably distinguish among those groups.The methods adapted from the ISO 19111 standard are
getDescriptor()
andvalues()
. Other methods (exceptclone()
) are convenience methods:parameter(String)
searches for a single parameter value of the given name.groups(String)
searches for all groups of the given name.addGroup(String)
for creating a new subgroup and adding it to the list of subgroups.
Design note
there is noparameters(String)
method returning a list of parameter values because the ISO 19111 standard fixes theParameterValue
maximum occurrence to 1.- Since:
- 1.0
- See Also:
ParameterDescriptorGroup
,ParameterValue
-
-
Method Summary
Modifier and Type Method Description ParameterValueGroup
addGroup(String name)
Creates a new subgroup of the specified name, and adds it to the list of subgroups.ParameterValueGroup
clone()
Returns a copy of this group of parameter values.ParameterDescriptorGroup
getDescriptor()
The abstract definition of this group of parameters.List<ParameterValueGroup>
groups(String name)
Returns all subgroups with the specified name.ParameterValue<?>
parameter(String name)
Returns the value in this group for the specified identifier code.List<GeneralParameterValue>
values()
Returns all values in this group.
-
-
-
Method Detail
-
getDescriptor
@UML(identifier="group", obligation=MANDATORY, specification=ISO_19111) ParameterDescriptorGroup getDescriptor()
The abstract definition of this group of parameters.- Specified by:
getDescriptor
in interfaceGeneralParameterValue
- Returns:
- the abstract definition of this parameter or group of parameters.
Departure from OGC/ISO specification:
The ISO name was "group
". GeoAPI uses "descriptor
" instead in order to override thegetDescriptor()
generic method provided in the parent interface. In addition the "descriptor" name makes more apparent that this method returns an abstract definition of parameters - not their actual values - and is consistent with usage in other Java libraries like the Java Advanced Imaging library.
-
values
@UML(identifier="parameterValue", obligation=MANDATORY, specification=ISO_19111) List<GeneralParameterValue> values()
Returns all values in this group. The returned list may or may not be unmodifiable; this is implementation-dependent. However, if some aspects of this list are modifiable, then any modification shall be reflected back into thisParameterValueGroup
. More specifically:- If the list supports the
add
operation, then it should ensure that the added general parameter value is valid and can be added to this group. AnInvalidParameterCardinalityException
(or any other appropriate exception) shall be thrown if it is not the case. - The list may also supports the
remove
operation as a way to remove parameter created by theparameter(String)
method.
- Returns:
- the values in this group.
- If the list supports the
-
parameter
ParameterValue<?> parameter(String name) throws ParameterNotFoundException
Returns the value in this group for the specified identifier code. This method performs the following choice:- If this group contains a parameter value of the given name, then that parameter is returned.
- Otherwise if a descriptor of the given name
exists, then a new
ParameterValue
instance is created, added to this group and returned. - Otherwise a
ParameterNotFoundException
is thrown.
This convenience method provides a way to get and set parameter values by name. For example the following idiom fetches a floating point value for the
"False northing"
parameter:
The following idiom sets a floating point value for thedouble northing = parameter("False northing").doubleValue();
"False easting"
parameter:
This method does not search recursively in subgroups. This is because more than one subgroup may exist for the same descriptor. The user have to query all subgroups and select explicitly the appropriate one to use.parameter("False easting").setValue(500000.0);
- Parameters:
name
- the case insensitive identifier code of the parameter to search for.- Returns:
- the parameter value for the given identifier code.
- Throws:
ParameterNotFoundException
- if there is no parameter value for the given identifier code.
Departure from OGC/ISO specification:
This method is not part of the ISO specification. It has been added in an attempt to make this interface easier to use.
-
groups
List<ParameterValueGroup> groups(String name) throws ParameterNotFoundException
Returns all subgroups with the specified name.This method do not create new groups: if the requested group is optional (i.e.
minimumOccurs == 0
) and no value were defined previously, then this method returns an empty list.- Parameters:
name
- the case insensitive identifier code of the parameter group to search for.- Returns:
- the set of all parameter group for the given identifier code.
- Throws:
ParameterNotFoundException
- if no descriptor was found for the given name.
Departure from OGC/ISO specification:
This method is not part of the ISO specification. It has been added in an attempt to make this interface easier to use.
-
addGroup
ParameterValueGroup addGroup(String name) throws ParameterNotFoundException, InvalidParameterCardinalityException, IllegalStateException
Creates a new subgroup of the specified name, and adds it to the list of subgroups. The specified name shall be the identifier code of a descriptor group which is a child of this group.There is no
removeGroup(String)
method. To remove a group, users shall inspect thevalues()
list, decide which occurrences to remove if there is many of them for the same name, and whether to iterate recursively into sub-groups or not.- Parameters:
name
- the case insensitive identifier code of the parameter group to create.- Returns:
- a newly created parameter group for the given identifier code.
- Throws:
ParameterNotFoundException
- if no descriptor was found for the given name.InvalidParameterCardinalityException
- if this parameter group already contains the maximum number of occurences of subgroups of the given name.IllegalStateException
- if the group can not be added for an other reason.
Departure from OGC/ISO specification:
This method is not part of the ISO specification. It has been added in an attempt to make this interface easier to use.
-
clone
ParameterValueGroup clone()
Returns a copy of this group of parameter values. Included parameter values and subgroups are cloned recursively.- Specified by:
clone
in interfaceGeneralParameterValue
- Returns:
- a copy of this group of parameter values.
-
-