SimpleFeatureCollection to remove generics from example code ------------------------------------------------------------
Key: GEOT-3051 URL: http://jira.codehaus.org/browse/GEOT-3051 Project: GeoTools Issue Type: Improvement Components: data Affects Versions: 2.6.3 Reporter: Jody Garnett Priority: Minor Fix For: 2.7-M0 I have had the pleasure of running through the geotools training material a couple times in the last month; and I have watched each person get stuck in the same spot. Generics. Generics in the Csv2Shape.java class. {code} public static void main(String[] args) throws Exception { ... String typeName = newDataStore.getTypeNames()[0]; FeatureSource<SimpleFeatureType,SimpleFeature> featureSource = (<SimpleFeatureType,SimpleFeature>) newDataStore.getFeatureSource(typeName); if (featureSource instanceof FeatureStore<?,?>) { FeatureStore<SimpleFeatureType,SimpleFeature> featureStore = (FeatureStore<SimpleFeatureType,SimpleFeature>) featureSource; ... } } else { System.out.println(typeName + " does not support read/write access"); System.exit(1); } } {code} For now the solution (committed) is to use: {code} @SuppressWarnings("unchecked") public static void main(String[] args) throws Exception { ... String typeName = newDataStore.getTypeNames()[0]; FeatureSource featureSource = newDataStore.getFeatureSource(typeName); if (featureSource instanceof FeatureStore) { FeatureStore featureStore = (FeatureStore) featureSource; ... } } else { System.out.println(typeName + " does not support read/write access"); System.exit(1); } } {code} In addition to being magic to beginning Java users generics make the lines so long it no longer looks like a simple assignment; and by the time they have read word for word through the cast to feature store they need to start again to see what happened. Previous attempts using FeatureSource<?,?> were even more scary; they did not even try reading the code. So here is the minimal idea for the Csv2SShape example: - no new methods - SimpleFeatureCollection extends FeatureCollection<SimpleFeatureType,SimpleFeature> - SimpleFeatureSource and SimpleFeatureStore once again with no new API; just returning SimpleFeatureCollection This task is done when: - casts are no longer needed example I am prepared for this to be a change only on trunk; but I would need some assurances I will have a release of trunk for FOSS4G this year. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira ------------------------------------------------------------------------------ _______________________________________________ Geotools-devel mailing list Geotools-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-devel