Loading...
Searching...
No Matches
Expression.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/fe/Expression.h
22
23 \brief This is an abstract class that models a Filter Encoding expression.
24 */
25
26#ifndef __TERRALIB_FE_INTERNAL_EXPRESSION_H
27#define __TERRALIB_FE_INTERNAL_EXPRESSION_H
28
29// TerraLib
30#include "../common/BaseVisitable.h"
31#include "Config.h"
32#include "Visitor.h"
33
34namespace te
35{
36 namespace fe
37 {
38 /*! \class Expression
39
40 \brief This is an abstract class that models a Filter Encoding expression.
41
42 An expression is a combination of one
43 or more symbols that evaluate to single boolean
44 value of true or false.
45
46 \ingroup fe
47
48 \sa BinaryOperator, PropertyName, Function, Literal, BinaryComparisonOp, PropertyIsBetween
49 */
51 {
52 public:
53
55
56 /** @name Initializer Methods
57 * Methods related to instantiation and destruction.
58 */
59 //@{
60
61 /*! \brief It initializes a new Expression. */
63
64 /*! \brief Virtual destructor. */
65 virtual ~Expression() {}
66
67 //@}
68
69 /*!
70 \brief It returns a clone of this object.
71
72 \return A clone of this object.
73 */
74 virtual Expression* clone() const = 0;
75
76 private:
77
78 /** @name Not Allowed Methods
79 * No copy allowed.
80 */
81 //@{
82
83 /*!
84 \brief No copy constructor allowed.
85
86 \param rhs The other instance.
87 */
89
90 /*!
91 \brief No assignment operator allowed.
92
93 \param rhs The other instance.
94
95 \return A reference for this.
96 */
98
99 //@}
100 };
101
102 } // end namespace fe
103} // end namespace te
104
105#endif // __TERRALIB_FE_INTERNAL_EXPRESSION_H
106
#define TE_DEFINE_VISITABLE
Definition: BaseVisitable.h:75
The root of all hierarchies that can be visited.
Definition: BaseVisitable.h:54
This is an abstract class that models a Filter Encoding expression.
Definition: Expression.h:51
virtual Expression * clone() const =0
It returns a clone of this object.
virtual ~Expression()
Virtual destructor.
Definition: Expression.h:65
Expression(const Expression &rhs)
No copy constructor allowed.
Expression & operator=(const Expression &rhs)
No assignment operator allowed.
Expression()
It initializes a new Expression.
Definition: Expression.h:62
TerraLib.
A visitor interface for the SymbologyEncoding hierarchy.
#define TEFEEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:59
Proxy configuration file for TerraView (see terraview_config.h).