[geos-devel] packages -> namespace
strk at refractions.net
strk at refractions.net
Thu Nov 4 03:37:31 EST 2004
Hello all,
I've already sent a mail about this, but since I feel
we really need to do that, I insist.
Please let me know what you think.
GEOS is a port from JTS.
IMO the port missed the package layout.
Every package in Java represent a separate namespace.
For example JTS has two PlanarGraph classes, one
in the geomgraph and another in the planargraph package.
In GEOS this became geos::PlanarGraph and geos::planarPlanarGraph.
This has two drawbacks:
- hard-to-understand corrispondence between GEOS and JTS
- possible name clashes
My suggestion is to map every JTS package to a GEOS sub-namespace,
as in:
geos::geomgraph::PlanarGraph
geos::planargraph::PlanarGraph
Code that in JTS goes:
import planargraph;
In GEOS would go:
using namespace geos::planargraph;
A problem in this is that once again we'll break the API, but
I knew we had API stability problems and hence I reduced the
documentation to the subset used by the main client: PostGIS.
If we base our versioning scheme on the documented part of
GEOS we can safely consider indexer, noder and graphs as new
interfaces, instead of a change in old interfaces.
I mean we could keep the 'geom' package in the root namespace
(geos) and just define a new namespace for every newly documented
package.
What do you think about it ?
--strk;
More information about the geos-devel
mailing list