GeoAPI

Incorrect implementation of org.opengis.util.GenericName

Details

  • Type: Sub-task Sub-task
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 2.0
  • Fix Version/s: 2.3-M1
  • Component/s: util
  • Labels:
    None
  • Environment:
    all
  • Number of attachments :
    2

Description

ISO19103:2005(E), Figure 16, indicates two problems with the current implementation:
+the "scope" attribute is mandatory, not optional.
+ the "scope" attribute relates the GenericName object to a NameSpace object, not another GenericName object.

Issue Links

Activity

Hide
Martin Desruisseaux added a comment -

The GenericName interface currently provided in GeoAPI was derived from an older ISO 19103 version (dated 2003-10-24). We don't have NameSpace object in GeoAPI 2.0, because the 2003 version of ISO 19103 didn't provide much explanation about what this NameSpace object is. If the 2005 version provides more details about NameSpace, would it be possible to attach a Java interface proposal to this task?

Show
Martin Desruisseaux added a comment - The GenericName interface currently provided in GeoAPI was derived from an older ISO 19103 version (dated 2003-10-24). We don't have NameSpace object in GeoAPI 2.0, because the 2003 version of ISO 19103 didn't provide much explanation about what this NameSpace object is. If the 2005 version provides more details about NameSpace, would it be possible to attach a Java interface proposal to this task?
Hide
Bryce Nordgren added a comment -

Attached a *.png of an interface proposal for Fig. 16 of ISO19103:2005(E), with emphasis on NameSpace. Treatment in the text is pretty sparse and amounts to one or two sentences per class/interface.

Show
Bryce Nordgren added a comment - Attached a *.png of an interface proposal for Fig. 16 of ISO19103:2005(E), with emphasis on NameSpace. Treatment in the text is pretty sparse and amounts to one or two sentences per class/interface.
Hide
Bryce Nordgren added a comment -

Oh yes, the *.zuml file is the UML design file for Poseidon. Don't ask me exactly what generate, register and unregister ID do. I don't know and 19103 doesn't say.

"GenericName" is abstract, and probably should not actually be implemented by anything. The inheritance of LocalName and ScopedName from GenericName is marked <<Complete>>, which I guess means that no other interfaces should subclass GenericName.

I guess "TypeName" and "MemberName" exist mainly to specify that the "aName()" function should be overridden to yield the name of the type/member.

Show
Bryce Nordgren added a comment - Oh yes, the *.zuml file is the UML design file for Poseidon. Don't ask me exactly what generate, register and unregister ID do. I don't know and 19103 doesn't say. "GenericName" is abstract, and probably should not actually be implemented by anything. The inheritance of LocalName and ScopedName from GenericName is marked <<Complete>>, which I guess means that no other interfaces should subclass GenericName. I guess "TypeName" and "MemberName" exist mainly to specify that the "aName()" function should be overridden to yield the name of the type/member.
Hide
Bryce Nordgren added a comment -

Revision of namespace proposal, with additional, optional class association in TypeName.

Show
Bryce Nordgren added a comment - Revision of namespace proposal, with additional, optional class association in TypeName.
Hide
Bryce Nordgren added a comment -

Updated Poseidon model for name space proposal. Also contains diagram for Record/RecordType proposal.

Could someone with power please delete the diagrams and Poseidon model which were attached on 10 Jan 2006?

Show
Bryce Nordgren added a comment - Updated Poseidon model for name space proposal. Also contains diagram for Record/RecordType proposal. Could someone with power please delete the diagrams and Poseidon model which were attached on 10 Jan 2006?
Hide
Bryce Nordgren added a comment -

Whoops, I meant delete the attachments which were attached on 11 Jan 2006. Sorry.

Show
Bryce Nordgren added a comment - Whoops, I meant delete the attachments which were attached on 11 Jan 2006. Sorry.
Hide
Martin Desruisseaux added a comment -

I don't have administrator rights myself, but will look what I can do.

Show
Martin Desruisseaux added a comment - I don't have administrator rights myself, but will look what I can do.
Hide
Martin Desruisseaux added a comment -

There is a comparaison between GeoAPI and some elements of the UML attached above:

  • NameSpace is missing in GeoAPI; should probably be added.
  • GenericName.depth() omitted in GeoAPI because assumed equals to GenericName.getParsedNames().size().
  • GenericName.getObject() omitted because we use GenericName as a name only, not a Map.Entry<GenericName,Object>.
  • LocalName.aName() replaced by LocalName.toString() for consistency with Java usage.
  • ScopedName.head() replaced by GenericName.asLocalName().
  • ScopedName.tail() replaced by GenericName.getScope().

The two last items are the most questionable, especially the last one which conflict with the addition of a NameSpace interface. The GenericName.getScope() method may need to be deprecated.

Show
Martin Desruisseaux added a comment - There is a comparaison between GeoAPI and some elements of the UML attached above:
  • NameSpace is missing in GeoAPI; should probably be added.
  • GenericName.depth() omitted in GeoAPI because assumed equals to GenericName.getParsedNames().size().
  • GenericName.getObject() omitted because we use GenericName as a name only, not a Map.Entry<GenericName,Object>.
  • LocalName.aName() replaced by LocalName.toString() for consistency with Java usage.
  • ScopedName.head() replaced by GenericName.asLocalName().
  • ScopedName.tail() replaced by GenericName.getScope().
The two last items are the most questionable, especially the last one which conflict with the addition of a NameSpace interface. The GenericName.getScope() method may need to be deprecated.
Hide
Bryce Nordgren added a comment -

Foundations Proposal should replace the Name Space proposal.

Show
Bryce Nordgren added a comment - Foundations Proposal should replace the Name Space proposal.
Hide
Jody Garnett added a comment -

Are we doing anything about this? Or are we done ...

Show
Jody Garnett added a comment - Are we doing anything about this? Or are we done ...
Hide
Martin Desruisseaux added a comment -

The proposal is part of the document submited in GEO-76. Moving as a sub-task of the later. I suggest to keep it open until the later is done.

Show
Martin Desruisseaux added a comment - The proposal is part of the document submited in GEO-76. Moving as a sub-task of the later. I suggest to keep it open until the later is done.
Hide
Martin Desruisseaux added a comment -

In addition, I would like to test the interfaces in an implementation before to close this task...

Show
Martin Desruisseaux added a comment - In addition, I would like to test the interfaces in an implementation before to close this task...
Hide
Martin Desruisseaux added a comment -

This is documented in the OGC Change Request document and the interfaces should have been updated accordingly, but not yet tested in GeoTools implementation. This issue is kept open for that reason.

Show
Martin Desruisseaux added a comment - This is documented in the OGC Change Request document and the interfaces should have been updated accordingly, but not yet tested in GeoTools implementation. This issue is kept open for that reason.
Hide
Adrian Custer added a comment -

GeoAPI now has a unit test that exercises the interface. The issue can now be closed on that basis.

Show
Adrian Custer added a comment - GeoAPI now has a unit test that exercises the interface. The issue can now be closed on that basis.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved: