Introduction of getInfo - STEMLab/geotools GitHub Wiki
-
Contact: Jody Garnett, Johann Sorel
-
Tagline: What is this? No really...
We need to access a description of what a spatial resources is. The goal is to make this information available to GeoTools developers:
- will give widgets swing pending some more information to display and describe;
- will allow uDig to back port some code. In some cases it will allow uDig to close up some anonymous subclasses: JDBC DataStores often subclassed for connection, WFSDataStore subclassed for capabilities information.
Previous work focused on making the description available for searching, this proposal is about making the description available on the classes directly.
What the description is is well understood; it is: "Dublin Core plus a little bit more" (ie bounds and crs). In GeoTools 2.4.x this ideas is represented as GeoResourceInfo and ServiceInfo.
ServiceInfo
shapefile
postgis
wms
wfs
description
title
for display in user interface
keywords
description
publisher
schema
type of service
source
icon
for display in user interface
shapefile
postgis
wms
wfs
additions
access fees
do not care
ResourceInfo
shapefile
postgis
wms
wfs
notes
title
for display in user interface
keywords
description
name
already part of data access api?
schema
type of data
source
icon
for display in user interface
bounds
crs
matches bounds crs
shapefile
postgis
wms
wfs
additions
latlonextent
do we care?
These info classes will be moved into org.geotools.data as part of the proposal (see This is NOT catalog above).
There have been two suggestions on how to extend this core set:
- add a Map of some kind to the data structure, with static final constants for known keys
- extend the interface specifically
This proposal has been accepted:
- Andrea Aime +1
- Ian Turton +0
- Justin Deoliveira +0
- Jody Garnett +1
- Martin Desruisseaux +1 with comments (see below)
- Simone Giannecchini +0
Community support:
-
Jesse Eichar +1
| :white_check_mark: | :no_entry: | :warning: | :negative_squared_cross_mark: |
------------|--------------------|------------|-------------------------|-------------------------------| no progress | done | impeded | lack mandate/funds/time | volunteer needed |
- β Move catalog stuff out of the way to an unsupported/module to prevent confusion
- β Add org.geotools.data.ServiceInfo and org.geotools.data.ResourceInfo (remove a few stray getTile methods)
- β Add getInfo methods to WFSDataStore for gabriel to review
- β Add getInfo methods to ShapefileDataSTore for Jesse to review
- β Add getInfo method to AbstractGridCoverage2DReader
- β Add getInfo method to DataStore and stub at the AbstractDataStore, JDBCDataStore, ContentDataStore, Implement for stand alone implementations like ArcSDE
- β Take the best of geotools or udig getInfo code as the implementation
- β
Cut over uDig to use this code as the final sanity
check
This was done to communicate WFS GetCapabilities information - β Provide an example use in the user guide: http://docs.geotools.org/latest/userguide/library/api/datastore.html
package org.geotools.catalog;
interface ServiceInfo {
...
}
package org.geotools.catalog;
interface GeoResourceInfo {
...
}
Move ServiceInfo to org.geotools.data.ServiceInfo
package org.geotools.data;
interface ServiceInfo {
String getTitle();
String getDescription();
Icon getIcon();
Set<String> getKeywords();
URI getPublisher();
URI getSchema();
URI getSource();
}
Move GeoResourceInfo to org.geotools.data.ResourceInfo:
package org.geotools.data;
interface ResourceInfo {
// Dublin Core
String getName();
String getTitle();
String getDescription();
Icon getIcon();
Set<String> getKeywords();
URI getSchema();
// And a little bit more
ReferencedEnvelope getBounds();
CoordinateReferenceSystem getCRS();
}
ServiceInfo can be accessed from DataStore:
import org.geotools.data.ServiceInfo;
interface DataStore {
ServiceInfo getInfo();
}
ResourceInfo can be accessed from FeatureSource:
import org.geotools.data.ResourceInfo;
interface FeatureSource {
ResourceInfo getInfo();
}
ServiceInfo and ResourceInfo can be accessed from AbstractGridCoverageReader2DReader:
import org.geotools.data.ServiceInfo;
import org.geotools.data.ResourceInfo;
interface AbstractGridCoverageReader2DReader{
ServiceInfo getInfo();
ResourceInfo getInfo( String subname );
}
ServiceInfo and ResourceInfo can be accessed from WebMapServer:
class WebMapServer extends AbstractOpenWebService {
ServiceInfo getInfo();
}
class Layer {
ResourceInfo getInfo();
}
list the pages effected by this proposal