Main Page
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
SQLVisitor.cpp
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/postgis/SQLVisitor.cpp
22
23
\brief A visitor for building an SQL statement from a given Query hierarchy.
24
*/
25
26
// TerraLib
27
#include "../dataaccess/query/LiteralByteArray.h"
28
#include "../dataaccess/query/LiteralDateTime.h"
29
#include "../dataaccess/query/LiteralEnvelope.h"
30
#include "../dataaccess/query/LiteralGeom.h"
31
#include "
SQLVisitor.h
"
32
#include "
Utils.h
"
33
34
// STL
35
#include <cassert>
36
37
te::pgis::SQLVisitor::SQLVisitor
(
const
te::da::SQLDialect
&
dialect
, std::string& sql,
PGconn
* conn)
38
: te::da::
SQLVisitor
(dialect, sql),
39
m_conn(conn)
40
{
41
}
42
43
void
te::pgis::SQLVisitor::visit
(
const
te::da::LiteralByteArray
& visited)
44
{
45
assert(visited.
getValue
() != 0);
46
assert(
false
);
//TODO
47
}
48
49
void
te::pgis::SQLVisitor::visit
(
const
te::da::LiteralDateTime
& visited)
50
{
51
assert(visited.
getValue
() != 0);
52
assert(
false
);
//TODO
53
}
54
55
void
te::pgis::SQLVisitor::visit
(
const
te::da::LiteralEnvelope
& visited)
56
{
57
assert(visited.
getValue
() != 0);
58
Convert2PostGIS
(visited.
getValue
(), visited.
getSRID
(), m_sql);
59
}
60
61
void
te::pgis::SQLVisitor::visit
(
const
te::da::LiteralGeom
& visited)
62
{
63
assert(visited.
getValue
() != 0);
64
Convert2PostGIS
(m_conn, static_cast<te::gm::Geometry*>(visited.
getValue
()), m_sql);
65
}
dialect
te::da::SQLDialect * dialect
Definition:
WFSDialect.h:1
te::da::SQLDialect
It represents the SQL query dialect accepted by a given data source.
Definition:
SQLDialect.h:55
te::pgis::SQLVisitor
A visitor for building an SQL statement using PostGIS dialect.
Definition:
SQLVisitor.h:52
te::da::LiteralDateTime
A class that models a literal for Date and Time values.
Definition:
LiteralDateTime.h:48
PGconn
struct pg_conn PGconn
Definition:
Connection.h:45
Utils.h
Utility functions for PostgreSQL.
te::pgis::Convert2PostGIS
void Convert2PostGIS(const te::gm::Envelope *e, int srid, std::string &output)
It converts the envelope into a PostGIS BOX3D.
Definition:
Utils.h:225
te::da::LiteralByteArray
A class that models a literal for ByteArray values.
Definition:
LiteralByteArray.h:48
te::da::LiteralEnvelope::getSRID
int getSRID() const
It returns the envelope SRS id.
Definition:
LiteralEnvelope.h:108
te::pgis::SQLVisitor::visit
void visit(const te::da::LiteralByteArray &visited)
Definition:
SQLVisitor.cpp:43
SQLVisitor.h
A visitor for building an SQL statement using PostGIS dialect.
te::da::LiteralEnvelope
A class that models a literal for Envelope values.
Definition:
LiteralEnvelope.h:51
te::pgis::SQLVisitor::SQLVisitor
SQLVisitor(const te::da::SQLDialect &dialect, std::string &sql, PGconn *conn)
Default constructor.
Definition:
SQLVisitor.cpp:37
te::da::Literal::getValue
te::dt::AbstractData * getValue() const
It returns the value associated to the literal.
Definition:
Literal.cpp:65
te::da::LiteralEnvelope::getValue
te::gm::Envelope * getValue() const
It returns the associated envelope value.
Definition:
LiteralEnvelope.cpp:70
te::da::LiteralGeom
A class that models a literal for Geometry values.
Definition:
LiteralGeom.h:46
TL5_2015_release
terralib5
src
terralib
postgis
SQLVisitor.cpp
Generated on Wed Jun 3 2015 10:22:19 for TerraLib by
1.8.7