1 package org.openecomp.mso.bpmn.core.decomposition;
\r
4 import java.io.Serializable;
\r
5 import java.util.ArrayList;
\r
6 import java.util.List;
\r
7 import org.codehaus.jackson.annotate.JsonIgnore;
\r
8 import org.codehaus.jackson.map.annotate.JsonRootName;
\r
9 import com.fasterxml.jackson.annotation.JsonProperty;
\r
11 import org.json.JSONObject;
\r
16 * Service Decomposition Structure
\r
17 * This Java object contains service information:
\r
18 * - Service model info
\r
19 * - list of VNF resource's decompositon
\r
20 * - list of network resource's decompositon
\r
21 * - list of allotted resource's decompositon
\r
23 @JsonRootName(value = "serviceResources")
\r
24 //@JsonTypeInfo(include=As.WRAPPER_OBJECT, use=Id.NAME)
\r
25 public class ServiceDecomposition extends JsonWrapper implements Serializable {
\r
27 private static final long serialVersionUID = 1L;
\r
29 @JsonProperty("modelInfo")
\r
30 private ModelInfo modelInfo;
\r
31 private ServiceInstanceData serviceInstanceData;
\r
32 @JsonProperty("vnfResource")
\r
33 private List <VnfResource> vnfResources;
\r
34 @JsonProperty("networkResource")
\r
35 private List <NetworkResource> networkResources;
\r
36 @JsonProperty("allottedResource")
\r
37 private List <AllottedResource> allottedResources;
\r
39 public ServiceDecomposition () {
\r
43 public ServiceDecomposition (ModelInfo modelInfo, ServiceInstanceData serviceInstanceData, List <VnfResource> vnfResources, List <NetworkResource> networkResources, List <AllottedResource> allottedResources ) {
\r
44 //TODO provide constructor implementation
\r
45 // this.modelInfo = modelInfo;
\r
46 // this.serviceInstanceData = serviceInstanceData;
\r
47 // this.vnfResources = vnfResources;
\r
48 // this.networkResources = networkResources;
\r
49 // this.allottedResources = allottedResources;
\r
53 public ServiceDecomposition (String catalogRestOutput, String serviceInstanceId) {
\r
54 //TODO provide constructor implementation
\r
56 this.modelInfo = this.JsonToServiceDecomposition(catalogRestOutput).getModelInfo();
\r
57 this.vnfResources = this.JsonToServiceDecomposition(catalogRestOutput).getServiceVnfs();
\r
58 this.allottedResources = this.JsonToServiceDecomposition(catalogRestOutput).getServiceAllottedResources();
\r
59 this.networkResources = this.JsonToServiceDecomposition(catalogRestOutput).getServiceNetworks();
\r
60 this.serviceInstanceData = new ServiceInstanceData();
\r
61 this.serviceInstanceData.setInstanceId(serviceInstanceId);
\r
63 public ServiceDecomposition (JSONObject catalogRestOutput, String serviceInstanceId) {
\r
64 //TODO provide constructor implementation
\r
67 public ModelInfo getModelInfo() {
\r
70 public void setModelInfo(ModelInfo modelInfo) {
\r
71 this.modelInfo = modelInfo;
\r
73 public ServiceInstanceData getServiceInstanceData() {
\r
74 return serviceInstanceData;
\r
76 public void setServiceInstanceData(ServiceInstanceData serviceInstanceData) {
\r
77 this.serviceInstanceData = serviceInstanceData;
\r
79 public List<VnfResource> getServiceVnfs() {
\r
80 return vnfResources;
\r
82 public void setServiceVnfs(List<VnfResource> vnfResources) {
\r
83 this.vnfResources = vnfResources;
\r
85 public List<NetworkResource> getServiceNetworks() {
\r
86 return networkResources;
\r
88 public void setServiceNetworks(List<NetworkResource> networkResources) {
\r
89 this.networkResources = networkResources;
\r
91 public List<AllottedResource> getServiceAllottedResources() {
\r
92 return allottedResources;
\r
94 public void setServiceAllottedResources(List<AllottedResource> allottedResources) {
\r
95 this.allottedResources = allottedResources;
\r
98 // methods to add to the list
\r
99 public void addVnfResource(VnfResource vnfResource) {
\r
100 if (vnfResources == null){
\r
101 vnfResources = new ArrayList<VnfResource>();
\r
103 this.vnfResources.add(vnfResource);
\r
105 public void addNetworkResource(NetworkResource networkResource) {
\r
106 if (networkResources == null){
\r
107 networkResources = new ArrayList<NetworkResource>();
\r
109 this.networkResources.add(networkResource);
\r
111 public void addAllottedResource(AllottedResource allottedResource) {
\r
112 if (allottedResources == null){
\r
113 allottedResources = new ArrayList<AllottedResource>();
\r
115 this.allottedResources.add(allottedResource);
\r
118 // //TODO - IF NEEDED, update below methods to return one resource decomposition by (?) ID, not index - used temporarily
\r
119 // public VnfResource getnfResource(int index) {
\r
121 //// Iterator<VnfResource> iter = vnfResources.iterator();
\r
122 //// while (iter.hasNext()) {
\r
123 //// VnfResource vnfResource = iter.next();
\r
124 //// vnfResource.getModelInfo().getModelInvariantId();
\r
126 // return this.vnfResources.get(index);
\r
128 // public NetworkResource getNetworkResource( int index) {
\r
129 // return this.networkResources.get(index);
\r
131 // public AllottedResource getAllottedResource(int index) {
\r
132 // return this.allottedResources.get(index);
\r
136 public List<ResourceDecomposition> getServiceResources(){
\r
137 ArrayList serviceResources = new ArrayList();
\r
138 serviceResources.addAll(this.getServiceNetworks());
\r
139 serviceResources.addAll(this.getServiceVnfs());
\r
140 serviceResources.addAll(this.getServiceAllottedResources());
\r
141 return serviceResources;
\r
145 public String getServiceResourcesJsonString(){
\r
146 StringBuffer serviceResourcesJsonStringBuffer = new StringBuffer();
\r
147 serviceResourcesJsonStringBuffer.append(listToJson((this.getServiceNetworks())));
\r
148 serviceResourcesJsonStringBuffer.append(listToJson((this.getServiceVnfs())));
\r
149 serviceResourcesJsonStringBuffer.append(listToJson((this.getServiceAllottedResources())));
\r
150 return serviceResourcesJsonStringBuffer.toString();
\r
153 //return String representation of JSON
\r
155 public String toString(){
\r
156 return "string representation";
\r