Serializer.h
Go to the documentation of this file.
1 /* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20 /*!
21  \file terralib/dataaccess/serialization/xml/DataSetType.h
22 
23  \brief Support for DataSetType serialization.
24 */
25 
26 #ifndef __TERRALIB_SERIALIZATION_DATAACCESS_INTERNAL_DATASETTYPE_H
27 #define __TERRALIB_SERIALIZATION_DATAACCESS_INTERNAL_DATASETTYPE_H
28 
29 // TerraLib
30 #include "../../query/Distinct.h"
31 #include "../../query/Fields.h"
32 #include "../../query/From.h"
33 #include "../../query/GroupBy.h"
34 #include "../../query/OrderBy.h"
35 #include "../../Config.h"
36 
37 // STL
38 #include <vector>
39 
40 namespace te
41 {
42  namespace da
43  {
44  class DataSetType;
45  class DataSourceCapabilities;
46  class DataSourceCatalog;
47  class DataSourceInfo;
48  class Field;
49  class Function;
50  class GroupByItem;
51  class Having;
52  class Literal;
53  class OrderByItem;
54  class PropertyName;
55  class Select;
56  class SQLDialect;
57  class Where;
58  }
59 
60  namespace xml
61  {
62  class AbstractWriter;
63  class Reader;
64  }
65 
66  namespace serialize
67  {
68  namespace xml
69  {
70  TEDATAACCESSEXPORT void ReadDataSourceInfo(const std::string& datasourcesFileName);
71 
73 
74  TEDATAACCESSEXPORT void Save(const std::string& fileName);
75 
77 
79 
80  TEDATAACCESSEXPORT void Save(const te::da::DataSourceCatalog* catalog, const std::string& fileName);
81 
83 
85 
87 
89 
90  TEDATAACCESSEXPORT te::da::SQLDialect* ReadDialect(const std::string& dialectFileName);
91 
93 
95 
97 
99 
101 
103 
105 
107 
109 
111 
113 
115 
116  TEDATAACCESSEXPORT void Save(const te::da::Distinct* distinct, te::xml::AbstractWriter& writer);
117 
118  TEDATAACCESSEXPORT void Save(const te::da::Expression* expression, te::xml::AbstractWriter& writer);
119 
120  TEDATAACCESSEXPORT void Save(const te::da::Field* field, te::xml::AbstractWriter& writer);
121 
122  TEDATAACCESSEXPORT void Save(const te::da::Fields* fields, te::xml::AbstractWriter& writer);
123 
124  TEDATAACCESSEXPORT void Save(const te::da::From* from, te::xml::AbstractWriter& writer);
125 
126  TEDATAACCESSEXPORT void Save(const te::da::FromItem* fromItem, te::xml::AbstractWriter& writer);
127 
129 
130  TEDATAACCESSEXPORT void Save(const te::da::GroupByItem* groupByItem, te::xml::AbstractWriter& writer);
131 
132  TEDATAACCESSEXPORT void Save(const te::da::GroupBy* groupBy, te::xml::AbstractWriter& writer);
133 
134  TEDATAACCESSEXPORT void Save(const te::da::Having* having, te::xml::AbstractWriter& writer);
135 
137 
138  TEDATAACCESSEXPORT void Save(const te::da::OrderByItem* orderByItem, te::xml::AbstractWriter& writer);
139 
140  TEDATAACCESSEXPORT void Save(const te::da::OrderBy* orderBy, te::xml::AbstractWriter& writer);
141 
142  TEDATAACCESSEXPORT void Save(const te::da::PropertyName* propertyName, te::xml::AbstractWriter& writer);
143 
144  TEDATAACCESSEXPORT void Save(const te::da::Select* select, te::xml::AbstractWriter& writer);
145 
147 
148  } // end namespace xml
149  } // end namespace serialize
150 } // end namespace te
151 
152 #endif // __TERRALIB_SERIALIZATION_DATAACCESS_INTERNAL_DATASETTYPE_H
153 
A class that can be used to model a filter expression that can be applied to a query.
Definition: Having.h:47
boost::ptr_vector< GroupByItem > GroupBy
A class that can be used to model a GROUP BY clause.
Definition: GroupBy.h:37
te::da::SQLDialect * dialect
Definition: WFSDialect.h:1
A class that can be used in a GROUP BY clause.
Definition: GroupByItem.h:50
An abstract class that models a source of data in a query.
Definition: FromItem.h:50
The Field class can be used to model an expression that takes part of the output items of a SELECT...
Definition: Field.h:50
This class models a XML reader object.
Definition: Reader.h:55
TEDATAACCESSEXPORT te::da::Where * ReadWhere(te::xml::Reader &reader)
It represents the system catalog of a DataSource.
boost::ptr_vector< Expression > Distinct
A class that models a Distinct clause on a query.
Definition: Distinct.h:37
A class that models the name of any property of an object.
Definition: PropertyName.h:50
A class that models the description of a dataset.
Definition: DataSetType.h:72
It represents the SQL query dialect accepted by a given data source.
Definition: SQLDialect.h:55
boost::ptr_vector< OrderByItem > OrderBy
A class that can be used to model an ORDER BY clause.
Definition: OrderBy.h:37
TEDATAACCESSEXPORT te::da::Select * ReadSelect(te::xml::Reader &reader)
A class that represents the known capabilities of a specific data source, i.e. this class informs all...
This class models a XML writer object.
TEDATAACCESSEXPORT te::da::GroupBy * ReadGroupBy(te::xml::Reader &reader)
TEDATAACCESSEXPORT te::da::FromItem * ReadFromItem(te::xml::Reader &reader)
TEDATAACCESSEXPORT te::da::Fields * ReadFields(te::xml::Reader &reader)
This is an abstract class that models a query expression.
Definition: Expression.h:47
TEDATAACCESSEXPORT te::da::Function * ReadFunction(te::xml::Reader &reader)
TEDATAACCESSEXPORT void Save(const std::string &fileName)
TEDATAACCESSEXPORT te::da::DataSourceCatalog * ReadDataSourceCatalog(te::xml::Reader &reader)
TEDATAACCESSEXPORT te::da::From * ReadFrom(te::xml::Reader &reader)
This class models a literal value.
Definition: Literal.h:53
te::da::DataSourceCapabilities capabilities
TEDATAACCESSEXPORT te::da::SQLDialect * ReadDialect(const std::string &dialectFileName)
URI C++ Library.
TEDATAACCESSEXPORT te::da::Literal * ReadLiteral(te::xml::Reader &reader)
boost::ptr_vector< Field > Fields
Fields is just a boost::ptr_vector of Field pointers.
Definition: Fields.h:37
A class that can be used to model a filter expression that can be applied to a query.
Definition: Where.h:47
TEDATAACCESSEXPORT te::da::DataSetType * ReadDataSetType(te::xml::Reader &reader)
A class that models a Function expression.
Definition: Function.h:47
A Select models a query to be used when retrieving data from a DataSource.
Definition: Select.h:65
TEDATAACCESSEXPORT te::da::PropertyName * ReadPropertyName(te::xml::Reader &reader)
boost::ptr_vector< FromItem > From
It models the FROM clause for a query.
Definition: From.h:37
TEDATAACCESSEXPORT te::da::Distinct * ReadDistinct(te::xml::Reader &reader)
TEDATAACCESSEXPORT void ReadDataSourceInfo(const std::string &datasourcesFileName)
A class that represents a data source component.
TEDATAACCESSEXPORT te::da::OrderBy * ReadOrderBy(te::xml::Reader &reader)
#define TEDATAACCESSEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:97
TEDATAACCESSEXPORT te::da::Having * ReadHaving(te::xml::Reader &reader)
A class that can be used in an ORDER BY clause to sort the items of a resulting query.
Definition: OrderByItem.h:53
TEDATAACCESSEXPORT void Read(const std::string &dialectFileName, te::da::DataSourceCapabilities &capabilities, te::da::SQLDialect &dialect)