dcc6852c4e4b41c92c3d6466c67bdb18c6500fdf
[so.git] / bpmn / MSOCoreBPMN / src / main / java / org / openecomp / mso / bpmn / core / decomposition / JsonWrapper.java
1 package org.openecomp.mso.bpmn.core.decomposition;\r
2 \r
3 import java.io.IOException;\r
4 import java.util.List;\r
5 \r
6 import org.codehaus.jackson.JsonGenerationException;\r
7 import org.codehaus.jackson.JsonParseException;\r
8 import org.codehaus.jackson.map.JsonMappingException;\r
9 import org.codehaus.jackson.map.ObjectMapper;\r
10 import org.codehaus.jackson.map.ObjectWriter;\r
11 import org.json.JSONException;\r
12 import org.json.JSONObject;\r
13 \r
14 import com.fasterxml.jackson.annotation.JsonInclude;\r
15 import com.fasterxml.jackson.annotation.JsonInclude.Include;\r
16 import com.fasterxml.jackson.databind.DeserializationFeature;\r
17 \r
18 \r
19 //import org.codehaus.jackson.map.SerializationConfig.Feature;\r
20 import org.codehaus.jackson.map.DeserializationConfig.Feature;\r
21 import org.codehaus.jackson.map.annotate.JsonSerialize;\r
22 \r
23 /**\r
24  * Wrapper encapsulates needed JSON functionality \r
25  * to be extended by MSO service decomposition objects\r
26  * providing ways to convert to and from JSON\r
27  * \r
28  * @author \r
29  *\r
30  */\r
31 @JsonInclude(Include.NON_NULL)\r
32 public abstract class JsonWrapper {\r
33 \r
34         @JsonInclude(Include.NON_NULL)\r
35         public String toJsonString(){\r
36                 \r
37                 \r
38 \r
39                 String jsonString = "";\r
40                 //convert with Jackson\r
41                 ObjectMapper mapper = new ObjectMapper();\r
42                 mapper.enable(org.codehaus.jackson.map.SerializationConfig.Feature.WRAP_ROOT_VALUE);\r
43                 \r
44                 mapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL);\r
45                 \r
46                 ObjectWriter ow = mapper.writer().withDefaultPrettyPrinter();\r
47                 try {\r
48                         jsonString = ow.writeValueAsString(this);\r
49                 } catch (JsonGenerationException e) {\r
50                         // TODO Auto-generated catch block\r
51                         e.printStackTrace();\r
52                 } catch (JsonMappingException e) {\r
53                         // TODO Auto-generated catch block\r
54                         e.printStackTrace();\r
55                 } catch (IOException e) {\r
56                         // TODO Auto-generated catch block\r
57                         e.printStackTrace();\r
58                 }\r
59                 return jsonString;\r
60         }\r
61         \r
62         @JsonInclude(Include.NON_NULL)\r
63         public JSONObject toJsonObject(){\r
64 \r
65         ObjectMapper mapper = new ObjectMapper();\r
66        // mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);\r
67         //mapper.enable(SerializationFeature.WRAP_ROOT_VALUE);\r
68 \r
69         mapper.enable(org.codehaus.jackson.map.SerializationConfig.Feature.WRAP_ROOT_VALUE);\r
70        // mapper.enable(org.codehaus.jackson.map.DeserializationConfig.Feature.UNWRAP_ROOT_VALUE);\r
71         JSONObject json = new JSONObject();\r
72          try {\r
73                         json = new JSONObject(mapper.writeValueAsString(this));\r
74                 } catch (JsonGenerationException e) {\r
75                         // TODO Auto-generated catch block\r
76                         e.printStackTrace();\r
77                 } catch (JsonMappingException e) {\r
78                         // TODO Auto-generated catch block\r
79                         e.printStackTrace();\r
80                 } catch (JSONException e) {\r
81                         // TODO Auto-generated catch block\r
82                         e.printStackTrace();\r
83                 } catch (IOException e) {\r
84                         // TODO Auto-generated catch block\r
85                         e.printStackTrace();\r
86                 }\r
87          return json; \r
88         }\r
89         \r
90         public String listToJson(List list) {\r
91         ObjectMapper mapper = new ObjectMapper();\r
92         mapper.enable(org.codehaus.jackson.map.SerializationConfig.Feature.WRAP_ROOT_VALUE);\r
93         \r
94                 String jsonString = "";\r
95                 try {\r
96                         jsonString = mapper.writeValueAsString(list);\r
97                 } catch (JsonGenerationException e) {\r
98                         // TODO Auto-generated catch block\r
99                         e.printStackTrace();\r
100                 } catch (JsonMappingException e) {\r
101                         // TODO Auto-generated catch block\r
102                         e.printStackTrace();\r
103                 } catch (IOException e) {\r
104                         // TODO Auto-generated catch block\r
105                         e.printStackTrace();\r
106                 }\r
107                 \r
108                 return jsonString;\r
109         }\r
110         \r
111         /**\r
112          * Method to construct Service Decomposition object converting\r
113          * JSON structure\r
114          * \r
115          * @param jsonString - input in JSON format confirming ServiceDecomposition\r
116          * @return - ServiceDecomposition object\r
117          */\r
118         public ServiceDecomposition JsonToServiceDecomposition(String jsonString) {\r
119         \r
120         ServiceDecomposition serviceDecomposition = new ServiceDecomposition();\r
121         ObjectMapper om = new ObjectMapper();\r
122         om.configure(Feature.UNWRAP_ROOT_VALUE, true);\r
123        \r
124                 try {\r
125                         serviceDecomposition = om.readValue(jsonString, ServiceDecomposition.class);\r
126                 } catch (JsonParseException e) {\r
127                         // TODO Auto-generated catch block\r
128                         e.printStackTrace();\r
129                 } catch (JsonMappingException e) {\r
130                         // TODO Auto-generated catch block\r
131                         e.printStackTrace();\r
132                 } catch (IOException e) {\r
133                         // TODO Auto-generated catch block\r
134                         e.printStackTrace();\r
135                 }\r
136                 \r
137                 return serviceDecomposition;\r
138         }\r
139         \r
140 }\r