All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
JSON.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 JSON.h
22 
23  \brief Implementation of .json for Serialization. It is a JSON file. Save or change a file .json and serializes the properties of the objects, MVC component.
24 
25  \ingroup layout
26 */
27 
28 #ifndef __TERRALIB_LAYOUT_INTERNAL_JSON_H
29 #define __TERRALIB_LAYOUT_INTERNAL_JSON_H
30 
31 //TerraLib
32 #include "Serialization.h"
33 #include "../property/Property.h"
34 #include "../Config.h"
35 
36 // Boost
37 #include <boost/property_tree/ptree.hpp>
38 
39 // STL
40 #include <utility>
41 
42 namespace te
43 {
44  namespace layout
45  {
46  /*!
47  \brief Implementation of .json for Serialization. It is a JSON file. Save or change a file .json and serializes the properties of the objects, MVC component.
48 
49  \ingroup layout
50 
51  \sa te::layout::Serialization
52  */
54  {
55  public:
56 
57  JSON();
58 
59  virtual ~JSON();
60 
61  virtual bool serialize();
62 
63  virtual boost::property_tree::ptree retrievePTree();
64 
65  virtual std::vector<te::layout::Properties*> retrieve();
66 
67  virtual bool isEmpty();
68 
69  virtual void loadFromPath( std::string loadPath );
70 
71  virtual void loadFromProperties( std::vector<te::layout::Properties*> properties );
72 
73  protected:
74 
75  virtual void searchProperty(Property& property, boost::property_tree::ptree& array, boost::property_tree::ptree& child);
76 
77  virtual void retrieveSubPTree(boost::property_tree::ptree subTree, Property& prop);
78 
79  boost::property_tree::ptree m_array;
80  };
81  }
82 }
83 
84 #endif
85 
86 
87 
Implementation of .json for Serialization. It is a JSON file. Save or change a file ...
Definition: JSON.h:53
#define TELAYOUTEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:99
Abstract class for serialization properties in any file extension.
Abstract class for serialization properties in any file extension.
Definition: Serialization.h:44
boost::property_tree::ptree m_array
Definition: JSON.h:79
A property acts like a attribute member of a object and stores the state of this attribute. A set of properties stores the state of an object. Any data type, not included in the convertValue method in the class te::layout::Variant, it will be by default "std::string" value.
Definition: Property.h:47