|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
ObjectMappingFeatureSource
public class MappingFeatureSource
A FeatureSource that uses a FeatureTypeMapping to perform Feature fetching.
Note that the number of Features available from a MappingFeatureReader may not match the number of features that resulted of executing the incoming query over the surrogate FeatureSource. This will be the case when grouping attributes has configured on the FeatureTypeMapping this reader is based on.
When a MappingFeatureReader is created, a delegated FeatureIterator will be created based on the information provided by the FeatureTypeMapping object. That delegate reader will be specialized in applying the appropiate mapping stratagy based on wether grouping has to be performed or not.
| Constructor Summary | |
|---|---|
MappingFeatureSource(AppSchemaDataAccess store,
FeatureTypeMapping mapping)
|
|
| Method Summary | |
|---|---|
void |
addFeatureListener(FeatureListener listener)
Registers a listening object that will be notified of changes to this FeatureSource. |
ReferencedEnvelope |
getBounds()
Get the spatial bounds of the feature data. |
ReferencedEnvelope |
getBounds(Query query)
Get the spatial bounds of the features that would be returned by the given Query. |
int |
getCount(Query query)
Gets the number of the features that would be returned by the given Query, taking into account any settings for max features and
start index set on the Query. |
DataAccess<FeatureType,Feature> |
getDataStore()
Returns the data source, as a DataAccess object, providing
this FeatureSource. |
FeatureCollection<FeatureType,Feature> |
getFeatures()
Retrieves all features in the form of a FeatureCollection. |
FeatureCollection<FeatureType,Feature> |
getFeatures(Filter filter)
Retrieves features, in the form of a FeatureCollection, based
on an OGC Filter. |
FeatureCollection<FeatureType,Feature> |
getFeatures(Filter filter,
Hints hints)
|
FeatureCollection<FeatureType,Feature> |
getFeatures(Query query)
Retrieves features, in the form of a FeatureCollection, based
on a Query. |
ResourceInfo |
getInfo()
Returns information describing this FeatureSource which may
include title, description and spatial parameters. |
FeatureTypeMapping |
getMapping()
|
Name |
getName()
Returns the name of the features (strictly, the name of the AttributeDescriptor for the features) accessible through this
FeatureSource. |
QueryCapabilities |
getQueryCapabilities()
Enquire what what query capabilities this FeatureSource
natively supports. |
FeatureType |
getSchema()
Retrieves the schema (feature type) that will apply to features retrieved from this FeatureSource. |
Set<RenderingHints.Key> |
getSupportedHints()
Not a supported operation. |
AttributeDescriptor |
getTargetFeature()
|
void |
removeFeatureListener(FeatureListener listener)
Removes an object from this FeatureSource's listeners. |
| Methods inherited from class Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public MappingFeatureSource(AppSchemaDataAccess store,
FeatureTypeMapping mapping)
| Method Detail |
|---|
public void addFeatureListener(FeatureListener listener)
FeatureSourceFeatureSource.
addFeatureListener in interface FeatureSource<FeatureType,Feature>listener - the new listener
public ReferencedEnvelope getBounds()
throws IOException
FeatureSourcegetBounds(Query.ALL).
It is possible that this method will return null if the calculation
of bounds is judged to be too costly by the implementing class.
In this case, you might call getFeatures().getBounds()
instead.
getBounds in interface FeatureSource<FeatureType,Feature>null
if the bounds are unknown or too costly to calculate.
IOException - on any errors calculating the bounds
public ReferencedEnvelope getBounds(Query query)
throws IOException
FeatureSourceQuery.
It is possible that this method will return null if the calculation
of bounds is judged to be too costly by the implementing class.
In this case, you might call getFeatures(query).getBounds()
instead.
getBounds in interface FeatureSource<FeatureType,Feature>query - the query to select features
null
if the bounds are unknown or too costly to calculate.
IOException - on any errors calculating the bounds
public int getCount(Query query)
throws IOException
FeatureSourceQuery, taking into account any settings for max features and
start index set on the Query.
It is possible that this method will return -1 if the calculation
of number of features is judged to be too costly by the implementing class.
In this case, you might call getFeatures(query).size()
instead.
Example use:
int count = featureSource.getCount();
if( count == -1 ){
count = featureSource.getFeatures( "typeName", count ).size();
}
- Specified by:
getCount in interface FeatureSource<FeatureType,Feature>
- Parameters:
query - the query to select features
- Returns:
- the numer of features that would be returned by the
Query;
or -1 if this cannot be calculated.
- Throws:
IOException - if there are errors getting the count
public DataAccess<FeatureType,Feature> getDataStore()
FeatureSourceDataAccess object, providing
this FeatureSource.
getDataStore in interface FeatureSource<FeatureType,Feature>FeatureSourcepublic FeatureType getSchema()
FeatureSourceFeatureSource.
For a homogeneous data source such as a shapefile or a database table, this schema be that of all features. For a heterogeneous data source, e.g. a GML document, the schema returned is the lowest common denominator across all features.
getSchema in interface FeatureSource<FeatureType,Feature>FeatureSourcepublic AttributeDescriptor getTargetFeature()
public FeatureTypeMapping getMapping()
public FeatureCollection<FeatureType,Feature> getFeatures(Query query)
throws IOException
FeatureSourceFeatureCollection, based
on a Query.
getFeatures in interface FeatureSource<FeatureType,Feature>query - DataAccess query for requested information, such as typeName,
maxFeatures and filter.
Query
IOException - if the underlying data source cannot be accessed.Query
public FeatureCollection<FeatureType,Feature> getFeatures(Filter filter)
throws IOException
FeatureSourceFeatureCollection, based
on an OGC Filter.
getFeatures in interface FeatureSource<FeatureType,Feature>filter - the filter to select features; must not be null
(use Filter.INCLUDE instead)
Filter
IOException - if the underlying data source cannot be accessed.Filter
public FeatureCollection<FeatureType,Feature> getFeatures(Filter filter,
Hints hints)
throws IOException
IOException
public FeatureCollection<FeatureType,Feature> getFeatures()
throws IOException
FeatureSourceFeatureCollection.
The following statements are equivalent:
featureSource.getFeatures();
featureSource.getFeatures(Filter.INCLUDE);
featureSource.getFeatures(Query.ALL);
getFeatures in interface FeatureSource<FeatureType,Feature>Query
IOException - if the underlying data source cannot be accessed.public void removeFeatureListener(FeatureListener listener)
FeatureSourceFeatureSource's listeners.
removeFeatureListener in interface FeatureSource<FeatureType,Feature>listener - the listener to removepublic ResourceInfo getInfo()
FeatureSourceFeatureSource which may
include title, description and spatial parameters. Note that in the
returned ResourceInfo object, the distinction between feature
name and schema (feature type) name applies as discussed for
FeatureSource.getName().
getInfo in interface FeatureSource<FeatureType,Feature>public Name getName()
FeatureSourceAttributeDescriptor for the features) accessible through this
FeatureSource.
The value returned by this method can be different to that returned by
featureSource.getSchema().getType().getName().
This is because there is a distinction between the name applied to features
and the name of a feature type. When working with SimpleFeature and
SimpleFeatureType, for example with a shapefile data source, it is
common practice for feature and feature type names to be the same. However, this
is not the case more generally. For instance, a database can contain two
tables with the same structure. The feature name will refer to the table
while the feature type name refers to the schema (table structure).
getName in interface FeatureSource<FeatureType,Feature>FeatureSourcepublic Set<RenderingHints.Key> getSupportedHints()
getSupportedHints in interface FeatureSource<FeatureType,Feature>RenderingHints#Key objects; may be empty but never nullFeatureSource.getSupportedHints()public QueryCapabilities getQueryCapabilities()
FeatureSourceFeatureSource
natively supports. For example, whether queries can return sorted
results.
getQueryCapabilities in interface FeatureSource<FeatureType,Feature>FeatureSourceFeatureSource.getQueryCapabilities()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||