27 #include "../../geometry/Envelope.h"
34 : m_ds(dataset, isOwner),
35 m_positions(positions),
44 const std::vector<std::size_t>& positions,
bool isOwner)
45 : m_ds(dataset, isOwner),
46 m_capabilites(capabilities),
47 m_positions(positions),
61 return m_ds->getTraverseType();
66 return m_ds->getAccessPolicy();
71 return m_ds->getExtent(i);
76 return m_ds->getNumProperties();
81 return m_ds->getPropertyDataType(pos);
86 return m_ds->getPropertyName(pos);
91 return m_ds->getDatasetNameOfProperty(pos);
96 return m_positions.empty();
101 return m_ds->isConnected();
106 return m_positions.size();
118 if(m_capabilites.supportsEfficientMove() || oldPos == -1)
119 return move(static_cast<std::size_t>(m_i));
121 assert(m_positions[oldPos] < m_positions[m_i]);
124 for(std::size_t i = m_positions[oldPos]; i < m_positions[m_i]; ++i)
126 if(!m_ds->moveNext())
140 return move(static_cast<std::size_t>(m_i));
165 return m_ds->move(m_positions[i]);
180 return m_i == size() - 1;
185 return m_i == size();
190 return m_ds->getChar(i);
195 return m_ds->getUChar(i);
200 return m_ds->getInt16(i);
205 return m_ds->getInt32(i);
210 return m_ds->getInt64(i);
215 return m_ds->getBool(i);
220 return m_ds->getFloat(i);
225 return m_ds->getDouble(i);
230 return m_ds->getNumeric(i);
235 return m_ds->getString(i);
240 return m_ds->getByteArray(i);
245 return m_ds->getGeometry(i);
250 return m_ds->getRaster(i);
255 return m_ds->getDateTime(i);
260 return m_ds->getArray(i);
265 return m_ds->isNull(i);
std::size_t getNumProperties() const
It returns the number of properties that composes an item of the dataset.
bool moveFirst()
It moves the internal pointer to the first item in the collection.
boost::int32_t getInt32(std::size_t i) const
Method for retrieving a 32-bit integer attribute value (4 bytes long).
char getChar(std::size_t i) const
Method for retrieving a signed character attribute value (1 byte long).
This class represents a filtered data set.
te::common::AccessPolicy getAccessPolicy() const
It returns the read and write permission associated to the dataset.
std::auto_ptr< te::rst::Raster > getRaster(std::size_t i) const
Method for retrieving a raster attribute value.
std::auto_ptr< te::dt::Array > getArray(std::size_t i) const
Method for retrieving an array.
std::auto_ptr< te::dt::ByteArray > getByteArray(std::size_t i) const
Method for retrieving a byte array.
FilteredDataSet(DataSet *dataset, const std::vector< std::size_t > &positions, bool isOwner=false)
Constructor.
bool moveLast()
It sets the dataset internal pointer to the last item in the collection.
bool getBool(std::size_t i) const
Method for retrieving a boolean attribute value.
int getPropertyDataType(std::size_t pos) const
It returns the underlying data type of the property at position pos.
bool movePrevious()
It moves the internal pointer to the previous item of the collection.
AccessPolicy
Supported data access policies (can be used as bitfield).
double getDouble(std::size_t i) const
Method for retrieving a double attribute value.
bool isAtEnd() const
It tells if the dataset internal pointer is on the last element of the collection.
std::string getString(std::size_t i) const
Method for retrieving a string value attribute.
std::auto_ptr< te::gm::Geometry > getGeometry(std::size_t i) const
Method for retrieving a geometric attribute value.
std::string getPropertyName(std::size_t pos) const
It returns the property name at position pos.
bool isAtBegin() const
It tells if the dataset internal pointer is on the first element of the collection or not...
TraverseType
A dataset can be traversed in two ways:
bool isEmpty() const
It returns true if the collection is empty.
std::vector< std::size_t > m_positions
The data set positions that actually will be accessed.
A class that informs what the dataset implementation of a given data source can perform.
bool moveNext()
It moves the internal pointer to the next item of the collection.
bool move(std::size_t i)
It moves the dataset internal pointer to a given position.
bool isNull(std::size_t i) const
It checks if the attribute value is NULL.
boost::int16_t getInt16(std::size_t i) const
Method for retrieving a 16-bit integer attribute value (2 bytes long).
std::string getDatasetNameOfProperty(std::size_t pos) const
It returns the underlying dataset name of the property at position pos.
bool isBeforeBegin() const
It tells if the dataset internal pointer is in a position before the first element of the collection ...
float getFloat(std::size_t i) const
Method for retrieving a float attribute value.
~FilteredDataSet()
Destructor.
te::common::TraverseType getTraverseType() const
It returns the traverse type associated to the dataset.
bool isAfterEnd() const
It tells if the dataset internal pointer is on the sentinel position after the last element of the co...
std::size_t size() const
It returns the collection size, if it is known.
unsigned char getUChar(std::size_t i) const
Method for retrieving an unsigned character attribute value (1 byte long).
bool moveBeforeFirst()
It moves the internal pointer to a position before the first item in the collection.
std::string getNumeric(std::size_t i) const
Method for retrieving a numeric attribute value.
A dataset is the unit of information manipulated by the data access module of TerraLib.
te::da::DataSourceCapabilities capabilities
std::auto_ptr< te::dt::DateTime > getDateTime(std::size_t i) const
Method for retrieving a date and time attribute value.
boost::int64_t getInt64(std::size_t i) const
Method for retrieving a 64-bit integer attribute value (8 bytes long).
bool isConnected() const
It returns true if the dataset is connected and false if it is disconnected. A dataset can be connect...
std::auto_ptr< te::gm::Envelope > getExtent(std::size_t i)
It computes the bounding rectangle for a spatial property of the dataset.