26 #ifndef __TERRALIB_DATAACCESS_INTERNAL_SPATIALQUERYPROCESSOR_H
27 #define __TERRALIB_DATAACCESS_INTERNAL_SPATIALQUERYPROCESSOR_H
30 #include "../../common/Enums.h"
31 #include "../../geometry/Envelope.h"
32 #include "../dataset/DataSet.h"
33 #include "../dataset/ObjectIdSet.h"
34 #include "../datasource/DataSource.h"
37 #include <boost/noncopyable.hpp>
49 class DataSourceTransactor;
50 class QueryCapabilities;
52 struct SpatialRestriction;
75 bool connected =
false);
87 const std::vector<te::gm::Geometry*>& geomRestrictions);
92 const std::vector<SpatialRestriction*>& restrictions)
const;
te::da::DataSourceCapabilities capabilities
A class that models the description of a dataset.
A DataSourceTransactor can be viewed as a connection to the data source for reading/writing things in...
This is an abstract class that models a query expression.
This class represents a set of unique ids created in the same context. i.e. from the same data set.
A class that informs the query support of a given data source.
A Select models a query to be used when retrieving data from a DataSource.
A basic query processor for spatial restrictions.
virtual std::unique_ptr< ObjectIdSet > getOIDSet(DataSourceTransactor *t, const QueryCapabilities &capabilities, const Select &q)
std::string getDataSetName(const Select &q) const
Expression * getAttrRestrictions(const Select &q) const
virtual ObjectIdSet * getOIDSet(DataSourceTransactor *t, Select &baseSelect, te::da::Expression *attrRestrictions, SpatialRestriction *restriction, const DataSetType *type, const std::vector< te::gm::Geometry * > &geomRestrictions)
te::gm::Envelope * computeEnvelope(const std::vector< SpatialRestriction * > &restrictions) const
virtual std::unique_ptr< DataSet > getDataSet(DataSourceTransactor *t, const QueryCapabilities &capabilities, const Select &q, te::common::TraverseType travType=te::common::FORWARDONLY, bool connected=false)
virtual std::unique_ptr< DataSet > getDataSet(const DataSourcePtr &ds, const Select &q, te::common::TraverseType travType=te::common::FORWARDONLY)
virtual std::unique_ptr< ObjectIdSet > getOIDSet(const DataSourcePtr &ds, const Select &q)
bool supportsSpatialTopologicOperatos(const QueryCapabilities &capabilities, const std::vector< SpatialRestriction * > &restrictions) const
virtual ~SpatialQueryProcessor()
Virtual destructor.
SpatialQueryProcessor()
Constructor.
virtual std::unique_ptr< ObjectIdSet > getOIDSet(DataSourceTransactor *t, const Select &q)
An Envelope defines a 2D rectangular region.
TraverseType
A dataset can be traversed in two ways:
boost::shared_ptr< DataSource > DataSourcePtr
A struct that represents a spatial restriction.
#define TEDATAACCESSEXPORT
You can use this macro in order to export/import classes and functions from this module.