- Parameter supplying an Attribute, needs to know which Parameter is supplying the schema (so we can show a nice drop-down list)
- Parameters that are required to work together in a group
- Parameters that are exclusive (only one can be used in a group)
- A hint describing dependence of one parameter to another. The most typical use for that would be to indicate the relation between a String parameter representign and attribute and a FeatureCollection. That would allow the user interface to make it easier for the user to select the field, as it could be taken from the list of available ones for the selected FC
- A hint describing the group of optional one a parameter belongs to. Some processes have a set of 2 or 3 parameters, from which just one has to be used (see the ContourProcess for example). If these grouping is not explicitly described, the UI will let the user fill all parameters or none of them, instead of enforcing using only one of them.
As you can see, it is a very simple thing, but I think that would add more robustness to the process semantics. Adapting existing processes to this change is trivial and should take little time to do.
Looking forward to knowing your opinion on this.
Here are the code examples.
Parameter<Double> interval= new Parameter<Double>("interval", Double.class, "Interval ", "Interval between contour values (ignored if levels parameter is supplied)", false, 10, 1, new KVP( GROUP, "contours", INTERACTION, "exclusive") ); Parameter<Double> levels= new Parameter<Double>("levels", Double.class, "Fixed contour elevations", "Values of levels at which to generate contours", false, 10, null1, new KVP( GROUP, "contours", INTERACTION, "exclusive") );