Merge "updated ARIA version"
[so.git] / bpmn / MSOCoreBPMN / src / main / java / org / openecomp / mso / bpmn / core / decomposition / ServiceDecomposition.java
1 package org.openecomp.mso.bpmn.core.decomposition;\r
2 \r
3 \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
10 \r
11 import org.json.JSONObject;\r
12 \r
13 \r
14 \r
15 /**\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
22  */\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
26 \r
27         private static final long serialVersionUID = 1L;\r
28 \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
38         \r
39         public ServiceDecomposition () {\r
40                 super();\r
41         }\r
42         \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
50                 \r
51         }\r
52         \r
53         public ServiceDecomposition (String catalogRestOutput, String serviceInstanceId) {\r
54                 //TODO provide constructor implementation\r
55                 \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
62         }\r
63         public ServiceDecomposition (JSONObject catalogRestOutput, String serviceInstanceId) {\r
64                 //TODO provide constructor implementation\r
65         }\r
66         //GET and SET\r
67         public ModelInfo getModelInfo() {\r
68                 return modelInfo;\r
69         }\r
70         public void setModelInfo(ModelInfo modelInfo) {\r
71                 this.modelInfo = modelInfo;\r
72         }\r
73         public ServiceInstanceData getServiceInstanceData() {\r
74                 return serviceInstanceData;\r
75         }\r
76         public void setServiceInstanceData(ServiceInstanceData serviceInstanceData) {\r
77                 this.serviceInstanceData = serviceInstanceData;\r
78         }\r
79         public List<VnfResource> getServiceVnfs() {\r
80                 return vnfResources;\r
81         }\r
82         public void setServiceVnfs(List<VnfResource> vnfResources) {\r
83                 this.vnfResources = vnfResources;\r
84         }\r
85         public List<NetworkResource> getServiceNetworks() {\r
86                 return networkResources;\r
87         }\r
88         public void setServiceNetworks(List<NetworkResource> networkResources) {\r
89                 this.networkResources = networkResources;\r
90         }\r
91         public List<AllottedResource> getServiceAllottedResources() {\r
92                 return allottedResources;\r
93         }\r
94         public void setServiceAllottedResources(List<AllottedResource> allottedResources) {\r
95                 this.allottedResources = allottedResources;\r
96         }\r
97         \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
102                 }\r
103                 this.vnfResources.add(vnfResource);\r
104         }\r
105         public void addNetworkResource(NetworkResource networkResource) {\r
106                 if (networkResources == null){\r
107                         networkResources = new ArrayList<NetworkResource>();\r
108                 }\r
109                 this.networkResources.add(networkResource);\r
110         }\r
111         public void addAllottedResource(AllottedResource allottedResource) {\r
112                 if (allottedResources == null){\r
113                         allottedResources = new ArrayList<AllottedResource>();\r
114                 }\r
115                 this.allottedResources.add(allottedResource);\r
116         }\r
117         \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
120 //              \r
121 ////            Iterator<VnfResource> iter = vnfResources.iterator();\r
122 ////            while (iter.hasNext()) {\r
123 ////                    VnfResource vnfResource = iter.next();\r
124 ////                    vnfResource.getModelInfo().getModelInvariantId();\r
125 ////            }\r
126 //              return this.vnfResources.get(index);\r
127 //      }\r
128 //      public NetworkResource getNetworkResource( int index) {\r
129 //              return this.networkResources.get(index);\r
130 //      }\r
131 //      public AllottedResource getAllottedResource(int index) {\r
132 //              return this.allottedResources.get(index);\r
133 //      }\r
134         \r
135         @JsonIgnore\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
142         }\r
143         \r
144         @JsonIgnore\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
151         }\r
152         \r
153         //return String representation of JSON\r
154         @Override\r
155         public String toString(){\r
156                 return "string representation";\r
157         }\r
158 \r
159 }\r