Support FeatureSource decorator that takes care of mapping a Query &
FeatureSource with the schema and definition query configured for it.
Because GeoServer requires that attributes always be returned in the same
order we need a way to smoothly inforce this. Could we use this class to do
so?
WARNING: this class is a placeholder for ideas right now - it may not always
impement FeatureSource.
makeDefinitionFilter(Filter filter) If a definition query has been configured for the FeatureTypeInfo, makes
and return a new Filter that contains both the query's filter and the
layer's definition one, by logic AND'ing them.
propertyNames - combined with client filter (indicate property names
that *must* be included)
Schema is generated based on this information.
Parameters: source - a FeatureSource Parameters: query - Filter used to limit results throws: SchemaException -
Factory that make the correct decorator for the provided featureSource.
This factory method is public and will be used to create all required
subclasses. By comparison the constructors for this class have package
visibiliy.
TODO: revisit this - I am not sure I want write access to views
(especially if they do reprojection).
Parameters: source - Parameters: query - @throwsSchemaException
This method provides access to an optimized getBounds opperation. If no
optimized opperation is available null will be returned.
You may still make use of getFeatures( Query ).getCount() which will
return the correct answer (even if it has to itterate through all the
results to do so.
Parameters: query - User's query Extend of Query or null if no optimization isavailable throws: IOException - If a problem is encountered with source
This method provides access to an optimized getCount opperation. If no
optimized opperation is available -1 will be returned.
You may still make use of getFeatures( Query ).getCount() which will
return the correct answer (even if it has to itterate through all the
results to do so).
Parameters: query - User's query. Number of Features for Query, or -1 if no optimization isavailable.
If a definition query has been configured for the FeatureTypeInfo, makes
and return a new Filter that contains both the query's filter and the
layer's definition one, by logic AND'ing them.
Parameters: filter - Origional user supplied Filter Filter adjusted to the limitations of definitionQuery throws: DataSourceException - If the filter could not meet the limitations ofdefinitionQuery
Takes a query and adapts it to match re definitionQuery filter configured
for a feature type. It won't handle coordinate system changes
Grabs the following from query:
typeName - only used if client does not supply
filter - combined with client filter
propertyNames - combined with client filter (indicate property names
that *must* be included)
Parameters: query - Query against this DataStore Query restricted to the limits of definitionQuery throws: IOException - See DataSourceException throws: DataSourceException - If query could not meet the restrictions of definitionQuery