BinaryOpEncoder.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/query/BinaryOpEncoder.h
22
23
\brief A query encoder for binary operations.
24
*/
25
26
#ifndef __TERRALIB_DATAACCESS_INTERNAL_BINARYOPENCODER_H
27
#define __TERRALIB_DATAACCESS_INTERNAL_BINARYOPENCODER_H
28
29
// TerraLib
30
#include "
SQLFunctionEncoder.h
"
31
32
namespace
te
33
{
34
namespace
da
35
{
36
/*!
37
\class BinaryOpEncoder
38
39
\brief A query encoder for binary operations.
40
41
It encodes a binary operator using the following convention: (arg1 op-name arg2).
42
43
\sa Function, TemplateEncoder, SQLFunctionEncoder, UnaryOpEncoder, FunctionEncoder, FunctionNoArgsEncoder
44
*/
45
class
TEDATAACCESSEXPORT
BinaryOpEncoder
:
public
SQLFunctionEncoder
46
{
47
public
:
48
49
/*!
50
\brief Constructor.
51
52
\param name An alias to the operator name.
53
*/
54
BinaryOpEncoder
(
const
std::string& name) :
SQLFunctionEncoder
(name) {}
55
56
/*! \brief Destructor. */
57
~BinaryOpEncoder
() {}
58
59
/*!
60
\brief It encodes the function to a SQL notation.
61
62
This method will encode the function in infix binary operator notation: (firstOperand op secondOperand).
63
For example, the '+' function is encoded as: (A + B).
64
65
\param f The function to be translated to a SQL notation.
66
\param alias The function alias in the data source query language.
67
\param buff The destination string buffer where the translation will be written.
68
\param v The SQL visitor that will be used to visit the arguments expression.
69
*/
70
void
toSQL
(
const
Function
& f,
71
std::string& buff,
72
SQLVisitor
& v)
const
;
73
};
74
75
}
// end namespace da
76
}
// end namespace te
77
78
#endif // __TERRALIB_DATAACCESS_INTERNAL_BINARYOPENCODER_H
79
te::da::SQLVisitor
A visitor for building an SQL statement from a given Query hierarchy.
Definition:
SQLVisitor.h:59
te
TerraLib.
Definition:
AddressGeocodingOp.h:52
te::da::SQLFunctionEncoder
A base class for encoders of SQL function expressions.
Definition:
SQLFunctionEncoder.h:56
te::da::BinaryOpEncoder::toSQL
void toSQL(const Function &f, std::string &buff, SQLVisitor &v) const
It encodes the function to a SQL notation.
te::da::Function
A class that models a Function expression.
Definition:
Function.h:48
TEDATAACCESSEXPORT
#define TEDATAACCESSEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition:
Config.h:97
te::da::BinaryOpEncoder
A query encoder for binary operations.
Definition:
BinaryOpEncoder.h:46
SQLFunctionEncoder.h
A base class for encoders of SQL function expressions.
te::da::BinaryOpEncoder::BinaryOpEncoder
BinaryOpEncoder(const std::string &name)
Constructor.
Definition:
BinaryOpEncoder.h:54
te::da::BinaryOpEncoder::~BinaryOpEncoder
~BinaryOpEncoder()
Destructor.
Definition:
BinaryOpEncoder.h:57
git_release
src
terralib
dataaccess
query
BinaryOpEncoder.h
Generated on Fri Dec 4 2020 09:43:34 for TerraLib by
1.8.20