Martin Desruisseaux created SIS-290:
---------------------------------------

             Summary: Complete JAXB annotations for OperationParameter and 
ParameterValue
                 Key: SIS-290
                 URL: https://issues.apache.org/jira/browse/SIS-290
             Project: Spatial Information Systems
          Issue Type: Sub-task
          Components: Referencing
            Reporter: Martin Desruisseaux
            Assignee: Martin Desruisseaux
             Fix For: 0.6


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 {{gml:idref}} 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.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to