You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by "Martin Desruisseaux (JIRA)" <ji...@apache.org> on 2015/09/03 18:46:45 UTC

[jira] [Created] (SIS-290) Complete JAXB annotations for OperationParameter and ParameterValue

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)