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 
34 namespace 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  */
88  Expression(const Expression& rhs);
89 
90  /*!
91  \brief No assignment operator allowed.
92 
93  \param rhs The other instance.
94 
95  \return A reference for this.
96  */
97  Expression& operator=(const Expression& rhs);
98 
99  //@}
100  };
101 
102  } // end namespace fe
103 } // end namespace te
104 
105 #endif // __TERRALIB_FE_INTERNAL_EXPRESSION_H
106 
The root of all hierarchies that can be visited.
Definition: BaseVisitable.h:53
#define TEFEEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:59
Expression()
It initializes a new Expression.
Definition: Expression.h:62
URI C++ Library.
This is an abstract class that models a Filter Encoding expression.
Definition: Expression.h:50
#define TE_DEFINE_VISITABLE
Definition: BaseVisitable.h:75
Configuration flags for the TerraLib Filter Encoding module.
virtual ~Expression()
Virtual destructor.
Definition: Expression.h:65