Class SortedFeatureReader

    • Constructor Detail

      • SortedFeatureReader

        public SortedFeatureReader​(SimpleFeatureReader reader,
                                   Query query)
                            throws IOException
        Builds a new sorting feature reader
        Parameters:
        reader - The reader to be sorted
        query - The query holding the SortBy directives, and the eventual max features in memory hint Hints.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 sorted
        sortBy - The sorting directives
        maxFeatures - 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 be Serializable, all sorting attributes need to be Comparable
      • getMaxFeaturesInMemory

        public static int getMaxFeaturesInMemory​(Query q)
        Gets the max amount amount of features to keep in memory from the query and system hints
      • next

        public SimpleFeature next()
                           throws IOException,
                                  IllegalArgumentException,
                                  NoSuchElementException
        Description copied from interface: FeatureReader
        Reads the next Feature in the FeatureReader.
        Specified by:
        next in interface FeatureReader<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 interface FeatureReader<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 interface AutoCloseable
        Specified by:
        close in interface Closeable
        Specified by:
        close in interface FeatureReader<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