Internals¶
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-main
when time permits.
The gt-main
module provides many well known classes covered in the public documentation:
DataAccessFinder
DataStoreFinder
FileDataStoreFinder
DataUtilities
DefaultRepository
DefaultTransaction
DefaultView
A few public exceptions:
FeatureLockException
SchemaNotFoundException
AbstractDataStore¶
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-main documentation.
The following classes are related:
AbstractDataStore
AbstractDataStoreFactory
AbstractDataStoreTest
AbstractFeatureSource
AbstractFeatureStore
AbstractFeatureLocking
DefaultFeatureResults
- the original name ofFeatureCollection
wasFeatureResults
DataStore¶
There are a large number of DataStore helper classes in gt-main
.
Default implementations:
DefaultResourceInfo
DefaultServiceInfo
FileDataStore
AbstractFileDataStore
Conformance test case:
DataTestCase
Managers
These managers, with their supporting readers and writers are responsible for
AbstractDataStore
being able wrap transaction and locking support around you work.FeatureListenerManager
InProcessLockingManager
Transaction Implementation
You can store a
TransactionStateDiff
in a Transaction, theDiffFeatureReader
andDiffFeatureWriters
will collect any changes for you in memory which you can review when the user calls commit.TransactionStateDiff
Diff
DiffFeatureReader
DiffFeatureWriter
Projection File
PrjFileReader
WorldFileReader
WorldFileWriter
FeatureCollection
¶
Lots of abstract and utility classes are available when working with FeatureCollection
:
AbstractFeatureCollection
AbstractFeatureVisitor
AdaptorFeatureCollection
DecoratingFeatureCollection
DecoratingSimpleFeatureCollection
DelegateFeatureIterator
DelegateSimpleFeatureIterator
FilteringSimpleFeatureCollection
MaxSimpleFeatureCollection
SubFeatureCollection
/FilteredIterator
SubFeatureList
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:
SimpleFeatureIteratorImpl
- used byDefaultFeatureCollection
to access all contentsFeatureIteratorImpl
NoContentIterator
- used to throw an exception on next()FilteringIterator
FeatureIteratorIterator
FeatureReaderFeatureIterator
FeatureWriterFeatureIterator
FeatureReader
¶
Low-level implementation support for implementing FeatureReader
.
DefaultFeatureReader
DefaultFIDReader
EmptyFeatureReader
EmptyFeatureWriter
These readers wrap around your simple FeatureReader
and add additional functionality such as filtering:
DelegatingFeatureReader
DelegatingFeatureWriter
FIDFeatureReader
FIDReader
FilteringFeatureReader
FilteringFeatureWriter
MaxFeatureReader
ReTypeFeatureReader
ForceCoordinateSystemFeatureReader
ForceCoordinateSystemFeatureResults
ReprojectFeatureReader
ReprojectFeatureResults
A few even work on iterators:
CollectionFeatureReader
ForceCoordinateSystemIterator
ReprojectFeatureIterator
Where general facilities are available we need SimpleFeature
implementations:
DelegateSimpleFeatureReader
DelegatingSimpleFeatureWriter
EmptySimpleFeatureReader
FilteringSimpleFeatureReader
AttributeReader¶
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.
AbstractAttributeIO
AttributeReader
AttributeWriter
JoiningAttributeReader
JoiningAttributeWriter
Wrappers¶
Wrappers used by DataUtilities
to morph to SimpleFeatureSource
, SimpleFeatureCollection
etc…
SimpleFeatureCollectionBridge
SimpleFeatureLockingBridge
SimpleFeatureSourceBridge
SimpleFeatureStoreBridge
Open Web Services¶
Some of the data structures used by open web services such as WMS and WFS are defined here.
XML¶
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
module documentation.
Style¶
The gt-main
interfaces for Style
are a straight extension of the gt-api
interfaces. Please note these implementations are not threadsafe - extensive copy constructors have been provided if you need to copy these data structures for use in an isolated thread.
Filter¶
The Filter classes in gt-main
are deprecated; and have been so since GeoTools 2.3. We are having trouble removing all the existing test cases that depend on these old Filter definitions.