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  */
98 
99  //@}
100  };
101 
102  } // end namespace fe
103 } // end namespace te
104 
105 #endif // __TERRALIB_FE_INTERNAL_EXPRESSION_H
106 
te
TerraLib.
Definition: AddressGeocodingOp.h:52
Visitor.h
A visitor interface for the SymbologyEncoding hierarchy.
TEFEEXPORT
#define TEFEEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:59
te::fe::Expression::Expression
Expression(const Expression &rhs)
No copy constructor allowed.
te::fe::Expression::~Expression
virtual ~Expression()
Virtual destructor.
Definition: Expression.h:65
te::common::BaseVisitable
The root of all hierarchies that can be visited.
Definition: BaseVisitable.h:54
TE_DEFINE_VISITABLE
#define TE_DEFINE_VISITABLE
Definition: BaseVisitable.h:75
te::fe::Expression::operator=
Expression & operator=(const Expression &rhs)
No assignment operator allowed.
te::fe::Expression::Expression
Expression()
It initializes a new Expression.
Definition: Expression.h:62
te::fe::Expression
This is an abstract class that models a Filter Encoding expression.
Definition: Expression.h:51
te::fe::Expression::clone
virtual Expression * clone() const =0
It returns a clone of this object.
Config.h
Proxy configuration file for TerraView (see terraview_config.h).