ScalarCapabilities.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 ScalarCapabilities.h
22 
23  \brief Scalar capabilities include the ability to process logical expressions, comparisons and arithmetic operations including the ability to process a list of named functions.
24  */
25 
26 #ifndef __TERRALIB_FE_INTERNAL_SCALARCAPABILITIES_H
27 #define __TERRALIB_FE_INTERNAL_SCALARCAPABILITIES_H
28 
29 // TerraLib
30 #include "Config.h"
31 
32 namespace te
33 {
34  namespace fe
35  {
36 // Forward declarations
37  class ArithmeticOperators;
38  class ComparisonOperators;
39 
40  /*! \class ScalarCapabilities
41 
42  \brief Scalar capabilities include the ability to process logical expressions, comparisons and arithmetic operations including the ability to process a list of named functions.
43 
44  \sa FilterCapabilities, ComparisonOperators, ArithmeticOperators
45  */
47  {
48  public:
49 
50  /** @name Initializer Methods
51  * Methods related to instantiation and destruction.
52  */
53  //@{
54 
55  /*! \brief It initializes a new ScalarCapabilities. */
57 
58  /*! \brief Destructor. */
60 
61  //@}
62 
63  /** @name Accessor methods
64  * Methods used to get or set properties.
65  */
66  //@{
67 
68  /*!
69  \brief It returns true if it has logical operators support, otherwise, returns false.
70 
71  \return True if it has logical operators support, otherwise, returns false.
72  */
73  bool hasLogicalOperators() const;
74 
75  /*! \brief It enables the logical operators support. */
76  void enableLogicalOperators();
77 
78  /*! brief It disables the logical operators support. */
79  void disableLogicalOperators();
80 
81  /*!
82  \brief It sets the comparison operators.
83 
84  \param cOps The comparison operators.
85 
86  \note It will take the ownership of the comparison operators.
87  So, don't release the comparison operators resources.
88  */
89  void setComparisonOperators(ComparisonOperators* cOps);
90 
91  /*!
92  \brief It returns the comparison operators.
93 
94  \return The comparison operators.
95  */
96  const ComparisonOperators* getComparisonOperators() const;
97 
98  /*! \brief It sets the arithmetic operators.
99 
100  \param aOps The arithmetic operators.
101 
102  \note It will take the ownership of the arithmetic operators.
103  So, don't release the arithmetic operators resources.
104  */
105  void setArithmeticOperators(ArithmeticOperators* aOps);
106 
107  /*!
108  \brief It returns the arithmetic operators.
109 
110  \return The arithmetic operators.
111  */
112  const ArithmeticOperators* getArithmeticOperators() const;
113 
114  //@}
115 
116  private:
117 
118  bool m_hasLogicalOperators; //!< It is used to indicate that the filter can process And, Or and Not operators. Default: false. (Optional)
121  };
122 
123  } // end namespace fe
124 } // end namespace te
125 
126 #endif // __TERRALIB_FE_INTERNAL_SCALARCAPABILITIES_H
ArithmeticOperators * m_arithmeticOperators
Optional.
#define TEFEEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:59
It is used to indicate the arithmetic operators that a service can support.
bool m_hasLogicalOperators
It is used to indicate that the filter can process And, Or and Not operators. Default: false...
URI C++ Library.
Configuration flags for the TerraLib Filter Encoding module.
Scalar capabilities include the ability to process logical expressions, comparisons and arithmetic op...
ComparisonOperators * m_comparisonOperators
Optional.
It is used to indicate what types of comparison operators are supported by a service.