org.geotools.data
Class DiffFeatureReader<T extends FeatureType,F extends Feature>

Object
  extended by DiffFeatureReader<T,F>
All Implemented Interfaces:
Closeable, 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 Summary
DiffFeatureReader(FeatureReader<T,F> reader, Diff diff2)
          This constructor grabs a "copy" of the current diff.
DiffFeatureReader(FeatureReader<T,F> reader, Diff diff2, Filter filter)
          This constructor grabs a "copy" of the current diff.
 
Method Summary
 void close()
          Release the underlying resources associated with this stream.
protected  Envelope extractBboxForSpatialIndexQuery(BinarySpatialOperator filter)
           
 T getFeatureType()
          Return the FeatureType this reader has been configured to create.
protected  List getIndexedFeatures()
           
 boolean hasNext()
          Query whether this FeatureReader has another Feature.
protected  boolean isDefaultGeometry(AttributeExpression ae)
           
protected  boolean isSubsetOfBboxFilter(Filter f)
           
 F next()
          Reads the next Feature in the FeatureReader.
protected  void queryAdded()
           
protected  void queryDiff()
           
protected  void queryFidFilter()
           
protected  void queryModified()
           
protected  void querySpatialIndex()
           
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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:
reader -
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:
reader -
diff2 - Differences of Feature by FID
Method Detail

getFeatureType

public T getFeatureType()
Description copied from interface: FeatureReader
Return the FeatureType this reader has been configured to create.

Specified by:
getFeatureType in interface FeatureReader<T extends FeatureType,F extends Feature>
Returns:
the FeatureType of the Features this FeatureReader will create.
See Also:
FeatureReader.getFeatureType()

next

public F next()
                       throws IOException,
                              IllegalAttributeException,
                              NoSuchElementException
Description copied from interface: FeatureReader
Reads the next Feature in the FeatureReader.

Specified by:
next in interface FeatureReader<T extends FeatureType,F extends Feature>
Returns:
The next feature in the reader.
Throws:
IOException - If an error occurs reading the Feature.
IllegalAttributeException - If the attributes read do not comply with the FeatureType.
NoSuchElementException - If there are no more Features in the Reader.
See Also:
FeatureReader.next()

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 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(AttributeExpression ae)

isSubsetOfBboxFilter

protected boolean isSubsetOfBboxFilter(Filter f)


Copyright © 1996-2014 Geotools. All Rights Reserved.