The gt-main class holds a number of internal and abstract classes useful to those implementing support for additional DataStore formats. These classes should be moved to gt-data when time permits.
The gt-main module provides many well known classes covered in the public documentation:
A few public exceptions:
And a couple that are no longer used:
The AbstractDataStore is an old base class for DataStore implementations, currently used only by MemoryDataStore and PropertyDataStore (Old). All new stores use ContentDataStore instead.
This class is helpful starting point, however we have taken the lessons learned and wrapped them up in ContentDataStore covered in the gt-data documentation.
The following classes are related:
There are a large number of DataStore helper classes in gt-main.
Conformance test case:
These managers, with their supporting readers and writers are responsible for AbstractDataStore being able wrap transaction and locking support around you work.
You can store a TransactionStateDiff in a Transaction, the DiffFeatureReader and DiffFeatureWriters will collect any changes for you in memory which you can review when the user calls commit.
Lots of abstract and utility classes are available when working with FeatureCollection:
FeatureCollections often form a pair with the iterator they use to make contents available: * DataFeatureCollection / FeatureWriterIterator / FeatureReaderIterator * EmptyFeatureCollection / EmptyIterator * FilteringFeatureCollection / FilteringFeatureIterator * MaxFeaturesFeatureCollection / MaxFeaturesIterator * ReprojectingFeatureCollection / ReprojectingIterator * ReTypingFeatureCollection / ReTypingIterator
And the lower level iterator helpers:
Low-level implementation support for implementing FeatureReader.
These readers wrap around your simple FeatureReader and add additional functionality such as filtering:
A few even work on iterators:
Where general facilities are available we need SimpleFeature implementations:
Sub-zero: These are not used in practice they were intended to be used for attribute level operations; in practice everyone works directly with features. The only place where they are used is with the Shapefile implementation where they are used to “join” the attributes from the shp and dbf files.
Wrappers used by DataUtilities to morph to SimpleFeatureSource, SimpleFeatureCollection etc...
Some of the data structures used by open web services such as WMS and WFS are defined here, when we are happy with them they will be published as part of gt-api.
Some of the SAX, DOM and Transform classes for handling are defined in gt-main.
Their use for XML and GML handling will be covered in gt-xml.