import com.fasterxml.jackson.annotation.JsonProperty;\r
import com.fasterxml.jackson.annotation.JsonRootName;\r
\r
-import org.json.JSONObject;\r
import org.openecomp.mso.bpmn.core.json.DecomposeJsonUtil;\r
-\r
+import org.openecomp.mso.bpmn.core.json.JsonDecomposingException;\r
\r
\r
/**\r
public class ServiceDecomposition extends JsonWrapper implements Serializable {\r
\r
private static final long serialVersionUID = 1L;\r
- DecomposeJsonUtil jsonUtils = new DecomposeJsonUtil();\r
\r
@JsonProperty("modelInfo")\r
private ModelInfo modelInfo;\r
private List <AllottedResource> allottedResources;\r
\r
public ServiceDecomposition () {\r
- super();\r
- }\r
-\r
- public ServiceDecomposition (String catalogRestOutput) {\r
-\r
- ServiceDecomposition serviceDecomposition = DecomposeJsonUtil.JsonToServiceDecomposition(catalogRestOutput);\r
- this.modelInfo = serviceDecomposition.getModelInfo();\r
- this.vnfResources = serviceDecomposition.getServiceVnfs();\r
- this.allottedResources = serviceDecomposition.getServiceAllottedResources();\r
- this.networkResources = serviceDecomposition.getServiceNetworks();\r
- this.serviceRole = serviceDecomposition.getServiceRole();\r
- this.serviceType = serviceDecomposition.getServiceType();\r
- }\r
-\r
- /**\r
- * Constructor taking Catalog DB Adapter REST output (serviceResources model) + service Instance ID\r
- * @param catalogRestOutput\r
- * @param serviceInstanceId\r
- */\r
- public ServiceDecomposition (String catalogRestOutput, String serviceInstanceId) {\r
-\r
- ServiceDecomposition serviceDecomposition = DecomposeJsonUtil.JsonToServiceDecomposition(catalogRestOutput);\r
- this.modelInfo = serviceDecomposition.getModelInfo();\r
- this.vnfResources = serviceDecomposition.getServiceVnfs();\r
- this.allottedResources = serviceDecomposition.getServiceAllottedResources();\r
- this.networkResources = serviceDecomposition.getServiceNetworks();\r
-\r
- this.serviceRole = serviceDecomposition.getServiceRole();\r
- this.serviceType = serviceDecomposition.getServiceType();\r
- \r
- this.serviceInstance = new ServiceInstance();\r
- this.serviceInstance.setInstanceId(serviceInstanceId);\r
- }\r
-\r
- /**\r
- * Constructor taking a Service Decomposition JSON serialization\r
- * @param catalogRestOutput\r
- * @param serviceInstanceId\r
- */\r
- public ServiceDecomposition (JSONObject jsonServiceDecomposition, String serviceInstanceId) {\r
- //TODO provide constructor implementation\r
-\r
}\r
\r
//*****\r
* Add resource to the list\r
* Given a ResourceDecomposition (subclass) object, add it to the Service Decomposition (in the appropriate category, e.g. as a VNF, Network, or Allotted Resource).\r
* As dependencies are not currently supported, add it to the end of any ordered lists.\r
- * @param Resource\r
+ * @param resource\r
*/\r
public void addResource(Resource resource) {\r
//create resource based upon type\r
\r
/**\r
* Add resource to the list\r
- * @param Resource\r
+ * @param jsonResource\r
*/\r
- public void addVnfResource(String jsonResource) {\r
+ public void addVnfResource(String jsonResource) throws JsonDecomposingException {\r
VnfResource vnfResource = null;\r
- vnfResource = DecomposeJsonUtil.JsonToVnfResource(jsonResource);\r
+ vnfResource = DecomposeJsonUtil.jsonToVnfResource(jsonResource);\r
this.addVnfResource(vnfResource);\r
}\r
/**\r
* Add resource to the list\r
- * @param Resource\r
+ * @param jsonResource\r
*/\r
- public void addNetworkResource(String jsonResource) {\r
+ public void addNetworkResource(String jsonResource) throws JsonDecomposingException {\r
NetworkResource networkResource = null;\r
- networkResource = DecomposeJsonUtil.JsonToNetworkResource(jsonResource);\r
+ networkResource = DecomposeJsonUtil.jsonToNetworkResource(jsonResource);\r
this.addVnfResource(networkResource);\r
}\r
/**\r
* Add resource to the list\r
- * @param Resource\r
+ * @param jsonResource\r
*/\r
- public void addAllottedResource(String jsonResource) {\r
+ public void addAllottedResource(String jsonResource) throws JsonDecomposingException {\r
AllottedResource allottedResource = null;\r
- allottedResource = DecomposeJsonUtil.JsonToAllottedResource(jsonResource);\r
+ allottedResource = DecomposeJsonUtil.jsonToAllottedResource(jsonResource);\r
this.addVnfResource(allottedResource);\r
}\r
\r
/**\r
* Given a ResourceDecomposition (subclass) object, locate it in the Service Decomposition by its unique ID, and replace the current version with the new one.\r
* This method should support concurrency control via an auto-incrementing field in the ResourceDecomposition class.\r
- * @param Resource\r
+ * @param newResource\r
* @return TRUE if replacement was a success\r
*/\r
public boolean replaceResource(Resource newResource){\r
\r
/**\r
* Given a resource object ID, locate it in the Service Decomposition by its unique ID, and delete it.\r
- * @param Resource\r
+ * @param resource\r
* @return TRUE if delete was a success\r
*/\r
public boolean deleteResource(Resource resource){\r
\r
package org.openecomp.mso.bpmn.core.json;\r
\r
-import java.io.Serializable;\r
+import com.fasterxml.jackson.databind.DeserializationFeature;\r
+import com.fasterxml.jackson.databind.ObjectMapper;\r
import java.io.IOException;\r
-\r
-\r
import org.openecomp.mso.bpmn.core.domain.AllottedResource;\r
import org.openecomp.mso.bpmn.core.domain.NetworkResource;\r
import org.openecomp.mso.bpmn.core.domain.ServiceDecomposition;\r
+import org.openecomp.mso.bpmn.core.domain.ServiceInstance;\r
import org.openecomp.mso.bpmn.core.domain.VnfResource;\r
\r
-import com.fasterxml.jackson.core.JsonParseException;\r
-import com.fasterxml.jackson.databind.DeserializationFeature;\r
-import com.fasterxml.jackson.databind.JsonMappingException;\r
-import com.fasterxml.jackson.databind.ObjectMapper;\r
+public class DecomposeJsonUtil {\r
\r
-import org.openecomp.mso.logger.MsoLogger;\r
+ private static final ObjectMapper OBJECT_MAPPER = createObjectMapper();\r
\r
-public class DecomposeJsonUtil implements Serializable {\r
- private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL);\r
- /**\r
- * \r
- */\r
- private static final long serialVersionUID = 1L;\r
+ private DecomposeJsonUtil() {\r
+ }\r
\r
- /**\r
- * Method to construct Service Decomposition object converting\r
- * JSON structure\r
- * \r
- * @param jsonString - input in JSON format confirming ServiceDecomposition\r
- * @return - ServiceDecomposition object\r
- * @throws IOException \r
- * @throws JsonMappingException \r
- * @throws JsonParseException \r
- */\r
- public static ServiceDecomposition JsonToServiceDecomposition(String jsonString) {\r
- \r
- ServiceDecomposition serviceDecomposition = new ServiceDecomposition();\r
- ObjectMapper om = new ObjectMapper();\r
- om.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);\r
- \r
- try {\r
- serviceDecomposition = om.readValue(jsonString, ServiceDecomposition.class);\r
- } catch (JsonParseException e) {\r
- LOGGER.debug("JsonParseException :",e);\r
- } catch (JsonMappingException e) {\r
- LOGGER.debug("JsonMappingException :",e);\r
- } catch (IOException e) {\r
- LOGGER.debug("IOException :",e);\r
- }\r
- \r
- return serviceDecomposition;\r
- }\r
- \r
- /**\r
- * Method to construct Resource Decomposition object converting\r
- * JSON structure\r
- * \r
- * @param jsonString - input in JSON format confirming ResourceDecomposition\r
- * @return - ServiceDecomposition object\r
- * @throws IOException \r
- * @throws JsonMappingException \r
- * @throws JsonParseException \r
- */\r
- public static VnfResource JsonToVnfResource(String jsonString) {\r
- \r
- VnfResource vnfResource = new VnfResource();\r
+ private static ObjectMapper createObjectMapper() {\r
ObjectMapper om = new ObjectMapper();\r
om.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);\r
- \r
- try {\r
- vnfResource = om.readValue(jsonString, VnfResource.class);\r
- } catch (JsonParseException e) {\r
- LOGGER.debug("JsonParseException :",e);\r
- } catch (JsonMappingException e) {\r
- LOGGER.debug("JsonMappingException :",e);\r
- } catch (IOException e) {\r
- LOGGER.debug("IOException :",e);\r
- }\r
- return vnfResource;\r
- }\r
- \r
- /**\r
- * Method to construct Resource Decomposition object converting\r
- * JSON structure\r
- * \r
- * @param jsonString - input in JSON format confirming ResourceDecomposition\r
- * @return - ServiceDecomposition object\r
- * @throws IOException \r
- * @throws JsonMappingException \r
- * @throws JsonParseException \r
- */\r
- public static NetworkResource JsonToNetworkResource(String jsonString) {\r
- \r
- NetworkResource networkResource = new NetworkResource();\r
- ObjectMapper om = new ObjectMapper();\r
- om.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);\r
- \r
- try {\r
- networkResource = om.readValue(jsonString, NetworkResource.class);\r
- } catch (JsonParseException e) {\r
- LOGGER.debug("Exception :",e);\r
- } catch (JsonMappingException e) {\r
- LOGGER.debug("Exception :",e);\r
- } catch (IOException e) {\r
- LOGGER.debug("Exception :",e);\r
- }\r
- return networkResource;\r
- }\r
- \r
- /**\r
- * Method to construct Resource Decomposition object converting\r
- * JSON structure\r
- * \r
- * @param jsonString - input in JSON format confirming ResourceDecomposition\r
- * @return - ServiceDecomposition object\r
- * @throws IOException \r
- * @throws JsonMappingException \r
- * @throws JsonParseException \r
- */\r
- public static AllottedResource JsonToAllottedResource(String jsonString) {\r
- \r
- AllottedResource allottedResource = new AllottedResource();\r
- ObjectMapper om = new ObjectMapper();\r
- om.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);\r
- \r
- try {\r
- allottedResource = om.readValue(jsonString, AllottedResource.class);\r
- } catch (JsonParseException e) {\r
- LOGGER.debug("Exception :",e);\r
- } catch (JsonMappingException e) {\r
- LOGGER.debug("Exception :",e);\r
- } catch (IOException e) {\r
- LOGGER.debug("Exception :",e);\r
- }\r
- return allottedResource;\r
- }\r
+ return om;\r
+ }\r
+\r
+ /**\r
+ * Method to construct Service Decomposition object converting JSON structure\r
+ *\r
+ * @param jsonString input in JSON format confirming ServiceDecomposition\r
+ * @return decoded object\r
+ * @throws JsonDecomposingException thrown when decoding json fails\r
+ */\r
+ public static ServiceDecomposition jsonToServiceDecomposition(String jsonString) throws JsonDecomposingException {\r
+ try {\r
+ return OBJECT_MAPPER.readValue(jsonString, ServiceDecomposition.class);\r
+ } catch (IOException e) {\r
+ throw new JsonDecomposingException("Exception while converting json to service decomposition", e);\r
+ }\r
+ }\r
+\r
+ /**\r
+ * Method to construct Service Decomposition object converting JSON structure\r
+ *\r
+ * @param jsonString input in JSON format confirming ServiceDecomposition\r
+ * @param serviceInstanceId service instance id to be put in decoded ServiceDecomposition\r
+ * @return decoded object\r
+ * @throws JsonDecomposingException thrown when decoding json fails\r
+ */\r
+ public static ServiceDecomposition jsonToServiceDecomposition(String jsonString, String serviceInstanceId)\r
+ throws JsonDecomposingException {\r
+ ServiceDecomposition serviceDecomposition = jsonToServiceDecomposition(jsonString);\r
+ ServiceInstance serviceInstance = new ServiceInstance();\r
+ serviceInstance.setInstanceId(serviceInstanceId);\r
+ serviceDecomposition.setServiceInstance(serviceInstance);\r
+ return serviceDecomposition;\r
+ }\r
+\r
+ /**\r
+ * Method to construct Resource Decomposition object converting JSON structure\r
+ *\r
+ * @param jsonString input in JSON format confirming ResourceDecomposition\r
+ * @return decoded object\r
+ * @throws JsonDecomposingException thrown when decoding json fails\r
+ */\r
+ public static VnfResource jsonToVnfResource(String jsonString) throws JsonDecomposingException {\r
+ try {\r
+ return OBJECT_MAPPER.readValue(jsonString, VnfResource.class);\r
+ } catch (IOException e) {\r
+ throw new JsonDecomposingException("Exception while converting json to vnf resource", e);\r
+ }\r
+ }\r
+\r
+ /**\r
+ * Method to construct Resource Decomposition object converting JSON structure\r
+ *\r
+ * @param jsonString input in JSON format confirming ResourceDecomposition\r
+ * @return decoded object\r
+ * @throws JsonDecomposingException thrown when decoding json fails\r
+ */\r
+ public static NetworkResource jsonToNetworkResource(String jsonString) throws JsonDecomposingException {\r
+ try {\r
+ return OBJECT_MAPPER.readValue(jsonString, NetworkResource.class);\r
+ } catch (IOException e) {\r
+ throw new JsonDecomposingException("Exception while converting json to network resource", e);\r
+ }\r
+ }\r
+\r
+ /**\r
+ * Method to construct Resource Decomposition object converting JSON structure\r
+ *\r
+ * @param jsonString - input in JSON format confirming ResourceDecomposition\r
+ * @return decoded object\r
+ * @throws JsonDecomposingException thrown when decoding json fails\r
+ */\r
+ public static AllottedResource jsonToAllottedResource(String jsonString) throws JsonDecomposingException {\r
+ try {\r
+ return OBJECT_MAPPER.readValue(jsonString, AllottedResource.class);\r
+ } catch (IOException e) {\r
+ throw new JsonDecomposingException("Exception while converting json to allotted resource", e);\r
+ }\r
+ }\r
}
\ No newline at end of file