Main Page
Modules
Namespaces
Classes
Files
File List
File Members
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
URI C++ Library.
Definition:
AddressGeocodingOp.h:51
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
git_master
terralib5
src
terralib
postgis
SQLVisitor.cpp
Generated on Tue Jan 12 2016 08:40:53 for TerraLib by
1.8.9.1