Package org.geotools.data.sort
Class SortedFeatureReader
- Object
-
- SortedFeatureReader
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,FeatureReader<SimpleFeatureType,SimpleFeature>
,SimpleFeatureReader
public class SortedFeatureReader extends Object implements SimpleFeatureReader
FeatureReader used to sort contents.The implementation makes use of {@link MergeSortDumper).
-
-
Constructor Summary
Constructors Constructor Description SortedFeatureReader(SimpleFeatureReader reader, Query query)
Builds a new sorting feature readerSortedFeatureReader(SimpleFeatureReader reader, SortBy[] sortBy, int maxFeatures)
Builds a new sorting feature reader
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static boolean
canSort(SimpleFeatureType schema, SortBy... sortBy)
Checks if the schema and the sortBy are suitable for merge/sort.void
close()
Release the underlying resources associated with this stream.static Comparator<SimpleFeature>
getComparator(SortBy... sortBy)
Builds a comparator that can be used to sort SimpleFeature instances in memorystatic Comparator<SimpleFeature>
getComparator(SortBy[] sortBy, SimpleFeatureType schema)
Builds a comparator that can be used to sort SimpleFeature instances in memorySimpleFeatureType
getFeatureType()
Return the FeatureType this reader has been configured to create.static int
getMaxFeaturesInMemory(Query q)
Gets the max amount amount of features to keep in memory from the query and system hintsboolean
hasNext()
Query whether this FeatureReader has another Feature.SimpleFeature
next()
Reads the next Feature in the FeatureReader.
-
-
-
Constructor Detail
-
SortedFeatureReader
public SortedFeatureReader(SimpleFeatureReader reader, Query query) throws IOException
Builds a new sorting feature reader- Parameters:
reader
- The reader to be sortedquery
- The query holding the SortBy directives, and the eventual max features in memory hintHints.MAX_MEMORY_SORT
- Throws:
IOException
-
SortedFeatureReader
public SortedFeatureReader(SimpleFeatureReader reader, SortBy[] sortBy, int maxFeatures) throws IOException
Builds a new sorting feature reader- Parameters:
reader
- The reader to be sortedsortBy
- The sorting directivesmaxFeatures
- The maximum number of features to keep in memory- Throws:
IOException
-
-
Method Detail
-
canSort
public static final boolean canSort(SimpleFeatureType schema, SortBy... sortBy)
Checks if the schema and the sortBy are suitable for merge/sort. All attributes need to beSerializable
, all sorting attributes need to beComparable
-
getMaxFeaturesInMemory
public static int getMaxFeaturesInMemory(Query q)
Gets the max amount amount of features to keep in memory from the query and system hints
-
getFeatureType
public SimpleFeatureType getFeatureType()
Description copied from interface:FeatureReader
Return the FeatureType this reader has been configured to create.- Specified by:
getFeatureType
in interfaceFeatureReader<SimpleFeatureType,SimpleFeature>
- Returns:
- the FeatureType of the Features this FeatureReader will create.
-
next
public SimpleFeature next() throws IOException, IllegalArgumentException, NoSuchElementException
Description copied from interface:FeatureReader
Reads the next Feature in the FeatureReader.- Specified by:
next
in interfaceFeatureReader<SimpleFeatureType,SimpleFeature>
- Returns:
- The next feature in the reader.
- Throws:
IOException
- If an error occurs reading the Feature.NoSuchElementException
- If there are no more Features in the Reader.IllegalArgumentException
-
hasNext
public boolean hasNext() throws IOException
Description copied from interface:FeatureReader
Query whether this FeatureReader has another Feature.- Specified by:
hasNext
in interfaceFeatureReader<SimpleFeatureType,SimpleFeature>
- Returns:
- True if there are more Features to be read. In other words, true if calls to next would return a feature rather than throwing an exception.
- Throws:
IOException
- If an error occurs determining if there are more Features.
-
close
public void close() throws IOException
Description copied from interface:FeatureReader
Release the underlying resources associated with this stream.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceFeatureReader<SimpleFeatureType,SimpleFeature>
- Throws:
IOException
- if an I/O error occurs
-
getComparator
public static Comparator<SimpleFeature> getComparator(SortBy... sortBy)
Builds a comparator that can be used to sort SimpleFeature instances in memory
-
getComparator
public static Comparator<SimpleFeature> getComparator(SortBy[] sortBy, SimpleFeatureType schema)
Builds a comparator that can be used to sort SimpleFeature instances in memory
-
-