Class DiffFeatureReader<T extends FeatureType,​F extends Feature>

  • All Implemented Interfaces:
    Closeable, AutoCloseable, FeatureReader<T,​F>

    public class DiffFeatureReader<T extends FeatureType,​F extends Feature>
    extends Object
    implements FeatureReader<T,​F>
    A FeatureReader that considers differences.

    Used to implement In-Process Transaction support. This implementation will need to peek ahead in order to check for deletetions.

    Author:
    Jody Garnett, Refractions Research
    • Constructor Detail

      • DiffFeatureReader

        public DiffFeatureReader​(FeatureReader<T,​F> reader,
                                 Diff diff2)
        This constructor grabs a "copy" of the current diff.

        This reader is not "live" to changes over the course of the Transaction. (Iterators are not always stable of the course of modifications)

        Parameters:
        diff2 - Differences of Feature by FID
      • DiffFeatureReader

        public DiffFeatureReader​(FeatureReader<T,​F> reader,
                                 Diff diff2,
                                 Filter filter)
        This constructor grabs a "copy" of the current diff.

        This reader is not "live" to changes over the course of the Transaction. (Iterators are not always stable of the course of modifications)

        Parameters:
        diff2 - Differences of Feature by FID
    • Method Detail

      • hasNext

        public boolean hasNext()
                        throws IOException
        Description copied from interface: FeatureReader
        Query whether this FeatureReader has another Feature.
        Specified by:
        hasNext in interface FeatureReader<T extends FeatureType,​F extends Feature>
        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.
        See Also:
        FeatureReader.hasNext()
      • 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<T extends FeatureType,​F extends Feature>
        Throws:
        IOException - if an I/O error occurs
        See Also:
        FeatureReader.close()
      • queryDiff

        protected void queryDiff()
      • querySpatialIndex

        protected void querySpatialIndex()
      • queryAdded

        protected void queryAdded()
      • queryModified

        protected void queryModified()
      • queryFidFilter

        protected void queryFidFilter()
      • getIndexedFeatures

        protected List getIndexedFeatures()
      • extractBboxForSpatialIndexQuery

        protected Envelope extractBboxForSpatialIndexQuery​(BinarySpatialOperator filter)
      • isDefaultGeometry

        protected boolean isDefaultGeometry​(PropertyName ae)
      • isSubsetOfBboxFilter

        protected boolean isSubsetOfBboxFilter​(Filter f)