org.geotools.data
Class DefaultFeatureResults

java.lang.Object
  extended byorg.geotools.data.store.DataFeatureCollection
      extended byorg.geotools.data.DefaultFeatureResults
All Implemented Interfaces:
java.util.Collection, Feature, FeatureCollection, FeatureResults, ResourceCollection
Direct Known Subclasses:
JDBCFeatureCollection, WFSFeatureSource.WFSFeatureResults

public class DefaultFeatureResults
extends DataFeatureCollection

Generic "results" of a query, class.

Please optimize this class when use with your own content. For example a "ResultSet" make a great cache for a JDBCDataStore, a temporary copy of an original file may work for shapefile etc.

Author:
Jody Garnett, Refractions Research

Nested Class Summary
 
Nested classes inherited from class org.geotools.feature.Feature
Feature.NULL
 
Field Summary
protected  FeatureSource featureSource
          Feature source used to aquire features, note we are only a "view" of this FeatureSource, its contents, transaction and events need to be forwarded through this collection api to simplier code such as renderers.
protected  Query query
          Query used to define this subset of features from the feature source
 
Constructor Summary
DefaultFeatureResults(FeatureSource source, Query query)
          FeatureResults query against featureSource.
 
Method Summary
 FeatureCollection collection()
          Convert this set of results to a FeatureCollection.
 com.vividsolutions.jts.geom.Envelope getBounds()
          Returns the bounding box of this FeatureResults This implementation will generate the correct results from reader() if the provided FeatureSource does not provide an optimized result via FeatureSource.getBounds( Query ).
 int getCount()
          Number of Features in this query.
 FeatureType getSchema()
          FeatureSchema for provided query.
protected  Transaction getTransaction()
          Returns transaction from featureSource (if it is a FeatureStore), or Transaction.AUTO_COMMIT if it is not.
 FeatureReader reader()
          Retrieve a FeatureReader for this Query
 
Methods inherited from class org.geotools.data.store.DataFeatureCollection
accepts, add, addAll, addListener, clear, close, close, closeIterator, contains, containsAll, features, fireChange, fireChange, fireChange, getAttribute, getAttribute, getAttributes, getDefaultGeometry, getFeatureType, getID, getNumberOfAttributes, getParent, isEmpty, iterator, openIteartor, purge, remove, removeAll, removeListener, retainAll, setAttribute, setAttribute, setDefaultGeometry, setParent, size, sort, sort, subCollection, toArray, toArray, writer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Collection
equals, hashCode
 

Field Detail

query

protected Query query
Query used to define this subset of features from the feature source


featureSource

protected FeatureSource featureSource
Feature source used to aquire features, note we are only a "view" of this FeatureSource, its contents, transaction and events need to be forwarded through this collection api to simplier code such as renderers.

Constructor Detail

DefaultFeatureResults

public DefaultFeatureResults(FeatureSource source,
                             Query query)
FeatureResults query against featureSource.

Please note that is object will not be valid after the transaction has closed.

Really? I think it would be, it would just reflect the same query against the featuresource using AUTO_COMMIT.

Parameters:
source -
query -
Method Detail

getSchema

public FeatureType getSchema()
FeatureSchema for provided query.

If query.retrieveAllProperties() is true the FeatureSource getSchema() will be returned.

If query.getPropertyNames() is used to limit the result of the Query a sub type will be returned based on FeatureSource.getSchema().

Specified by:
getSchema in interface FeatureCollection
Specified by:
getSchema in class DataFeatureCollection
Returns:
DOCUMENT ME!
Throws:
java.io.IOException - DOCUMENT ME!
DataSourceException - DOCUMENT ME!

getTransaction

protected Transaction getTransaction()
Returns transaction from featureSource (if it is a FeatureStore), or Transaction.AUTO_COMMIT if it is not.

Returns:
Transacstion this FeatureResults opperates against

reader

public FeatureReader reader()
                     throws java.io.IOException
Retrieve a FeatureReader for this Query

Specified by:
reader in interface FeatureResults
Specified by:
reader in class DataFeatureCollection
Returns:
FeatureReader for this Query
Throws:
java.io.IOException - If results could not be obtained

getBounds

public com.vividsolutions.jts.geom.Envelope getBounds()
Returns the bounding box of this FeatureResults

This implementation will generate the correct results from reader() if the provided FeatureSource does not provide an optimized result via FeatureSource.getBounds( Query ).

If the feature has no geometry, then an empty envelope is returned.

Specified by:
getBounds in interface FeatureResults
Specified by:
getBounds in class DataFeatureCollection
Returns:
Throws:
DataSourceException - See IOException
See Also:
FeatureResults.getBounds()

getCount

public int getCount()
             throws java.io.IOException
Number of Features in this query.

This implementation will generate the correct results from reader() if the provided FeatureSource does not provide an optimized result via FeatureSource.getCount( Query ).

Specified by:
getCount in interface FeatureResults
Specified by:
getCount in class DataFeatureCollection
Returns:
Throws:
java.io.IOException - If feature could not be read
DataSourceException - See IOException
See Also:
FeatureResults.getCount()

collection

public FeatureCollection collection()
                             throws java.io.IOException
Description copied from interface: FeatureResults
Convert this set of results to a FeatureCollection.

This method is logically the same as:


 public FeatureCollection collection() throws IOException {
     FeatureCollection collection = FeatureCollections.newCollection()
     for (FeatureReader r = reader(); r.hasNext();) {
         collection.add( r.next() );
     }
     return collection;  
 }
 

Specified by:
collection in interface FeatureResults
Specified by:
collection in class DataFeatureCollection
Throws:
java.io.IOException


Copyright © GeoTools. All Rights Reserved.