27 #include "../../core/translator/Translator.h" 28 #include "../../datatype/Array.h" 29 #include "../../datatype/ByteArray.h" 30 #include "../../datatype/DataConverterManager.h" 31 #include "../../datatype/DateTime.h" 32 #include "../../datatype/Enums.h" 33 #include "../../datatype/Property.h" 34 #include "../../datatype/SimpleData.h" 35 #include "../../geometry/Geometry.h" 36 #include "../../geometry/GeometryProperty.h" 37 #include "../../geometry/Envelope.h" 38 #include "../../raster/Raster.h" 39 #include "../../srs/Config.h" 40 #include "../datasource/DataSourceCapabilities.h" 41 #include "../utils/Utils.h" 42 #include "../Exception.h" 51 : m_ds(dataset, isOwner)
60 return m_ds->getTraverseType();
65 return m_ds->getAccessPolicy();
70 return m_ds->getExtent(i);
96 return m_ds->isEmpty();
101 return m_ds->isConnected();
111 return m_ds->moveNext();
116 return m_ds->movePrevious();
121 return m_ds->moveBeforeFirst();
126 return m_ds->moveFirst();
131 return m_ds->moveLast();
136 return m_ds->move(i);
141 return m_ds->isAtBegin();
146 return m_ds->isBeforeBegin();
151 return m_ds->isAtEnd();
156 return m_ds->isAfterEnd();
161 return m_ds->isPositionValid();
166 std::unique_ptr<te::dt::Char> data(static_cast<te::dt::Char*>(
getAdaptedValue(i)));
168 return data->getValue();
173 std::unique_ptr<te::dt::UChar> data(static_cast<te::dt::UChar*>(
getAdaptedValue(i)));
175 return data->getValue();
180 std::unique_ptr<te::dt::Int16> data(static_cast<te::dt::Int16*>(
getAdaptedValue(i)));
182 return data->getValue();
187 std::unique_ptr<te::dt::Int32> data(static_cast<te::dt::Int32*>(
getAdaptedValue(i)));
189 return data->getValue();
194 std::unique_ptr<te::dt::Int64> data(static_cast<te::dt::Int64*>(
getAdaptedValue(i)));
196 return data->getValue();
201 std::unique_ptr<te::dt::Boolean> data(static_cast<te::dt::Boolean*>(
getAdaptedValue(i)));
203 return data->getValue();
208 std::unique_ptr<te::dt::Float> data(static_cast<te::dt::Float*>(
getAdaptedValue(i)));
210 return data->getValue();
215 std::unique_ptr<te::dt::Double> data(static_cast<te::dt::Double*>(
getAdaptedValue(i)));
217 return data->getValue();
222 std::unique_ptr<te::dt::Numeric> data(static_cast<te::dt::Numeric*>(
getAdaptedValue(i)));
224 return data->getValue();
229 std::unique_ptr<te::dt::String> data(static_cast<te::dt::String*>(
getAdaptedValue(i)));
230 return data->getValue();
262 return data.get() ==
nullptr;
272 const std::vector<std::size_t>& adaptedPropertyPos,
276 m_pnames.push_back(newPropertyName);
bool move(std::size_t i)
It moves the dataset internal pointer to a given position.
bool isAtBegin() const
It tells if the dataset internal pointer is on the first element of the collection or not...
bool isConnected() const
It returns true if the dataset is connected and false if it is disconnected. A dataset can be connect...
std::unique_ptr< te::gm::Geometry > getGeometry(std::size_t i) const
Method for retrieving a geometric attribute value.
bool getBool(std::size_t i) const
Method for retrieving a boolean attribute value.
std::string getPropertyName(std::size_t pos) const
It returns the property name at position pos.
te::dt::AbstractData * getAdaptedValue(std::size_t i) const
te::common::TraverseType getTraverseType() const
It returns the traverse type associated to the dataset.
te::common::AccessPolicy getAccessPolicy() const
It returns the read and write permission associated to the dataset.
std::unique_ptr< te::dt::DateTime > getDateTime(std::size_t i) const
Method for retrieving a date and time attribute value.
te::common::Holder< DataSet > m_ds
A pointer to the DataSet that will be handled by adapter.
std::vector< std::vector< std::size_t > > m_propertyIndexes
A vector that stores the adapted property indexes.
std::vector< AttributeConverter > m_converters
A vector that stores the attribute converters functions.
boost::int16_t getInt16(std::size_t i) const
Method for retrieving a 16-bit integer attribute value (2 bytes long).
boost::int32_t getInt32(std::size_t i) const
Method for retrieving a 32-bit integer attribute value (4 bytes long).
std::vector< int > m_datatypes
The datatype for each property.
~DataSetAdapter()
Destructor.
bool isNull(std::size_t i) const
It checks if the attribute value is NULL.
bool movePrevious()
It moves the internal pointer to the previous item of the collection.
int getPropertyDataType(std::size_t pos) const
It returns the underlying data type of the property at position pos.
std::string getDatasetNameOfProperty(std::size_t pos) const
It returns the underlying dataset name of the property at position pos.
AccessPolicy
Supported data access policies (can be used as bitfield).
TraverseType
A dataset can be traversed in two ways:
bool isPositionValid() const
It tells if the dataset internal pointer is on a valid position.
te::da::DataSet * getAdaptee() const
This method returns the pointer to the DataSet that is handled by adapter.
char getChar(std::size_t i) const
Method for retrieving a signed character attribute value (1 byte long).
The type for variable-length multidimensional arrays.
An abstract class for raster data strucutures.
unsigned char getUChar(std::size_t i) const
Method for retrieving an unsigned character attribute value (1 byte long).
std::unique_ptr< te::rst::Raster > getRaster(std::size_t i) const
Method for retrieving a raster attribute value.
boost::function3< te::dt::AbstractData *, DataSet *, const std::vector< std::size_t > &, int > AttributeConverter
The type of attribute converter functions.
float getFloat(std::size_t i) const
Method for retrieving a float attribute value.
A base class for values that can be retrieved from the data access module.
bool isEmpty() const
It returns true if the collection is empty.
std::size_t getNumProperties() const
It returns the number of properties that composes an item of the dataset.
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
void add(const std::string &newPropertyName, int newPropertyType, const std::vector< std::size_t > &adaptedPropertyPos, AttributeConverter conv)
bool isAfterEnd() const
It tells if the dataset internal pointer is on the sentinel position after the last element of the co...
std::string getString(std::size_t i) const
Method for retrieving a string value attribute.
A dataset is the unit of information manipulated by the data access module of TerraLib.
std::string getNumeric(std::size_t i) const
Method for retrieving a numeric attribute value.
std::unique_ptr< te::gm::Envelope > getExtent(std::size_t i)
It computes the bounding rectangle for a spatial property of the dataset.
A class that models the description of a dataset.
bool isBeforeBegin() const
It tells if the dataset internal pointer is in a position before the first element of the collection ...
bool moveNext()
It moves the internal pointer to the next item of the collection.
std::unique_ptr< te::dt::Array > getArray(std::size_t i) const
Method for retrieving an array.
bool moveFirst()
It moves the internal pointer to the first item in the collection.
bool moveBeforeFirst()
It moves the internal pointer to a position before the first item in the collection.
double getDouble(std::size_t i) const
Method for retrieving a double attribute value.
std::vector< std::string > m_pnames
The name for each property.
bool isAtEnd() const
It tells if the dataset internal pointer is on the last element of the collection.
std::size_t size() const
It returns the collection size, if it is known.
bool moveLast()
It sets the dataset internal pointer to the last item in the collection.
boost::int64_t getInt64(std::size_t i) const
Method for retrieving a 64-bit integer attribute value (8 bytes long).
DataSetAdapter(DataSet *dataset, bool isOwner=false)
Constructor.
A class for representing binary data.
std::unique_ptr< te::dt::ByteArray > getByteArray(std::size_t i) const
Method for retrieving a byte array.