src/terralib/ws/ogc/wms/dataaccess/Transactor.cpp
Go to the documentation of this file.
1 #include "Transactor.h"
2 
3 //TerraLib
4 #include "../../../core/Exception.h"
5 #include "../../../../raster/RasterProperty.h"
6 
7 //STL
8 #include <algorithm>
9 
10 te::ws::ogc::wms::da::Transactor::Transactor(const std::shared_ptr<te::ws::ogc::WMSClient> wms) :
11  m_wms(wms)
12 {
14 
15  this->createLayerMap(capabilities.m_capability.m_layer);
16 }
17 
19 
21 {
22  return nullptr;
23 }
24 
26 {
27  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method begin() is not supported by the WMS driver!"));
28 }
29 
31 {
32  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method commit() is not supported by the WMS driver!"));
33 }
34 
36 {
37  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method rollBack() is not supported by the WMS driver!"));
38 }
39 
40 std::unique_ptr<te::da::DataSet> te::ws::ogc::wms::da::Transactor::getDataSet(
41  const std::string& /*name*/, te::common::TraverseType /*travType*/,
42  bool /*connected*/, const te::common::AccessPolicy /*accessPolicy*/)
43 {
44  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method getDataSet() is not supported by the WMS driver!"));
45 }
46 
47 std::unique_ptr<te::da::DataSet> te::ws::ogc::wms::da::Transactor::getDataSet(
48  const std::string& /*name*/, const std::string& /*propertyName*/,
49  const te::gm::Envelope* /*e*/, te::gm::SpatialRelation /*r*/,
50  te::common::TraverseType /*travType*/, bool /*connected*/,
51  const te::common::AccessPolicy /*accessPolicy*/)
52 {
53  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method getDataSet() is not supported by the WMS driver!"));
54 }
55 
56 std::unique_ptr<te::da::DataSet> te::ws::ogc::wms::da::Transactor::getDataSet(
57  const std::string& /*name*/, const std::string& /*propertyName*/,
58  const te::gm::Geometry* /*g*/, te::gm::SpatialRelation /*r*/,
59  te::common::TraverseType /*travType*/, bool /*connected*/,
60  const te::common::AccessPolicy /*accessPolicy*/)
61 {
62  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method getDataSet() is not supported by the WMS driver!"));
63 }
64 
65 std::unique_ptr<te::da::DataSet> te::ws::ogc::wms::da::Transactor::getDataSet(
66  const std::string& /*name*/, const te::da::ObjectIdSet* /*oids*/,
67  te::common::TraverseType /*travType*/, bool /*connected*/,
68  const te::common::AccessPolicy /*accessPolicy*/)
69 {
70  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The ObjectIdSet concept is not supported by the WMS driver!"));
71 }
72 
73 std::unique_ptr<te::da::DataSet> te::ws::ogc::wms::da::Transactor::query(
74  const te::da::Select& /*q*/, te::common::TraverseType /*travType*/,
75  bool /*connected*/, const te::common::AccessPolicy /*accessPolicy*/)
76 {
77  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("Query operations is not supported by the WMS driver!"));
78 }
79 
80 std::unique_ptr<te::da::DataSet> te::ws::ogc::wms::da::Transactor::query(
81  const std::string& /*query*/, te::common::TraverseType /*travType*/,
82  bool /*connected*/, const te::common::AccessPolicy /*accessPolicy*/)
83 {
84  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("Query operations is not supported by the WMS driver!"));
85 }
86 
88 {
89  std::vector<std::string> layerNames;
90 
91  std::map<std::string, te::ws::ogc::wms::Layer>::const_iterator it;
92 
93  for(it = m_layerMap.begin();it != m_layerMap.end(); it++)
94  {
95  layerNames.push_back(it->first);
96  }
97 
98  return layerNames;
99 }
100 
102 {
103  if(!this->dataSetExists(layerName))
104  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The informed data set could not be found in the data source."));
105 
106  return m_layerMap[layerName];
107 }
108 
110 {
111  m_layerMap[rootLayer.m_name] = rootLayer;
112 
113  if(rootLayer.m_layers.size() > 0)
114  {
115  for(unsigned int i = 0; i < rootLayer.m_layers.size(); i++)
116  {
117  this->createLayerMap(rootLayer.m_layers[i]);
118  }
119  }
120 }
121 
123 {
124  std::vector<std::string> dataSetNames;
125 
126  dataSetNames = this->getLayerNames();
127 
128  return dataSetNames;
129 }
130 
132 {
133  std::vector<std::string> layers = this->getLayerNames();
134 
135  return layers.size();
136 }
137 
138 std::unique_ptr<te::da::DataSetType> te::ws::ogc::wms::da::Transactor::getDataSetType(const std::string &name)
139 {
140  if(!this->dataSetExists(name))
141  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The informed data set could not be found in the data source."));
142 
143  te::ws::ogc::wms::Layer layer = this->getLayerByName(name);
144 
145  te::da::DataSetType* type = new te::da::DataSetType(layer.m_name, 0);
146  type->setTitle(layer.m_title);
147 
148  te::rst::RasterProperty* rasterProp = new te::rst::RasterProperty("raster");
149  type->add(rasterProp);
150 
151  return std::unique_ptr<te::da::DataSetType>(type);
152 }
153 
154 boost::ptr_vector<te::dt::Property> te::ws::ogc::wms::da::Transactor::getProperties(const std::string &datasetName)
155 {
156  boost::ptr_vector<te::dt::Property> properties;
157 
158  std::unique_ptr<te::da::DataSetType> type = getDataSetType(datasetName);
159 
160  const std::vector<te::dt::Property*>& props = type->getProperties();
161  for(std::size_t i = 0; i < props.size(); ++i)
162  properties.push_back(props[i]->clone());
163 
164  return properties;
165 }
166 
167 std::unique_ptr<te::dt::Property> te::ws::ogc::wms::da::Transactor::getProperty(const std::string &datasetName, const std::string &name)
168 {
169  std::unique_ptr<te::da::DataSetType> type = getDataSetType(datasetName);
170 
171  const std::vector<te::dt::Property*>& props = type->getProperties();
172  for(std::size_t i = 0; i < props.size(); ++i)
173  {
174  if(props[i]->getName() == name)
175  return std::unique_ptr<te::dt::Property>(props[i]->clone());
176  }
177 
178  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The informed property name could not be found in the data set."));
179 }
180 
181 std::unique_ptr<te::dt::Property> te::ws::ogc::wms::da::Transactor::getProperty(const std::string &datasetName, std::size_t propertyPos)
182 {
183  std::unique_ptr<te::da::DataSetType> type = getDataSetType(datasetName);
184 
185  const std::vector<te::dt::Property*>& props = type->getProperties();
186 
187  if(propertyPos >= props.size())
188  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The informed property position could not be found in the data set."));
189 
190  return std::unique_ptr<te::dt::Property>(props[propertyPos]->clone());
191 }
192 
193 std::vector<std::string> te::ws::ogc::wms::da::Transactor::getPropertyNames(const std::string &datasetName)
194 {
195  std::vector<std::string> propertyNames;
196 
197  std::unique_ptr<te::da::DataSetType> type = getDataSetType(datasetName);
198 
199  const std::vector<te::dt::Property*>& props = type->getProperties();
200  for(std::size_t i = 0; i < props.size(); ++i)
201  propertyNames.push_back(props[i]->getName());
202 
203  return propertyNames;
204 }
205 
206 std::size_t te::ws::ogc::wms::da::Transactor::getNumberOfProperties(const std::string &datasetName)
207 {
208  return getPropertyNames(datasetName).size();
209 }
210 
211 bool te::ws::ogc::wms::da::Transactor::propertyExists(const std::string &datasetName, const std::string &name)
212 {
213  std::vector<std::string> propertyNames = this->getPropertyNames(datasetName);
214 
215  if(std::find(propertyNames.begin(), propertyNames.end(), name) != propertyNames.end())
216  return true;
217 
218  return false;
219 }
220 
222 {
223  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method execute() is not supported by the WMS driver!"));
224 }
225 
226 void te::ws::ogc::wms::da::Transactor::execute(const std::string& /*command*/)
227 {
228  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method execute() is not supported by the WMS driver!"));
229 }
230 
232 {
233  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method isInTransaction() is not supported by the WMS driver!"));
234 }
235 
236 std::unique_ptr<te::da::PreparedQuery> te::ws::ogc::wms::da::Transactor::getPrepared(const std::string& /*qName*/)
237 {
238  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method getPrepared() is not supported by the WMS driver!"));
239 }
240 
241 std::unique_ptr<te::da::BatchExecutor> te::ws::ogc::wms::da::Transactor::getBatchExecutor()
242 {
243  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method getBatchExecutor() is not supported by the WMS driver!"));
244 }
245 
247 {
248  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method cancel() is not supported by the WMS driver!"));
249 }
250 
252 {
253  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method getLastGeneratedId() is not supported by the WMS driver!"));
254 }
255 
256 std::string te::ws::ogc::wms::da::Transactor::escape(const std::string& /*value*/)
257 {
258  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method escape() is not supported by the WMS driver!"));
259 }
260 
261 bool te::ws::ogc::wms::da::Transactor::isDataSetNameValid(const std::string& /*datasetName*/)
262 {
263  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method isDataSetNameValid() is not supported by the WMS driver!"));
264 }
265 
266 bool te::ws::ogc::wms::da::Transactor::isPropertyNameValid(const std::string& /*propertyName*/)
267 {
268  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method isPropertyNameValid() is not supported by the WMS driver!"));
269 }
270 
271 void te::ws::ogc::wms::da::Transactor::addProperty(const std::string& /*datasetName*/, te::dt::Property* /*p*/)
272 {
273  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method addProperty() is not supported by the WMS driver!"));
274 }
275 
276 void te::ws::ogc::wms::da::Transactor::dropProperty(const std::string& /*datasetName*/, const std::string& /*name*/)
277 {
278  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method dropProperty() is not supported by the WMS driver!"));
279 }
280 
281 void te::ws::ogc::wms::da::Transactor::renameProperty(const std::string& /*datasetName*/, const std::string& /*propertyName*/, const std::string& /*newPropertyName*/)
282 {
283  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method renameProperty() is not supported by the WMS driver!"));
284 }
285 
286 std::unique_ptr<te::da::PrimaryKey> te::ws::ogc::wms::da::Transactor::getPrimaryKey(const std::string& /*datasetName*/)
287 {
288  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method getPrimaryKey() is not supported by the WMS driver!"));
289 }
290 
291 bool te::ws::ogc::wms::da::Transactor::primaryKeyExists(const std::string& /*datasetName*/, const std::string& /*name*/)
292 {
293  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method primaryKeyExists() is not supported by the WMS driver!"));
294 }
295 
296 void te::ws::ogc::wms::da::Transactor::addPrimaryKey(const std::string& /*datasetName*/, te::da::PrimaryKey* /*pk*/)
297 {
298  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method addPrimaryKey() is not supported by the WMS driver!"));
299 }
300 
301 void te::ws::ogc::wms::da::Transactor::dropPrimaryKey(const std::string& /*datasetName*/)
302 {
303  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method dropPrimaryKey() is not supported by the WMS driver!"));
304 }
305 
306 std::unique_ptr<te::da::ForeignKey> te::ws::ogc::wms::da::Transactor::getForeignKey(const std::string& /*datasetName*/, const std::string& /*name*/)
307 {
308  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method getForeignKey() is not supported by the WMS driver!"));
309 }
310 
311 std::vector<std::string> te::ws::ogc::wms::da::Transactor::getForeignKeyNames(const std::string& /*datasetName*/)
312 {
313  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method getForeignKeyNames() is not supported by the WMS driver!"));
314 }
315 
316 bool te::ws::ogc::wms::da::Transactor::foreignKeyExists(const std::string& /*datasetName*/, const std::string& /*name*/)
317 {
318  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method foreignKeyExists() is not supported by the WMS driver!"));
319 }
320 
321 void te::ws::ogc::wms::da::Transactor::addForeignKey(const std::string& /*datasetName*/, te::da::ForeignKey* /*fk*/)
322 {
323  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method addForeignKey() is not supported by the WMS driver!"));
324 }
325 
326 void te::ws::ogc::wms::da::Transactor::dropForeignKey(const std::string& /*datasetName*/, const std::string& /*fkName*/)
327 {
328  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method dropForeignKey() is not supported by the WMS driver!"));
329 }
330 
331 std::unique_ptr<te::da::UniqueKey> te::ws::ogc::wms::da::Transactor::getUniqueKey(const std::string& /*datasetName*/, const std::string& /*name*/)
332 {
333  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method getUniqueKey() is not supported by the WMS driver!"));
334 }
335 
336 std::vector<std::string> te::ws::ogc::wms::da::Transactor::getUniqueKeyNames(const std::string& /*datasetName*/)
337 {
338  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method getUniqueKeyNames() is not supported by the WMS driver!"));
339 }
340 
341 bool te::ws::ogc::wms::da::Transactor::uniqueKeyExists(const std::string& /*datasetName*/, const std::string& /*name*/)
342 {
343  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method uniqueKeyExists() is not supported by the WMS driver!"));
344 }
345 
346 void te::ws::ogc::wms::da::Transactor::addUniqueKey(const std::string& /*datasetName*/, te::da::UniqueKey* /*uk*/)
347 {
348  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method addUniqueKey() is not supported by the WMS driver!"));
349 }
350 
351 void te::ws::ogc::wms::da::Transactor::dropUniqueKey(const std::string& /*datasetName*/, const std::string& /*name*/)
352 {
353  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method dropUniqueKey() is not supported by the WMS driver!"));
354 }
355 
356 std::unique_ptr<te::da::CheckConstraint> te::ws::ogc::wms::da::Transactor::getCheckConstraint(const std::string& /*datasetName*/, const std::string& /*name*/)
357 {
358  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method getCheckConstraint() is not supported by the WMS driver!"));
359 }
360 
361 std::vector<std::string> te::ws::ogc::wms::da::Transactor::getCheckConstraintNames(const std::string& /*datasetName*/)
362 {
363  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method getCheckConstraintNames() is not supported by the WMS driver!"));
364 }
365 
366 bool te::ws::ogc::wms::da::Transactor::checkConstraintExists(const std::string& /*datasetName*/, const std::string& /*name*/)
367 {
368  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method checkConstraintExists() is not supported by the WMS driver!"));
369 }
370 
371 void te::ws::ogc::wms::da::Transactor::addCheckConstraint(const std::string& /*datasetName*/, te::da::CheckConstraint* /*cc*/)
372 {
373  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method addCheckConstraint() is not supported by the WMS driver!"));
374 }
375 
376 void te::ws::ogc::wms::da::Transactor::dropCheckConstraint(const std::string& /*datasetName*/, const std::string& /*name*/)
377 {
378  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method dropCheckConstraint() is not supported by the WMS driver!"));
379 }
380 
381 std::unique_ptr<te::da::Index> te::ws::ogc::wms::da::Transactor::getIndex(const std::string& /*datasetName*/, const std::string& /*name*/)
382 {
383  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method getIndex() is not supported by the WMS driver!"));
384 }
385 
386 std::vector<std::string> te::ws::ogc::wms::da::Transactor::getIndexNames(const std::string& /*datasetName*/)
387 {
388  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method getIndexNames() is not supported by the WMS driver!"));
389 }
390 
391 bool te::ws::ogc::wms::da::Transactor::indexExists(const std::string& /*datasetName*/, const std::string& /*name*/)
392 {
393  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method indexExists() is not supported by the WMS driver!"));
394 }
395 
396 void te::ws::ogc::wms::da::Transactor::addIndex(const std::string& /*datasetName*/, te::da::Index* /*idx*/, const std::map<std::string, std::string>& /*options*/)
397 {
398  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method addIndex() is not supported by the WMS driver!"));
399 }
400 
401 void te::ws::ogc::wms::da::Transactor::dropIndex(const std::string& /*datasetName*/, const std::string& /*idxName*/)
402 {
403  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method dropIndex() is not supported by the WMS driver!"));
404 }
405 
406 std::unique_ptr<te::da::Sequence> te::ws::ogc::wms::da::Transactor::getSequence(const std::string& /*name*/)
407 {
408  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method getSequence() is not supported by the WMS driver!"));
409 }
410 
412 {
413  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method getSequenceNames() is not supported by the WMS driver!"));
414 }
415 
416 bool te::ws::ogc::wms::da::Transactor::sequenceExists(const std::string& /*name*/)
417 {
418  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method sequenceExists() is not supported by the WMS driver!"));
419 }
420 
422 {
423  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method addSequence() is not supported by the WMS driver!"));
424 }
425 
426 void te::ws::ogc::wms::da::Transactor::dropSequence(const std::string& /*name*/)
427 {
428  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method dropSequence() is not supported by the WMS driver!"));
429 }
430 
431 std::unique_ptr<te::gm::Envelope> te::ws::ogc::wms::da::Transactor::getExtent(
432  const std::string& /*datasetName*/, const std::string& /*propertyName*/)
433 {
434  return std::unique_ptr<te::gm::Envelope>();
435 }
436 
437 std::unique_ptr<te::gm::Envelope> te::ws::ogc::wms::da::Transactor::getExtent(
438  const std::string& /*datasetName*/, std::size_t /*propertyPos*/)
439 {
440  return std::unique_ptr<te::gm::Envelope>();
441 }
442 
444  const std::string& /*datasetName*/)
445 {
446  return 1;
447 }
448 
450 {
451  if(this->getDataSetNames().size() > 0)
452  return true;
453 
454  return false;
455 }
456 
458 {
459  if(m_layerMap.find(name) != m_layerMap.end())
460  {
461  return true;
462  }
463 
464  return false;
465 }
466 
468  const std::map<std::string, std::string>& /*options*/)
469 {
470  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method createDataSet() is not supported by the WMS driver!"));
471 }
472 
473 void te::ws::ogc::wms::da::Transactor::cloneDataSet(const std::string& /*name*/,
474  const std::string& /*cloneName*/,
475  const std::map<std::string, std::string>& /*options*/)
476 {
477  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method cloneDataSet() is not supported by the WMS driver!"));
478 }
479 
480 void te::ws::ogc::wms::da::Transactor::dropDataSet(const std::string& /*name*/)
481 {
482  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method dropDataSet() is not supported by the WMS driver!"));
483 }
484 
485 void te::ws::ogc::wms::da::Transactor::renameDataSet(const std::string& /*name*/,
486  const std::string& /*newName*/)
487 {
488  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method renameDataSet() is not supported by the WMS driver!"));
489 }
490 
491 void te::ws::ogc::wms::da::Transactor::add(const std::string& /*datasetName*/,
492  te::da::DataSet* /*d*/,
493  const std::map<std::string, std::string>& /*options*/,
494  std::size_t /*limit*/,
495  bool /*enableProgress*/)
496 {
497  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method add() is not supported by the WMS driver!"));
498 }
499 
500 void te::ws::ogc::wms::da::Transactor::remove(const std::string& /*datasetName*/, const te::da::ObjectIdSet* /*oids*/)
501 {
502  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method remove() is not supported by the WMS driver!"));
503 }
504 
505 void te::ws::ogc::wms::da::Transactor::update(const std::string& /*datasetName*/,
506  te::da::DataSet* /*dataset*/,
507  const std::vector<std::size_t>& /*properties*/,
508  const te::da::ObjectIdSet* /*oids*/,
509  const std::map<std::string, std::string>& /*options*/,
510  std::size_t /*limit*/)
511 {
512  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method update() is not supported by the WMS driver!"));
513 }
514 
515 void te::ws::ogc::wms::da::Transactor::optimize(const std::map<std::string, std::string>& /*opInfo*/)
516 {
517  throw te::ws::core::Exception() << te::ErrorDescription(TE_TR("The method optimize() is not supported by the WMS driver!"));
518 }
std::vector< std::string > getForeignKeyNames(const std::string &datasetName)
It gets the foreign key names of the given dataset.
void setTitle(const std::string &title)
It sets a human descriptive title for the DataSetType.
Definition: DataSetType.h:137
boost::int64_t getLastGeneratedId()
It returns the last id generated by an insertion command.
void dropDataSet(const std::string &name)
It removes the dataset schema from the data source.
void add(const std::string &datasetName, te::da::DataSet *d, const std::map< std::string, std::string > &options, std::size_t limit=0, bool enableProgress=true)
It adds data items to the dataset in the data source.
std::unique_ptr< te::da::Sequence > getSequence(const std::string &name)
It gets the sequence with the given name in the data source.
void dropProperty(const std::string &datasetName, const std::string &name)
It removes a property from the given dataset.
std::size_t getNumberOfItems(const std::string &datasetName)
It retrieves the number of items of the given dataset.
bool dataSetExists(const std::string &name)
It checks if a dataset with the given name exists in the data source.
std::unique_ptr< te::da::ForeignKey > getForeignKey(const std::string &datasetName, const std::string &name)
It retrieves the foreign key from the given dataset.
bool propertyExists(const std::string &datasetName, const std::string &name)
It checks if a property with the given name exists in the dataset.
std::vector< std::string > getUniqueKeyNames(const std::string &datasetName)
It gets the unique key names of the given dataset.
std::vector< std::string > getIndexNames(const std::string &datasetName)
It gets the index names of the given dataset.
std::unique_ptr< te::da::DataSet > getDataSet(const std::string &name, te::common::TraverseType travType=te::common::FORWARDONLY, bool connected=false, const te::common::AccessPolicy accessPolicy=te::common::RAccess)
It gets the dataset identified by the given name. A dataset can be connected or disconnected. A connected dataset, after its creation through the data source transactor, continues to depend on the connection given by its associated data source. Differently, a disconnected dataset, after its creation, no more depends of the connection given by the data source, and it continues to live after the connection has been released to the data source.
void dropIndex(const std::string &datasetName, const std::string &idxName)
It removes the index from the dataset schema.
void dropPrimaryKey(const std::string &datasetName)
It removes the primary key constraint from the dataset schema.
A class that models the description of a dataset.
Definition: DataSetType.h:72
void rollBack()
It aborts the transaction. Any changes will be rolled-back.
void dropForeignKey(const std::string &datasetName, const std::string &fkName)
It removes the foreign key constraint from the dataset schema.
std::unique_ptr< te::da::Index > getIndex(const std::string &datasetName, const std::string &name)
It gets the index with the given name from the dataset.
std::unique_ptr< te::da::BatchExecutor > getBatchExecutor()
It creates a batch command executor.
std::vector< std::string > getSequenceNames()
It gets the sequence names available in the data source.
bool checkConstraintExists(const std::string &datasetName, const std::string &name)
It checks if a check-constraint with the given name exists in the data source.
void dropUniqueKey(const std::string &datasetName, const std::string &name)
It removes the unique key constraint from the dataset.
void execute(const te::da::Query &command)
It executes the specified command using a generic query representation.
std::unique_ptr< te::da::DataSetType > getDataSetType(const std::string &name)
It gets information about the given dataset.
void renameProperty(const std::string &datasetName, const std::string &propertyName, const std::string &newPropertyName)
It renames a property of the given dataset.
SpatialRelation
Spatial relations between geometric objects.
std::unique_ptr< te::da::UniqueKey > getUniqueKey(const std::string &datasetName, const std::string &name)
It gets the unique key in the dataset with the given name.
It describes a sequence (a number generator).
A class that describes a check constraint.
An abstract class for data providers like a DBMS, Web Services or a regular file. ...
#define TE_TR(message)
It marks a string in order to get translated.
Definition: Translator.h:242
void update(const std::string &datasetName, te::da::DataSet *dataset, const std::vector< std::size_t > &properties, const te::da::ObjectIdSet *oids, const std::map< std::string, std::string > &options, std::size_t limit=0)
It updates the contents of a dataset for the set of data items.
std::size_t getNumberOfProperties(const std::string &datasetName)
It gets the number of properties of the given dataset.
void dropSequence(const std::string &name)
It removes the sequence from the data source.
It models a property definition.
Definition: Property.h:59
Raster property.
void optimize(const std::map< std::string, std::string > &opInfo)
For some data access drivers, this method will perform some operations to optimize the data storage...
boost::error_info< struct tag_error_description, std::string > ErrorDescription
The base type for error report messages.
void remove(const std::string &datasetName, const te::da::ObjectIdSet *oids=0)
It removes all the informed items from the dataset.
The Capability WMS 1.3.0 struct.
void addCheckConstraint(const std::string &datasetName, te::da::CheckConstraint *cc)
It adds a check constraint to the dataset.
bool indexExists(const std::string &datasetName, const std::string &name)
It checks if an index with the given name exists in the dataset.
std::vector< std::string > getPropertyNames(const std::string &datasetName)
It gets the property names of the given dataset.
void addPrimaryKey(const std::string &datasetName, te::da::PrimaryKey *pk)
It adds a primary key constraint to the dataset schema.
AccessPolicy
Supported data access policies (can be used as bitfield).
TraverseType
A dataset can be traversed in two ways:
void addForeignKey(const std::string &datasetName, te::da::ForeignKey *fk)
It adds a foreign key constraint to a dataset.
void cancel()
It requests that the data source stop the processing of the current command.
std::unique_ptr< te::da::PrimaryKey > getPrimaryKey(const std::string &datasetName)
It retrieves the primary key of the dataset.
An Envelope defines a 2D rectangular region.
This class represents a set of unique ids created in the same context. i.e. from the same data set...
Definition: ObjectIdSet.h:55
te::da::DataSourceCapabilities capabilities
bool isDataSetNameValid(const std::string &datasetName)
It returns true if the given string is a valid dataset name.
std::unique_ptr< te::da::CheckConstraint > getCheckConstraint(const std::string &datasetName, const std::string &name)
It gets the check constraint of the dataset with the given name.
void addProperty(const std::string &datasetName, te::dt::Property *p)
It adds a new property to the dataset schema.
te::da::DataSource * getDataSource() const
It returns the parent data source of the transactor.
Transactor(const std::shared_ptr< te::ws::ogc::WMSClient > wms)
The Layer WMS 1.3.0 struct.
boost::ptr_vector< te::dt::Property > getProperties(const std::string &datasetName)
It retrieves the properties of the dataset.
void dropCheckConstraint(const std::string &datasetName, const std::string &name)
It removes the check constraint from the dataset.
It models a foreign key constraint for a DataSetType.
Definition: ForeignKey.h:50
std::vector< std::string > getCheckConstraintNames(const std::string &datasetName)
It gets the check constraint names of the given dataset.
It describes a unique key (uk) constraint.
Definition: UniqueKey.h:53
std::map< std::string, te::ws::ogc::wms::Layer > m_layerMap
bool uniqueKeyExists(const std::string &datasetName, const std::string &name)
It checks if a unique key with the given name exists in the dataset.
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
A Select models a query to be used when retrieving data from a DataSource.
Definition: Select.h:65
bool isInTransaction() const
It returns true if a transaction is in progress, otherwise, it returns false.
Base exception class for WS Core Runtime Library.
bool primaryKeyExists(const std::string &datasetName, const std::string &name)
It checks if a primary key exists in the dataset.
void addIndex(const std::string &datasetName, te::da::Index *idx, const std::map< std::string, std::string > &options)
It adds an index to the dataset.
void add(Constraint *c)
It adds a new constraint.
A dataset is the unit of information manipulated by the data access module of TerraLib.
bool isPropertyNameValid(const std::string &propertyName)
It checks if the given property name is valid.
Implementation of the transactor for the WS OGC WMS.
It describes a primary key (pk) constraint.
Definition: PrimaryKey.h:52
std::string escape(const std::string &value)
It escapes a string for using in commands and queries.
std::unique_ptr< te::da::DataSet > query(const te::da::Select &q, te::common::TraverseType travType=te::common::FORWARDONLY, bool connected=false, const te::common::AccessPolicy accessPolicy=te::common::RAccess)
It executes a query that may return some data using a generic query. A dataset can be connected or di...
bool hasDataSets()
It checks if the data source has any dataset.
std::size_t getNumberOfDataSets()
It retrieves the number of data sets available in the data source.
void addUniqueKey(const std::string &datasetName, te::da::UniqueKey *uk)
It adds a unique key constraint to the dataset.
std::vector< std::string > getDataSetNames()
It It gets the dataset names available in the data source.
te::ws::ogc::wms::Layer getLayerByName(const std::string &layerName)
std::unique_ptr< te::da::PreparedQuery > getPrepared(const std::string &qName=std::string(""))
It creates a prepared query object that may be used for query commands (select, insert, update and delete) that are used repeatedly.
void addSequence(te::da::Sequence *sequence)
It creates a new sequence in the data source.
std::unique_ptr< te::gm::Envelope > getExtent(const std::string &datasetName, const std::string &propertyName)
It retrieves the bounding rectangle of the spatial property for the given dataset.
std::unique_ptr< te::dt::Property > getProperty(const std::string &datasetName, const std::string &name)
It retrieves the property with the given name from the dataset.
void createDataSet(te::da::DataSetType *dt, const std::map< std::string, std::string > &options)
It creates the dataset schema definition in the target data source.
void createLayerMap(const te::ws::ogc::wms::Layer &rootLayer)
A Query is independent from the data source language/dialect.
Definition: Query.h:46
It describes an index associated to a DataSetType.
void renameDataSet(const std::string &name, const std::string &newName)
It renames a dataset.
bool foreignKeyExists(const std::string &datasetName, const std::string &name)
It checks if a foreign key with the given name exists in the data source.
void cloneDataSet(const std::string &name, const std::string &cloneName, const std::map< std::string, std::string > &options)
It clones the dataset in the data source.
bool sequenceExists(const std::string &name)
It checks if a sequence with the given name exists in the data source.