Mercurial > hg > ismi-richfaces
comparison src/main/java/de/mpiwg/itgroup/diva/utils/JSONEntity.java @ 1:2e911857a759
(none)
author | jurzua |
---|---|
date | Wed, 29 Oct 2014 14:00:28 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:74df02964906 | 1:2e911857a759 |
---|---|
1 package de.mpiwg.itgroup.diva.utils; | |
2 | |
3 import java.util.ArrayList; | |
4 import java.util.HashMap; | |
5 import java.util.List; | |
6 import java.util.Map; | |
7 | |
8 import org.apache.commons.lang.StringUtils; | |
9 import org.json.JSONException; | |
10 import org.json.JSONObject; | |
11 import org.mpi.openmind.repository.bo.Attribute; | |
12 import org.mpi.openmind.repository.bo.Entity; | |
13 | |
14 public class JSONEntity { | |
15 | |
16 public Long id; | |
17 public Map<String, String> attrs = new HashMap<String, String>(); | |
18 | |
19 public JSONEntity(JSONObject json, Long id) throws JSONException{ | |
20 this.id = id; | |
21 for(String attName : JSONObject.getNames(json)){ | |
22 if(!StringUtils.equals(attName, "id")){ | |
23 this.attrs.put(attName, json.getString(attName)); | |
24 } | |
25 } | |
26 } | |
27 | |
28 public Entity updateEntity(Entity ent){ | |
29 | |
30 for(String attName : this.attrs.keySet()){ | |
31 | |
32 if(ent.getAttributeByName(attName) == null){ | |
33 //TODO content type ??? | |
34 ent.addAttribute(new Attribute(attName, "text", attrs.get(attName))); | |
35 }else{ | |
36 ent.getAttributeByName(attName).setValue(attrs.get(attName)); | |
37 } | |
38 } | |
39 | |
40 return ent; | |
41 } | |
42 | |
43 | |
44 public static List<JSONEntity> json2EntityList(JSONObject json) throws JSONException{ | |
45 | |
46 List<JSONEntity> rs = new ArrayList<JSONEntity>(); | |
47 | |
48 String[] idList = JSONObject.getNames(json); | |
49 | |
50 for(String idString : idList){ | |
51 Long id = Long.parseLong(idString); | |
52 rs.add(new JSONEntity(json.getJSONObject(idString), id)); | |
53 } | |
54 | |
55 return rs; | |
56 | |
57 } | |
58 | |
59 } |