PropertyName.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 PropertyName.h
22 
23  \brief This class can be used to is used to encode the name of any property of an object.
24  */
25 
26 #ifndef __TERRALIB_FE_INTERNAL_PROPERTYNAME_H
27 #define __TERRALIB_FE_INTERNAL_PROPERTYNAME_H
28 
29 // TerraLib
30 #include "Expression.h"
31 
32 // STL
33 #include <string>
34 
35 namespace te
36 {
37  namespace fe
38  {
39  /*!
40  \class PropertyName
41 
42  \brief This class is used to encode the name of any property of an object.
43 
44  The property name can be used in scalar or spatial
45  expressions to represent the value of that property
46  for a particular instance of an object.
47 
48  \ingroup fe
49 
50  \sa Expression, SortProperty, DistanceBuffer, BBOXOp, BinarySpatialOp, PropertyIsLike, PropertyIsNull
51 
52  \todo In the XML schema it is marked as mixed, so this put another requirement to this class!
53  */
55  {
56  public:
57 
59 
60  /** @name Initializer Methods
61  * Methods related to instantiation and destruction.
62  */
63  //@{
64 
65  /*!
66  \brief It initializes a new PropertyName.
67 
68  \name The property name.
69 
70  \note The name content can be given using XPath syntax.
71  */
72  PropertyName(const std::string& name);
73 
74  /*! \brief Destructor. */
75  ~PropertyName();
76 
77  //@}
78 
79  /** @name Accessor methods
80  * Methods used to get or set properties.
81  */
82  //@{
83 
84  /*!
85  \brief It sets the property name.
86 
87  \param name The property name.
88  */
89  void setName(const std::string& name);
90 
91  /*!
92  \brief It returns the property name.
93 
94  \return The property name.
95  */
96  const std::string& getName() const;
97 
98  //@}
99 
100  /** @name Expression Re-implementation
101  * Methods re-implemented from Expression.
102  */
103  //@{
104 
105  Expression* clone() const;
106 
107  //@}
108 
109  private:
110 
111  std::string m_name; //!< Property name. (Mandatory)
112  };
113 
114  } // end namespace se
115 } // end namespace te
116 
117 #endif // __TERRALIB_FE_INTERNAL_PROPERTYNAME_H
118 
std::string m_name
Property name. (Mandatory)
Definition: PropertyName.h:111
#define TEFEEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:59
This class is used to encode the name of any property of an object.
Definition: PropertyName.h:54
URI C++ Library.
This is an abstract class that models a Filter Encoding expression.
Definition: Expression.h:50
This is an abstract class that models a Filter Encoding expression.
#define TE_DEFINE_VISITABLE
Definition: BaseVisitable.h:75