dcd9e3b39a937ee089427fe3d0cb12bdd8b0c14c
[so.git] / bpmn / MSOCoreBPMN / src / main / java / org / openecomp / mso / bpmn / core / json / DecomposeJsonUtil.java
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * ONAP - SO\r
4  * ================================================================================\r
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
6  * ================================================================================\r
7  * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * you may not use this file except in compliance with the License.\r
9  * You may obtain a copy of the License at\r
10  *\r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  *\r
13  * Unless required by applicable law or agreed to in writing, software\r
14  * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * See the License for the specific language governing permissions and\r
17  * limitations under the License.\r
18  * ============LICENSE_END=========================================================\r
19  */\r
20 \r
21 package org.openecomp.mso.bpmn.core.json;\r
22 \r
23 import com.fasterxml.jackson.databind.DeserializationFeature;\r
24 import com.fasterxml.jackson.databind.ObjectMapper;\r
25 import java.io.IOException;\r
26 import org.openecomp.mso.bpmn.core.domain.AllottedResource;\r
27 import org.openecomp.mso.bpmn.core.domain.NetworkResource;\r
28 import org.openecomp.mso.bpmn.core.domain.ServiceDecomposition;\r
29 import org.openecomp.mso.bpmn.core.domain.ServiceInstance;\r
30 import org.openecomp.mso.bpmn.core.domain.VnfResource;\r
31 \r
32 public class DecomposeJsonUtil {\r
33 \r
34     private static final ObjectMapper OBJECT_MAPPER = createObjectMapper();\r
35 \r
36     private DecomposeJsonUtil() {\r
37     }\r
38 \r
39     private static ObjectMapper createObjectMapper() {\r
40         ObjectMapper om = new ObjectMapper();\r
41         om.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);\r
42         return om;\r
43     }\r
44 \r
45     /**\r
46      * Method to construct Service Decomposition object converting JSON structure\r
47      *\r
48      * @param jsonString input in JSON format confirming ServiceDecomposition\r
49      * @return decoded object\r
50      * @throws JsonDecomposingException thrown when decoding json fails\r
51      */\r
52     public static ServiceDecomposition jsonToServiceDecomposition(String jsonString) throws JsonDecomposingException {\r
53         try {\r
54             return OBJECT_MAPPER.readValue(jsonString, ServiceDecomposition.class);\r
55         } catch (IOException e) {\r
56             throw new JsonDecomposingException("Exception while converting json to service decomposition", e);\r
57         }\r
58     }\r
59 \r
60     /**\r
61      * Method to construct Service Decomposition object converting JSON structure\r
62      *\r
63      * @param jsonString input in JSON format confirming ServiceDecomposition\r
64      * @param serviceInstanceId service instance id to be put in decoded ServiceDecomposition\r
65      * @return decoded object\r
66      * @throws JsonDecomposingException thrown when decoding json fails\r
67      */\r
68     public static ServiceDecomposition jsonToServiceDecomposition(String jsonString, String serviceInstanceId)\r
69             throws JsonDecomposingException {\r
70         ServiceDecomposition serviceDecomposition = jsonToServiceDecomposition(jsonString);\r
71         ServiceInstance serviceInstance = new ServiceInstance();\r
72         serviceInstance.setInstanceId(serviceInstanceId);\r
73         serviceDecomposition.setServiceInstance(serviceInstance);\r
74         return serviceDecomposition;\r
75     }\r
76 \r
77     /**\r
78      * Method to construct Resource Decomposition object converting JSON structure\r
79      *\r
80      * @param jsonString input in JSON format confirming ResourceDecomposition\r
81      * @return decoded object\r
82      * @throws JsonDecomposingException thrown when decoding json fails\r
83      */\r
84     public static VnfResource jsonToVnfResource(String jsonString) throws JsonDecomposingException {\r
85         try {\r
86             return OBJECT_MAPPER.readValue(jsonString, VnfResource.class);\r
87         } catch (IOException e) {\r
88             throw new JsonDecomposingException("Exception while converting json to vnf resource", e);\r
89         }\r
90     }\r
91 \r
92     /**\r
93      * Method to construct Resource Decomposition object converting JSON structure\r
94      *\r
95      * @param jsonString input in JSON format confirming ResourceDecomposition\r
96      * @return decoded object\r
97      * @throws JsonDecomposingException thrown when decoding json fails\r
98      */\r
99     public static NetworkResource jsonToNetworkResource(String jsonString) throws JsonDecomposingException {\r
100         try {\r
101             return OBJECT_MAPPER.readValue(jsonString, NetworkResource.class);\r
102         } catch (IOException e) {\r
103             throw new JsonDecomposingException("Exception while converting json to network resource", e);\r
104         }\r
105     }\r
106 \r
107     /**\r
108      * Method to construct Resource Decomposition object converting JSON structure\r
109      *\r
110      * @param jsonString - input in JSON format confirming ResourceDecomposition\r
111      * @return decoded object\r
112      * @throws JsonDecomposingException thrown when decoding json fails\r
113      */\r
114     public static AllottedResource jsonToAllottedResource(String jsonString) throws JsonDecomposingException {\r
115         try {\r
116             return OBJECT_MAPPER.readValue(jsonString, AllottedResource.class);\r
117         } catch (IOException e) {\r
118             throw new JsonDecomposingException("Exception while converting json to allotted resource", e);\r
119         }\r
120     }\r
121 }