Executive Summary
This page details the findings of the pre-acceptance code review for the GeoTools ISO 19107 implementation backed by JTS wrappers. This code was developed by the employees of Sys Technologies, Inc. and refactored into the GeoTools namespace by Colin Combe.
| Info | ||
|---|---|---|
| ||
|
Detailed review of this code may be found in the database attached to this page. This database is a "mini-issue-tracker" implemented in OpenOffice 2.0 Base. This database contains information about which classes are present, which interfaces are implemented, and which classes or methods are "stubs". As of this moment, I have not implmented reports, but this may be achieved by the knowledgable user. The database itself is fully populated by observations.
Overview of Geometry Root package
Class | GeoAPI Interface | Status | Comment |
|---|---|---|---|
DirectPosition1D | DirectPosition |
|
|
DirectPosition2D | DirectPosition |
|
|
DirectPositionImpl | DirectPosition |
| Arbitrary Dimensionality |
GeometryImpl | Geometry |
|
|
TransfiniteSetImpl | TransfiniteSet |
| All methods are stubs, but are implemented by GeometryImpl, the immediate (only) child of this class. Recommend removing this class. |
EnvelopeImpl | Envelope |
|
|
BoundaryImpl | Boundary |
|
|
Overview of Geometric Primitive package
Class | GeoAPI Interface | Status | Comment |
|---|---|---|---|
BearingImpl | Bearing |
| Angles and direction are unrelated, angles have no associated units. |
CurveImpl | Curve |
|
|
CurveBoundaryImpl | CurveBoundary |
|
|
CurveSegmentImpl | CurveSegment |
| Abstract class with no methods. Either consolidate subclass functionality or remove. |
OrientableCurveImpl | OrientableCurve |
| Abstract class with no methods. Either consolidate subclass functionality or remove. |
OrientablePrimitiveImpl | OrientablePrimitive |
| Abstract class with no methods. Either consolidate subclass functionality or remove. |
OrientableSurfaceImpl | OrientableSurface |
| Abstract class with no methods. Either consolidate subclass functionality or remove. |
PointImpl | Point |
| Will not calculate bearing to another point; when setting location, attempts to convert to this Point's current CRS instead of adopting the new CRS. OK? |
PrimitiveImpl | Primitive |
| Abstract class with no methods. Either consolidate subclass functionality or remove. |
PrimitiveBoundaryImpl | PrimitiveBoundary |
| Abstract class with no methods. Either consolidate subclass functionality or remove. |
PrimitiveFactoryImpl | PrimitiveFactory |
|
|
RingImpl | Ring |
| Need to ensure that |
ShellImpl | Shell |
| Stub, not used, remove. |
SolidImpl | Solid |
| Stub, not used, remove. |
SolidBoundaryImpl | SolidBoundary |
| Stub, not used, remove. |
SurfaceImpl | Surface |
|
|
SurfaceBoundaryImpl | SurfaceBoundary |
|
|
SurfacePatchImpl | SurfacePatch |
|
|
Overview of Geometric Complex package
Class | GeoAPI Interface | Status | Comment |
|---|---|---|---|
ComplexImpl | Complex |
| Candidate for a "Notifying Set" |
ComplexBoundaryImpl | ComplexBoundary |
|
|
CompositeImpl | Composite |
| Should be an abstract class to prevent instantiation. |
CompositeCurveImpl | CompositeCurve |
|
|
CompositeSurfaceImpl | CompositeSurface |
|
|
Overview of Coordinate Geometry package
Class | GeoAPI Interface | Status | Comment |
|---|---|---|---|
ArcStringImpl | ArcString |
| Everything is stubbed out. |
ArcImpl | Arc |
| Everything is stubbed out. |
CircleImpl | Circle |
| Adds nothing to |
ArcStringByBulgeImpl | ArcStringByBulge |
| Everything is stubbed out. |
ArcByBulgeImpl | ArcByBulge |
| Adds nothing to |
ConicImpl | Conic |
| Everything is stubbed out. |
GenericCurveImpl | GenericCurve |
| Manages caching of JTS peer object. |
GenericSurfaceImpl | GenericSurface |
| Abstract class with no methods. Either consolidate subclass functionality or remove. |
GeodesicStringImpl | GeodesicString |
| Everything is stubbed out. |
GeodesicImpl | Geodesic |
| Adds nothing to |
GeometryFactoryImpl | GeometryFactory |
| Some stubs could be fleshed out easily: e.g. LineSegment... |
LineSegmentImpl | LineSegment |
|
|
LineStringImpl | LineString |
|
|
ParamForPointImpl | ParamForPoint |
| Everything is stubbed out. |
PointArrayImpl | PointArray |
| Likely to need efficiency improvements for large arrays... |
PointGridImpl | PointGrid |
| Suggest using |
PolygonImpl | Polygon |
|
|
PolyhedralSurfaceImpl | PolyhedralSurface |
| Class does not constrain surface patches to be polygons. Needs to move from primitives to coordinate geometry package. |
PositionImpl | Position |
| This is just another name for "DirectPosition". Interface is superfluous. |
Overview of Geometric Aggregate Package
Class | GeoAPI Interface | Status | Comment |
|---|---|---|---|
AggregateImpl | Aggregate |
| Candidate for "Notifying Set" usage. |
MultiPointImpl | MultiPoint |
| Neither GeoAPI nor this class define the derived "position" attribute. |
MultiPrimitiveImpl | MultiPrimitive |
| Abstract class with no methods. Either consolidate subclass functionality or remove. |