PrintDataSourceCapabilities.cpp
Go to the documentation of this file.
1 // Examples
2 #include "DataAccessExamples.h"
3 
4 // TerraLib
5 
6 // STL
7 #include <iostream>
8 #include <string>
9 
10 void PrintHelper(const std::string& label, const bool& value)
11 {
12  std::cout << " - " << label << ": ";
13  value ? std::cout << "Yes" << std::endl : std::cout << "No" << std::endl;
14 }
15 
17 {
18  if(ds == 0)
19  {
20  std::cout << "The given datasource is NULL!" << std::endl;
21  return;
22  }
23 
24  // Retrieves the data source capabilities
26 
27  // Let's print the informed capabilities...
28  std::cout << "== DataSource Capabilities ==" << std::endl;
29  std::cout << " - Access Policy: ";
30  switch(capabilities.getAccessPolicy())
31  {
33  std::cout << "NoAccess (No access allowed)" << std::endl;
34  break;
35 
37  std::cout << "RAccess (Read-only access allowed)" << std::endl;
38  break;
39 
41  std::cout << "WAccess (Write-only access allowed)" << std::endl;
42  break;
43 
45  std::cout << "RWAccess (Read and write access allowed)" << std::endl;
46  break;
47  }
48 
49  PrintHelper("Support Transactions", capabilities.supportsTransactions());
50  PrintHelper("Support Dataset Persitence API", capabilities.supportsDataSetPesistenceAPI());
51  PrintHelper("Support Dataset Type Persitence API", capabilities.supportsDataSetTypePesistenceAPI());
52  PrintHelper("Support Prepared Query API", capabilities.supportsPreparedQueryAPI());
53  PrintHelper("Support Batch Executor API", capabilities.supportsBatchExecutorAPI());
54 
55  std::cout << ":: DataType Capabilities" << std::endl;
57  PrintHelper("Support BIT", dataTypeCapabilities.supportsBit());
58  PrintHelper("Support CHAR", dataTypeCapabilities.supportsChar());
59  PrintHelper("Support UCHAR", dataTypeCapabilities.supportsUChar());
60  PrintHelper("Support INT16", dataTypeCapabilities.supportsInt16());
61  PrintHelper("Support UINT16", dataTypeCapabilities.supportsUInt16());
62  PrintHelper("Support INT32", dataTypeCapabilities.supportsInt32());
63  PrintHelper("Support UINT32", dataTypeCapabilities.supportsUInt32());
64  PrintHelper("Support INT64", dataTypeCapabilities.supportsInt64());
65  PrintHelper("Support UINT64", dataTypeCapabilities.supportsUInt64());
66  PrintHelper("Support BOOLEAN", dataTypeCapabilities.supportsBoolean());
67  PrintHelper("Support FLOAT", dataTypeCapabilities.supportsFloat());
68  PrintHelper("Support DOUBLE", dataTypeCapabilities.supportsDouble());
69  PrintHelper("Support NUMERIC", dataTypeCapabilities.supportsNumeric());
70  PrintHelper("Support STRING", dataTypeCapabilities.supportsString());
71  PrintHelper("Support BYTE_ARRAY", dataTypeCapabilities.supportsByteArray());
72  PrintHelper("Support GEOMETRY", dataTypeCapabilities.supportsGeometry());
73  PrintHelper("Support DATE_TIME", dataTypeCapabilities.supportsDateTime());
74  PrintHelper("Support ARRAY", dataTypeCapabilities.supportsArray());
75  PrintHelper("Support COMPOSITE", dataTypeCapabilities.supportsComposite());
76  PrintHelper("Support DATASET", dataTypeCapabilities.supportsDataset());
77  PrintHelper("Support RASTER", dataTypeCapabilities.supportsRaster());
78  PrintHelper("Support XML", dataTypeCapabilities.supportsXML());
79  PrintHelper("Support CINT16", dataTypeCapabilities.supportsCInt16());
80  PrintHelper("Support CINT32", dataTypeCapabilities.supportsCInt32());
81  PrintHelper("Support CFLOAT", dataTypeCapabilities.supportsCFloat());
82  PrintHelper("Support CDOUBLE", dataTypeCapabilities.supportsCDouble());
83  //PrintHelper("Support DATASET_ITEM", dataTypeCapabilities.supportsDatasetItem());
84  PrintHelper("Support POLYMORPHIC", dataTypeCapabilities.supportsPolymorphic());
85 
86  std::cout << ":: DataSetType Capabilities" << std::endl;
88  PrintHelper("Support Primary Key", dataSetTypeCapabilities.supportsPrimaryKey());
89  PrintHelper("Support Unique Key", dataSetTypeCapabilities.supportsUniqueKey());
90  PrintHelper("Support Foreign Key", dataSetTypeCapabilities.supportsForeignKey());
91  PrintHelper("Support Sequence", dataSetTypeCapabilities.supportsSequence());
92  PrintHelper("Support CheckConstraints", dataSetTypeCapabilities.supportsCheckConstraints());
93  PrintHelper("Support Index", dataSetTypeCapabilities.supportsIndex());
94  PrintHelper("Support R-Tree Index", dataSetTypeCapabilities.supportsRTreeIndex());
95  PrintHelper("Support B-Tree Index", dataSetTypeCapabilities.supportsBTreeIndex());
96  PrintHelper("Support Hash Index", dataSetTypeCapabilities.supportsHashIndex());
97  PrintHelper("Support Quad-Tree Index", dataSetTypeCapabilities.supportsQuadTreeIndex());
98 
99  std::cout << ":: DataSet Capabilities" << std::endl;
101  PrintHelper("Support Traversing in a Bidirectional way", dataSetCapabilities.supportsBidirectionalTraversing());
102  PrintHelper("Support Traversing in a Random way", dataSetCapabilities.supportsRandomTraversing());
103  PrintHelper("Support Traversing using a given key", dataSetCapabilities.supportsIndexedTraversing());
104  PrintHelper("Efficient Move Previous", dataSetCapabilities.supportsEfficientMovePrevious());
105  PrintHelper("Efficient Move Before First", dataSetCapabilities.supportsEfficientMoveBeforeFirst());
106  PrintHelper("Efficient Move Last", dataSetCapabilities.supportsEfficientMoveLast());
107  PrintHelper("Efficient Move After Last", dataSetCapabilities.supportsEfficientMoveAfterLast());
108  PrintHelper("Efficient Move", dataSetCapabilities.supportsEfficientMove());
109  PrintHelper("Efficient Dataset Size", dataSetCapabilities.supportsEfficientDataSetSize());
110 
111  std::cout << ":: Query Capabilities" << std::endl;
113  PrintHelper("Support SQL Dialect", queryCapabilities.supportsSQLDialect());
114  PrintHelper("Support INSERT command", queryCapabilities.supportsInsert());
115  PrintHelper("Support UPDATE command", queryCapabilities.supportsUpdate());
116  PrintHelper("Support DELETE command", queryCapabilities.supportsDelete());
117  PrintHelper("Support CREATE command", queryCapabilities.supportsCreate());
118  PrintHelper("Support DROP command", queryCapabilities.supportsDrop());
119  PrintHelper("Support ALTER command", queryCapabilities.supportsAlter());
120  PrintHelper("Support SELECT command", queryCapabilities.supportsSelect());
121  PrintHelper("Support SELECT INTO command", queryCapabilities.supportsSelectInto());
122 }
void PrintDataSourceCapabilities(te::da::DataSource *ds)
It retrieves and prints the capabilities of a given data source.
te::common::AccessPolicy getAccessPolicy() const
const DataSetTypeCapabilities & getDataSetTypeCapabilities() const
A class that informs what kind of constraint and index is supported by a given data source...
void PrintHelper(const std::string &label, const bool &value)
te::da::QueryCapabilities queryCapabilities
const DataTypeCapabilities & getDataTypeCapabilities() const
A class that represents the known capabilities of a specific data source, i.e. this class informs all...
static te::dt::Date ds(2010, 01, 01)
An abstract class for data providers like a DBMS, Web Services or a regular file. ...
A class that informs what the dataset implementation of a given data source can perform.
const QueryCapabilities & getQueryCapabilities() const
te::da::DataSetTypeCapabilities dataSetTypeCapabilities
A class that represents the supported data types of a specific data source.
te::da::DataTypeCapabilities dataTypeCapabilities
virtual const DataSourceCapabilities & getCapabilities() const =0
It returns the known capabilities of the data source.
A class that informs the query support of a given data source.
te::da::DataSourceCapabilities capabilities
Examples on how to access/manipulate DataSources in TerraLib.
te::da::DataSetCapabilities dataSetCapabilities
bool supportsEfficientMoveBeforeFirst() const
const DataSetCapabilities & getDataSetCapabilities() const