LOM2M  0.8.0
JsonMapper.h
Go to the documentation of this file.
1 /*
2  Copyright (c) 2013-2021 LAAS-CNRS (www.laas.fr)
3  7 Colonel Roche 31077 Toulouse - France
4 
5  The use of this source code requires an agreement with the CNRS.
6 
7  Initial Contributors:
8  David Gauchard, Guillaume Garzone, Thierry Monteil.
9 */
10 
11 #ifndef __JSONMAPPER_H
12 #define __JSONMAPPER_H
13 
14 #include "configuration.h"
15 
16 #include "Entity.h"
17 #include "RequestPrimitive.h"
18 #include "ResponsePrimitive.h"
19 #include "ShortNames.h"
20 #include "tools.h"
21 
26 class Mapper
27 {
28 public:
39  static int mapResourceAttributes(JsonObject jsonObj, Entity* e, int level = 0, bool restCreation = false, bool mapAll = false);
50  static int mapGenericAttributes(JsonObject jsonObj, Entity* e, int level = 0, bool restCreation = false, bool mapAll = false);
51  #if FEAT_RCN_9
59  static int mapGenericModifiedAttributes(JsonObject jsonObj, Entity* e);
60  #endif
71  static int mapChildResourcesRef(JsonObject jsonObj, Entity* e, int level = 0, bool restCreation = false, bool mapAll = false);
83  static int mapChildResources(JsonObject jsonObj, Entity* e, int level = 0, bool restCreation = false, bool mapAll = false);
84 
92  static int parseGenericAttributes(JsonObject jsonObj, Entity* e);
93 };
94 
98 class ACPMapper
99 {
100 public:
111  static int mapAttributes(JsonObject jsonObj, AccessControlPolicy* acp, int level = 0, bool restCreation = false, bool mapAll = false);
118  static AccessControlPolicy* parseResource(JsonObject o, const String& name, Entity* entityToFill = nullptr);
119 };
120 
124 class AEMapper
125 {
126 public:
137  static int mapAttributes(JsonObject jsonObj, Application* ae, int level = 0, bool restCreation = false, bool mapAll = false);
144  static Application* parseResource(JsonObject o, const String& name, Entity* toUpdate = nullptr);
145 };
146 
151 {
152 public:
163  static int mapAttributes(JsonObject jsonObj, Container* cnt, int level = 0, bool restCreation = false, bool mapAll = false);
171  static Container* parseResource(JsonObject o, const String& name, Entity* targetEntity, Entity* toUpdate = nullptr);
172 };
173 
178 {
179 public:
190  static int mapAttributes(JsonObject jsonObj, ContentInstance* cin, int level = 0, bool restCreation = false, bool mapAll = false);
198  static ContentInstance* parseResource(JsonObject o, const String& name, Entity* targetEntity);
199 };
200 
205 {
206 public:
213  static int mapAttributes(JsonObject jsonObj, CseBase* csb);
214 };
215 
216 #if GROUP_FEAT
220 class GroupMapper
221 {
222 public:
233  static int mapAttributes(JsonObject jsonObj, Group* group, int level = 0, bool restCreation = false, bool mapAll = false);
241  static Group* parseResource(JsonObject o, const String& name, Entity* ae);
242 };
243 #endif
244 
249 {
250 public:
261  static int mapAttributes(JsonObject jsonObj, RemoteCse* csr, int level = 0, bool restCreation = false, bool mapAll = false);
270  static RemoteCse* parseResource(JsonObject o, const String& name, Entity* targetEntity, Entity* toUpdate = nullptr);
271 };
272 
273 #if SUBSCRIPTION_FEAT
278 {
279 public:
290  static int mapAttributes(JsonObject jsonObj, Subscription* sub, int level = 0, bool restCreation = false, bool mapAll = false);
299  static Subscription* parseResource(JsonObject o, const String& name, Entity* targetEntity, Entity* toUpdate = nullptr);
300 };
301 #endif // SUBSCRIPTION_FEAT
302 #endif
303 
309 {
310 public:
317  static int mapRequestPrimitive(RequestPrimitive& req, JsonObject o);
324  static int parseRequestPrimitive(JsonObject o, RequestPrimitive* req);
331  static int mapResponsePrimitive(ResponsePrimitive& resp, JsonObject o);
338  static int parseResponsePrimitive(JsonObject o, ResponsePrimitive* resp);
339 };
Definition: JsonMapper.h:99
static AccessControlPolicy * parseResource(JsonObject o, const String &name, Entity *entityToFill=nullptr)
Definition: JsonMapper.cpp:346
static int mapAttributes(JsonObject jsonObj, AccessControlPolicy *acp, int level=0, bool restCreation=false, bool mapAll=false)
Definition: JsonMapper.cpp:225
Definition: JsonMapper.h:125
static Application * parseResource(JsonObject o, const String &name, Entity *toUpdate=nullptr)
Definition: JsonMapper.cpp:540
static int mapAttributes(JsonObject jsonObj, Application *ae, int level=0, bool restCreation=false, bool mapAll=false)
Definition: JsonMapper.cpp:621
Definition: JsonMapper.h:151
static Container * parseResource(JsonObject o, const String &name, Entity *targetEntity, Entity *toUpdate=nullptr)
Definition: JsonMapper.cpp:730
static int mapAttributes(JsonObject jsonObj, Container *cnt, int level=0, bool restCreation=false, bool mapAll=false)
Definition: JsonMapper.cpp:788
Definition: JsonMapper.h:178
static int mapAttributes(JsonObject jsonObj, ContentInstance *cin, int level=0, bool restCreation=false, bool mapAll=false)
Definition: JsonMapper.cpp:879
static ContentInstance * parseResource(JsonObject o, const String &name, Entity *targetEntity)
Definition: JsonMapper.cpp:775
Definition: JsonMapper.h:205
static int mapAttributes(JsonObject jsonObj, CseBase *csb)
Definition: JsonMapper.cpp:899
Definition: JsonMapper.h:27
static int parseGenericAttributes(JsonObject jsonObj, Entity *e)
Definition: JsonMapper.cpp:1464
static int mapGenericAttributes(JsonObject jsonObj, Entity *e, int level=0, bool restCreation=false, bool mapAll=false)
Definition: JsonMapper.cpp:143
static int mapResourceAttributes(JsonObject jsonObj, Entity *e, int level=0, bool restCreation=false, bool mapAll=false)
Definition: JsonMapper.cpp:15
static int mapChildResourcesRef(JsonObject jsonObj, Entity *e, int level=0, bool restCreation=false, bool mapAll=false)
Definition: JsonMapper.cpp:78
static int mapChildResources(JsonObject jsonObj, Entity *e, int level=0, bool restCreation=false, bool mapAll=false)
Definition: JsonMapper.cpp:107
static int mapGenericModifiedAttributes(JsonObject jsonObj, Entity *e)
Definition: JsonMapper.cpp:185
Definition: JsonMapper.h:309
static int mapRequestPrimitive(RequestPrimitive &req, JsonObject o)
Definition: JsonMapper.cpp:1608
static int parseRequestPrimitive(JsonObject o, RequestPrimitive *req)
Definition: JsonMapper.cpp:1717
static int mapResponsePrimitive(ResponsePrimitive &resp, JsonObject o)
Definition: JsonMapper.cpp:1540
static int parseResponsePrimitive(JsonObject o, ResponsePrimitive *resp)
Definition: JsonMapper.cpp:1917
Definition: JsonMapper.h:249
static int mapAttributes(JsonObject jsonObj, RemoteCse *csr, int level=0, bool restCreation=false, bool mapAll=false)
Definition: JsonMapper.cpp:955
static RemoteCse * parseResource(JsonObject o, const String &name, Entity *targetEntity, Entity *toUpdate=nullptr)
Definition: JsonMapper.cpp:1228
Definition: RequestPrimitive.h:41
Definition: ResponsePrimitive.h:49
Definition: JsonMapper.h:278
static int mapAttributes(JsonObject jsonObj, Subscription *sub, int level=0, bool restCreation=false, bool mapAll=false)
Definition: JsonMapper.cpp:1079
static Subscription * parseResource(JsonObject o, const String &name, Entity *targetEntity, Entity *toUpdate=nullptr)
Definition: JsonMapper.cpp:1313
Definition: Entity.h:957
Definition: Entity.h:755
Definition: Entity.h:576
Definition: Entity.h:698
Definition: Entity.h:402
Definition: Entity.h:235
Definition: Entity.h:459
Definition: Entity.h:799