Great review Andrea. Here are my comments.

* AttributeType.isIdentified()

This is more or less straight from xml schema. It used to denote whether
instances of types have an id essentially. Think feature. But also in
GML other types are identifiable. Like geometries.

* getUserData()/putUserData()

I know that Gabriel found this useful for complex features. What he did
was use it to store the actualy parsed XSD elements straight from an xml
schema. He found it a nice way to keep the information around without
explicity tying the model to xml.

* Java Bean Conventions

+1, and they are probably inconsistent in some places. We can still
model convenience methods with he absence of a setter method.

* FeatureType namespace

Not sure i see this. I see PropertyType.getName().

* CRS

Agreed. And my opinion is that too many things have CRS's on them.
Currently you have the following methods.

 - FeatureType.getCRS()
 - Feature.getCRS()
 - GeometryAttributeType.getCRS()
 - GeometryAttribute.getCRS()

Its confusing... and undocumented how each relates to each other. I have
seen the results of this in starting to write code... and trying to
figure out the crs is a 4 level deep nested if-else statement.

* InternationlizedString

Can we kill this? I don't see the point of modeling i18n directly in the
api since every application does i18n differently. It would be one thing
if this was a subclass of String, but its not. I know it extends
CharSequence but still... I dont really see any other java api's that do
this.

* Descriptors

I understand that the idea of a descriptor is an abstraction. But in
this case I actually see it as a necessary one. In our current type
system there is no way to separate the type and the instance. For
instance, whenever a feature type has an integer attribute we end up
creating a custom on the fly attribute type for it. Its like creating a
new class every time you want to instantiate an object.

And i admit, this strategy works fine for the simple case. But as soon
as you start talking more complex attribute types it soon falls down. As
you would have to duplicate alot of the structure when creating an
attribute type, instead of just using a single defined type.

Hope that is not confusing. It sounds like you understand that part of
it regardless and that your issue is just with the getName() methods on
the api. A duplicate getName(). I don't see where getName() returns an
I18NString.

* FeatureCollection

I think we should kill this all together from geoapi. It adds a ton of
complexity (associations and stuff) with very little gain. Especially
since we recently decided how to model feature collection in geotools
and it involves not making FeatureCollection a feature.

* Choice/Sequence

These appear to be unused. Hopefully Gabriel can better comment on the
usage of these.

-Justin

Andrea Aime wrote:
> Hi,
> so, I've been assigned a GeoAPI feature model review
> and I've spent the last day wandering in the interface,
> looking at javadocs and reverse engineering models.
> 
> The result along with my observation can be downloaded
> from here:
> http://geo.openplans.org/aaime/GeoApiFMReview.pdf
> 
> If you have any feedback about it, feel free to do
> so as an answer to this mail (sorry for not putting
> the whole thing in a mail to start with, it was
> a bit long and diagrams would not fit).
> 
> Cheers
> Andrea
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems?  Stop.
> Now Search log events and configuration files using AJAX and a browser.
> Download your FREE copy of Splunk now >>  http://get.splunk.com/
> _______________________________________________
> Geotools-devel mailing list
> Geotools-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geotools-devel
> 
> !DSPAM:4007,46dd9284227981439371379!
> 


-- 
Justin Deoliveira
The Open Planning Project
http://topp.openplans.org

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Geotools-devel mailing list
Geotools-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to