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

java.lang.Object
  extended by org.geotools.data.DiffFeatureReader<T,F>
All Implemented Interfaces:
FeatureReader<T,F>

public class DiffFeatureReader<T extends org.opengis.feature.type.FeatureType,F extends org.opengis.feature.Feature>
extends java.lang.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, org.opengis.filter.Filter filter)
          This constructor grabs a "copy" of the current diff.
 
Method Summary
 void close()
          Release the underlying resources associated with this stream.
protected  com.vividsolutions.jts.geom.Envelope extractBboxForSpatialIndexQuery(org.opengis.filter.spatial.BinarySpatialOperator filter)
           
 T getFeatureType()
          Return the FeatureType this reader has been configured to create.
protected  java.util.List getIndexedFeatures()
           
 boolean hasNext()
          Query whether this FeatureReader has another Feature.
protected  boolean isDefaultGeometry(AttributeExpression ae)
           
protected  boolean isSubsetOfBboxFilter(org.opengis.filter.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 java.lang.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,
                         org.opengis.filter.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 org.opengis.feature.type.FeatureType,F extends org.opengis.feature.Feature>
Returns:
the FeatureType of the Features this FeatureReader will create.
See Also:
FeatureReader.getFeatureType()

next

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

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

hasNext

public boolean hasNext()
                throws java.io.IOException
Description copied from interface: FeatureReader
Query whether this FeatureReader has another Feature.

Specified by:
hasNext in interface FeatureReader<T extends org.opengis.feature.type.FeatureType,F extends org.opengis.feature.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:
java.io.IOException - If an error occurs determining if there are more Features.
See Also:
FeatureReader.hasNext()

close

public void close()
           throws java.io.IOException
Description copied from interface: FeatureReader
Release the underlying resources associated with this stream.

Specified by:
close in interface FeatureReader<T extends org.opengis.feature.type.FeatureType,F extends org.opengis.feature.Feature>
Throws:
java.io.IOException - DOCUMENT ME!
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 java.util.List getIndexedFeatures()

extractBboxForSpatialIndexQuery

protected com.vividsolutions.jts.geom.Envelope extractBboxForSpatialIndexQuery(org.opengis.filter.spatial.BinarySpatialOperator filter)

isDefaultGeometry

protected boolean isDefaultGeometry(AttributeExpression ae)

isSubsetOfBboxFilter

protected boolean isSubsetOfBboxFilter(org.opengis.filter.Filter f)


Copyright © 1996-2010 Geotools. All Rights Reserved.