Uploaded image for project: 'Spatial Information Systems'
  1. Spatial Information Systems
  2. SIS-159 Complete JAXB annotations for CRS objects
  3. SIS-290

Complete JAXB annotations for OperationParameter and ParameterValue



    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 0.6
    • Referencing
    • None


      Add JAXB annotations on DefaultParameterDescriptor and DefaultParameterValue for allowing them to read and write <gml:OperationParameter> and <gml:ParameterValue> respectively.

      The main difficulties in this task are:

      • ParameterDescriptor.getValueClass() is mandatory for SIS, but GML has no notion of "value class".
        • Solution: we can infer this information from the value given by the enclosing <gml:ParameterValue>.
        • Limitation: above solution does not work if the <gml:OperationParameter> is inside a <gml:OperationParameterGroup> or <gml:OperationMethod> because there is no enclosing <gml:ParameterValue> in such cases.
          • Solution to limitation: see point below.
      • ParameterValue.getDescriptor() is supposed to be the same instance (not just an object equals in the sense of Object.equals(Object) than the descriptors listed in ParameterDescriptorGroup. GML can support that by declaring each descriptor only once then using xlink:href attribute, but not all GML documents do that.
        • Solution: after unmarshalling of GeneralParameterValue[], map each GeneralParameterValue.getDescriptor() to the descriptor of the same name in the ParameterDescriptorGroup. If they do not have the same properties (alias, identifiers, description, remarks, minimum/maximum occurrences, value class, value domain, valid values), merge the two descriptors in an implementation dependent way. Then ensure that the same descriptor instance is used.


        Issue Links



              desruisseaux Martin Desruisseaux
              desruisseaux Martin Desruisseaux
              0 Vote for this issue
              1 Start watching this issue