Package org.geotools.process.vector
Class ProcessingCollection<T extends FeatureType,F extends Feature>
Object
BaseFeatureCollection<T,F>
ProcessingCollection<T,F>
- Type Parameters:
T-F-
- All Implemented Interfaces:
FeatureCollection<T,F>
- Direct Known Subclasses:
SimpleProcessingCollection
public abstract class ProcessingCollection<T extends FeatureType,F extends Feature>
extends BaseFeatureCollection<T,F>
Abstract base class to ease the implementation of a streaming processing collection, that is, one that tries to
compute the results on the fly as the iterator is traversed.
Besides the few methods that the implementor actually needs to override it suggested to consider overriding also the followings to get extra performance gains:
- Author:
- Andrea Aime - GeoSolutions
-
Field Summary
Fields inherited from class BaseFeatureCollection
id, schema -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract TBuilds once and for all the target feature type.abstract FeatureIterator<F>features()Streams out the output featuresabstract ReferencedEnvelopeThe bounds of features in the output.The schema for the child feature members of this collection.abstract intsize()The number of features in the output.Methods inherited from class BaseFeatureCollection
accepts, contains, containsAll, getID, isEmpty, sort, subCollection, toArray, toArray
-
Constructor Details
-
ProcessingCollection
public ProcessingCollection()
-
-
Method Details
-
features
Streams out the output features- Specified by:
featuresin interfaceFeatureCollection<T extends FeatureType,F extends Feature> - Specified by:
featuresin classBaseFeatureCollection<T extends FeatureType,F extends Feature> - Returns:
- A FeatureIterator.
-
getBounds
The bounds of features in the output. If the bounds are not known in advance once can call the getFeatureBounds() which will build it from the features as they are returned from the feature iterator.- Specified by:
getBoundsin interfaceFeatureCollection<T extends FeatureType,F extends Feature> - Overrides:
getBoundsin classBaseFeatureCollection<T extends FeatureType,F extends Feature> - Returns:
- An Envelope containing the total bounds of this collection.
-
buildTargetFeatureType
Builds once and for all the target feature type. The results are available by calling getSchema() -
size
public abstract int size()The number of features in the output. If the size is not known in advance once can call the getFeatureCount() which will count the features as they are returned from the feature iterator.- Specified by:
sizein interfaceFeatureCollection<T extends FeatureType,F extends Feature> - Overrides:
sizein classBaseFeatureCollection<T extends FeatureType,F extends Feature> - Returns:
- Number of items, or Interger.MAX_VALUE
- See Also:
-
getSchema
Description copied from interface:FeatureCollectionThe schema for the child feature members of this collection.Represents the most general FeatureType in common to all the features in this collection.
- For a collection backed by a shapefiles (or database tables) the FeatureType returned by getSchema() will complete describe each and every child in the collection.
- For mixed content FeatureCollections you will need to check the FeatureType of each Feature as it is retrived from the collection
- The degenerate case returns the "_Feature" FeatureType, where the only thing known is that the contents are Features.
- Specified by:
getSchemain interfaceFeatureCollection<T extends FeatureType,F extends Feature> - Overrides:
getSchemain classBaseFeatureCollection<T extends FeatureType,F extends Feature> - Returns:
- FeatureType describing the "common" schema to all child features of this collection
-