Have I qualified as GeoTools most annoying programmer yet? :] I wanted to pass on my enthusiastic commendation for the great design of the GeoAPI/GeoTools SimpleFeature code. This would include the SimpleFeature interface, SimpleFeatureType interface, PropertyDescriptior/AttributeDescriptor interfaces, and the PropertyType/AttributeType interfaces. I've been working with these interfaces for a few days now and I enjoy their elegance. I don't know which specific programmers are responsible for the design, but they have done really great work, and I thank them.
I was afraid that the feature model in GeoTools would be too complex to be really useful in my endeavors, but I can see now that is not the case. If I ignore the complex feature code, and only concentrate on the classes/interfaces that deal with SimpleFeature objects, its really not that bad at all! In fact (don't quote me on this) I even think OpenJUMP could be refactored at some point to use the SimpleFeature model from GeoTools. This would be a major programming effort similar to the challenge we will face when/if Martin migrates the JTS Geometry class to an interface, but I think the potential rewards would be huge. This would be the most important step towards greater sharing of code between OpenJUMP and GeoTools. I always thought the way OpenJUMP defined attributes was a little akward, and the PropertyType/PropertyDescriptor combination is an excellent alternative. I was just writing a method in which would set an attribute value of a WaypointDataObject to null when given the attribute name. However, I didn't want to allow the method to set the latitude or longitude attributes to null. Instead of testing for these values in a chained conditional statement, I just obtained the AttributeDescriptor for the attribute identified by the caller and tested the result of the descriptor's isNillable() method. If the result was true, I allowed the attribute value to be set to null. If it was false, I threw an exception. Very nice! I don't know that you could currently do this with OpenJUMP's feature model. (At least not as elegantly.) I'm excited about working with the SimpleFeature code in GeoTools more in the next few weeks. I don't know if we'll ever have the resources to move OpenJUMP to this feature model, but I now understand that it is at least possible. Landon P.S. - You can view my WaypointDataObject class here: http://surveyos.svn.sourceforge.net/viewvc/surveyos/java/gpx/src/org/geotools/gpx2/dataobjects/WaypointDataObject.java?view=markup You can view some an interface containing some utitlites for SimpleFeatureType that I hope to implement soon here: http://surveyos.svn.sourceforge.net/viewvc/surveyos/java/gpx/src/org/geotools/dataobjects/SimpleFeatureTypeUtils.java?view=markup ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Geotools-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geotools-devel
