Geotools implementations of GeoAPI interfaces (especially in CRS and metadata packages) uses the same name than the corresponding interfaces. Some negative feedback has been reported against that. We should probably add some suffix to classname when there is no other way to differentiate the name (apart from package names). Proposal are:
GT (e.g. GeodeticDatumGT)
Inconvenient: it sound like a sport car.
Impl (e.g. GeodeticDatumImpl)
Inconvenient: is is a little bit ugly, and doesn't said which implementation it is. For example in the case of some geometry objects, we expect at least 2 implementations: one for tuned for J2D-renderer (e.g. ArrayPoint2D), and one which is a wrapper around JTS object (e.g. ArrayPointJTS).
Which suffix people prefers (including "none" if they are against)?
Note: the following classes in 'org.geotools.xml.schema.impl' already uses the GT suffix:
CodeHaus Comment From: desruisseaux - Time: Tue, 5 Apr 2005 05:17:47 -0500
"GI" for "Geotools Implementation"? I understand that it looks like a soldier...
It is worth to note that if we come to anything else than "GT", the implementation classes cited in the description will need to be updated as well if we want consistency accross Geotools.
CodeHaus Comment From: desruisseaux - Time: Mon, 11 Apr 2005 20:23:12 -0500
Vote result from the mailing list (as of Monday, April 11):
- Impl suffix: 4 votes
- Default prefix: 2 votes
- GT suffix: 1 vote (me...)
- No change: 1 vote
However, Jody rightly point out that we already have naming conventions:
According those conventions, we need to add the "Default" prefix.
CodeHaus Comment From: desruisseaux - Time: Mon, 23 May 2005 06:11:40 -0500
Added "Impl" suffix to metadata implementations.
CodeHaus Comment From: desruisseaux - Time: Mon, 23 May 2005 18:17:44 -0500
The only metadata implementation provided in 2.0.0 release was Citation:
This one need to be deprecated and removed in 2.2 release only. All other legacy implementations may be removed.
CodeHaus Comment From: desruisseaux - Time: Sun, 29 May 2005 07:40:03 -0500
Work is finished. Summary:
- Addition of "Impl" suffix to all metadata implementations.
- Addition of "Default" or "Abstract" prefix to CRS and
parameter implementations. This is consistent with the
name changes that Jody already did a while ago for
AbstractParameter and the like (I keept Jody's names, and
continued the renaming of other classes in the same way).
Dependencies in other packages (including plugins) were updated.
Old CRS and parameter names still there as deprecated classes. I plan to delete them from the trunk after the creation of the 2.1 branch (so they would be included in 2.1 release, because they were already there in 2.0).
If some names are badly choosen, comments welcome. Better to fix any misnaming now.