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 2017/12/15 01:12:02 UTC
[jira] [Reopened] (SIS-187) Reduce visibility of Shapefile fields
[ https://issues.apache.org/jira/browse/SIS-187?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Desruisseaux reopened SIS-187:
-------------------------------------
As explained in the description, attributes like xmin, ymin, _etc._ in {{ShapefileDescriptor}} should be replaced by standard API. Adding getter methods like {{getXmin()}} does not really hide those attribute, since they still can be accessed only through non-standard API, namely this specific {{ShapefileDescriptor}} class. The intend of this issue is to replace them by ISO 19115 metadata.
> Reduce visibility of Shapefile fields
> -------------------------------------
>
> Key: SIS-187
> URL: https://issues.apache.org/jira/browse/SIS-187
> Project: Spatial Information Systems
> Issue Type: Sub-task
> Components: Shapefile
> Reporter: Martin Desruisseaux
> Assignee: M. Le Bihan
> Labels: JDBC, Shapefile
>
> The {{Shapefile}} implementation contains many fields, and all of them are currently public. Probably many of them could be private. Below is a list of fields with a guess of whether users are likely to want this information, and how he could obtain it.
> h3. Fields that could be considered internal mechanic
> * {{FileCode}}: currently used only in {{Shapefile.toString()}} implementation without explanation.
> * {{FileLength}}: currently used only in {{Shapefile.toString()}} implementation. Potentially useful to the {{Shapefile}} reader itself, but unlikely to be useful to external user since getting a useful meaning from a file length require knowledge of the file format structure.
> * {{Version}}: currently used only in {{Shapefile.toString()}} implementation. Not clear if it is the file format version or the dataset version. In the former case, this is an important information for the {{Shapefile}} reader but less for other users. In the later case, it could be an ISO metadata property.
> * {{dbf}}: a pointer to the underlying {{Database}} object. May be a dangerous things to expose. If nevertheless we really want to give direct access to the DBF database, maybe we should return a JDBC {{Connection}} instead.
> h3. Information to be made accessible through a public API
> * {{xmin}}, {{ymin}}, {{xmax}}, {{ymax}}: the spatial extent of the data. Could be made accessible through the ISO 19115 {{GeographicBoundingBox}} element. However it is unclear if those elements are always expressed in a geographic CRS or if they can be in a projected CRS.
> * {{zmin}}, {{zmax}}: the vertical extent of the data. Could be made accessible through the ISO 19115 {{VerticalExtent}} element. However the {{VerticalCRS}} of that extent is currently unknown.
> * {{main}}, {{mmax}}: the javadoc does not said what those values are.
> * {{FeatureMap}}: the set of {{Feature}} is indeed important, but maybe we should return them through some kind of iterator (or a JDK8 {{Stream}} ?) for fetching data on-demand (in a later implementation, not necessarily now) rather than loading all of them at {{Shapefile}} construction time.
> h3. Open questions
> * {{ShapeType}}: currently used only in {{Shapefile.toString()}} implementation. Tells whether the geometries are points, polygons, etc.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)