Function.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/se/Function.h
22 
23  \brief Symbology Encoding functions.
24 */
25 
26 #ifndef __TERRALIB_SE_INTERNAL_FUNCTION_H
27 #define __TERRALIB_SE_INTERNAL_FUNCTION_H
28 
29 // TerraLib
30 #include "../fe/Expression.h"
31 #include "Config.h"
32 
33 // STL
34 #include <string>
35 
36 namespace te
37 {
38  namespace se
39  {
40  /*!
41  \class Function
42 
43  \brief Symbology Encoding functions.
44 
45  Symbology Encoding extends the concept of ogc::fe::Expression
46  inherited from Filter Encoding to adequately support the needs
47  of symbolization in transforming and editing data. It does so
48  by introducing a couple of functions (ogc::se::Function) which
49  are substitutable for ogc::fe::expression.<br>
50  There are two general groups of functions for usage in SE.
51  The first group is used to transform raw values into
52  "symbolizable" quantities. This especially comprises the
53  processes of categorization, recoding, and interpolation.
54  This group of functions is especially useful in all places
55  using SvgParameters, making them dynamically related to data
56  values. The second group defines means for formatting data
57  items like numbers, strings, and dates. These functions are
58  especially helpful to set up the Label element of TextSymbolizers.
59 
60  \sa FormatNumber, FormatDate, Substring,
61  Concatenate, ChangeCase, Trim,
62  StringPosition, StringLength, Categorize,
63  Interpolate, Recode
64  */
66  {
67  public:
68 
69  /** @name Initializer Methods
70  * Methods related to instantiation and destruction.
71  */
72  //@{
73 
74  /*! \brief It initializes a new Function. */
75  Function();
76 
77  /*! \brief Virtual destructor. */
78  virtual ~Function();
79 
80  //@}
81 
82  void setFallbackValue(const std::string& v);
83 
84  const std::string& getFallbackValue() const;
85 
86  protected:
87 
88  std::string m_fallbackValue; //!< The value of the fallbackValue attribute is used as a default value, if the SE implementation does not support the function. If the implementation supports the function, then the result value is determined by executing the function. (Mandatory)
89  };
90 
91  } // end namespace se
92 } // end namespace te
93 
94 #endif // __TERRALIB_SE_INTERNAL_FUNCTION_H
95 
Symbology Encoding functions.
Definition: Function.h:65
URI C++ Library.
This is an abstract class that models a Filter Encoding expression.
Definition: Expression.h:50
#define TESEEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:187
Configuration flags for the Symbology Encoding support of TerraLib.
std::string m_fallbackValue
The value of the fallbackValue attribute is used as a default value, if the SE implementation does no...
Definition: Function.h:88