Factory type hierarchy changed to accommodate WFSDataAccessFactory

Factory.svg
  • AbstractDataStoreFactory's implementation detail is moved into AbstractDataAccessFactory.
  • AbstractDataStoreFactory extends the new AbstractDataAccessFactory and retains its obligation to implement DataStoreFactorySpi - it's kept for backwards-compatibility but is no longer required by WFSDataStoreFactory.
  • WFSDataStoreFactory extends WFSDataAccessFactory (which in turn extends the new AbstractDataAccessFactory) and it now directly implements DataStoreFactorySpi.

DataAccess type hierarchy changed to accommodate WFSContentDataAccess

DataAccess.svg
  • WFSContentDataAccess implements DataAccess<FeatureType, Feature> directly. There's potential to either: create analogues of DataStore and ContentDataStore, or to succeed those forms with less restrictive versions, deferring the type-narrowing to WFSContentDataStore.

GetFeatureParser type hierarchy changed to accommodate XmlComplexFeatureParser

GetFeatureParser.svg
  • Convert GetFeatureParser to generic form GetParser<F extends Feature>, deprecate GetFeatureParser.
  • Add new abstract class XmlFeatureParser<F extends Feature>. This contains generic implementations taken with modification from XmlSimpleFeatureParser.
  • XmlSimpleFeatureParser and a new XmlComplexFeatureParser now both extend XmlFeatureParser, using SimpleFeature and Feature as their type parameters respectively.

SimpleFeatureBuilder refactored to accommodate ComplexFeatureBuilder

FeatureBuilder.svg
  • SimpleFeatureBuilder's impementation is generalised and refactored to a new abstract class, FeatureBuilder<F : FeatureBuilder, FT FeatureType>
  • The new class, ComplexFeatureBuilder can now share some of the implementation detail that was originaly just in SimpleFeatureBuilder.

-- AdamBrown - 23 May 2012

Topic revision: r3 - 25 May 2012, AdamBrown