AT&T 1712 and 1802 release code
[so.git] / bpmn / MSOCoreBPMN / src / main / java / org / openecomp / mso / bpmn / core / domain / ServiceDecomposition.java
index 4bee115..077e572 100644 (file)
@@ -1,3 +1,23 @@
+/*-\r
+ * ============LICENSE_START=======================================================\r
+ * ONAP - SO\r
+ * ================================================================================\r
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
+ * ================================================================================\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *      http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ * ============LICENSE_END=========================================================\r
+ */\r
+\r
 package org.openecomp.mso.bpmn.core.domain;\r
 \r
 \r
@@ -10,9 +30,10 @@ import java.util.List;
 import com.fasterxml.jackson.annotation.JsonIgnore;\r
 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
+import org.openecomp.mso.bpmn.core.json.JsonDecomposingException;\r
+\r
 \r
 \r
 \r
@@ -30,7 +51,6 @@ import org.openecomp.mso.bpmn.core.json.DecomposeJsonUtil;
 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
@@ -39,26 +59,36 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
        @JsonProperty("serviceRole")\r
        private String serviceRole;\r
        private ServiceInstance serviceInstance;\r
+       private Request request;\r
+       private Customer customer;\r
+       private String callbackURN;\r
+       private String sdncVersion;\r
+       @JsonProperty("project")\r
+       private Project project;\r
+       @JsonProperty("owningEntity")\r
+       private OwningEntity owningEntity;\r
        @JsonProperty("vnfResource")\r
        private List <VnfResource>  vnfResources;\r
        @JsonProperty("networkResource")\r
        private List <NetworkResource>  networkResources;\r
        @JsonProperty("allottedResource")\r
        private List <AllottedResource>  allottedResources;\r
+       @JsonProperty("configResource")\r
+       private List <ConfigResource>  configResources;\r
 \r
        public ServiceDecomposition () {\r
                super();\r
        }\r
 \r
-       public ServiceDecomposition (String catalogRestOutput) {\r
-\r
-               ServiceDecomposition serviceDecomposition = DecomposeJsonUtil.JsonToServiceDecomposition(catalogRestOutput);\r
+       public ServiceDecomposition (String catalogRestOutput) throws JsonDecomposingException {\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
+               this.configResources = serviceDecomposition.getServiceConfigResources();\r
        }\r
 \r
        /**\r
@@ -66,12 +96,12 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
         * @param catalogRestOutput\r
         * @param serviceInstanceId\r
         */\r
-       public ServiceDecomposition (String catalogRestOutput, String serviceInstanceId) {\r
-\r
-               ServiceDecomposition serviceDecomposition = DecomposeJsonUtil.JsonToServiceDecomposition(catalogRestOutput);\r
+       public ServiceDecomposition (String catalogRestOutput, String serviceInstanceId) throws JsonDecomposingException {\r
+               ServiceDecomposition serviceDecomposition = DecomposeJsonUtil.jsonToServiceDecomposition(catalogRestOutput);\r
                this.modelInfo = serviceDecomposition.getModelInfo();\r
                this.vnfResources = serviceDecomposition.getServiceVnfs();\r
                this.allottedResources = serviceDecomposition.getServiceAllottedResources();\r
+               this.configResources = serviceDecomposition.getServiceConfigResources();\r
                this.networkResources = serviceDecomposition.getServiceNetworks();\r
 \r
                this.serviceRole = serviceDecomposition.getServiceRole();\r
@@ -79,6 +109,9 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
                \r
                this.serviceInstance = new ServiceInstance();\r
                this.serviceInstance.setInstanceId(serviceInstanceId);\r
+               \r
+               this.project = serviceDecomposition.getProject();\r
+               this.owningEntity = serviceDecomposition.getOwningEntity();\r
        }\r
 \r
        /**\r
@@ -110,6 +143,18 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
        public void setServiceInstance(ServiceInstance serviceInstance) {\r
                this.serviceInstance = serviceInstance;\r
        }\r
+       public Project getProject() {\r
+               return project;\r
+       }\r
+       public OwningEntity getOwningEntity() {\r
+               return owningEntity;\r
+       }\r
+       public void setProject(Project project) {\r
+               this.project = project;\r
+       }\r
+       public void setOwningEntity(OwningEntity owningEntity) {\r
+               this.owningEntity = owningEntity;\r
+       }\r
        public List<VnfResource> getServiceVnfs() {\r
                return vnfResources;\r
        }\r
@@ -119,6 +164,12 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
        public List<NetworkResource> getServiceNetworks() {\r
                return networkResources;\r
        }\r
+       public void setServiceConfigs(List<ConfigResource> configResources) {\r
+               this.configResources = configResources;\r
+       }\r
+       public List<ConfigResource> getServiceConfigs() {\r
+               return configResources;\r
+       }\r
        public void setServiceNetworks(List<NetworkResource> networkResources) {\r
                this.networkResources = networkResources;\r
        }\r
@@ -128,6 +179,12 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
        public void setServiceAllottedResources(List<AllottedResource> allottedResources) {\r
                this.allottedResources = allottedResources;\r
        }\r
+       public List<ConfigResource> getServiceConfigResources() {\r
+               return configResources;\r
+       }\r
+       public void setServiceConfigResources(List<ConfigResource> configResources) {\r
+               this.configResources = configResources;\r
+       }\r
        public String getServiceType() {\r
                return serviceType;\r
        }\r
@@ -143,6 +200,35 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
        public void setServiceRole(String serviceRole) {\r
                this.serviceRole = serviceRole;\r
        }\r
+       public Request getRequest() {\r
+               return request;\r
+       }\r
+\r
+       public void setRequest(Request request) {\r
+               this.request = request;\r
+       }\r
+       public Customer getCustomer() {\r
+               return customer;\r
+       }\r
+       public void setCustomer(Customer customer) {\r
+               this.customer = customer;\r
+       }\r
+       public String getCallbackURN() {\r
+               return callbackURN;\r
+       }\r
+\r
+       public void setCallbackURN(String callbackURN) {\r
+               this.callbackURN = callbackURN;\r
+       }\r
+\r
+       public String getSdncVersion() {\r
+               return sdncVersion;\r
+       }\r
+\r
+       public void setSdncVersion(String sdncVersion) {\r
+               this.sdncVersion = sdncVersion;\r
+       }\r
+       \r
        //*****\r
 \r
        //*****\r
@@ -165,20 +251,21 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
                if(this.getServiceVnfs() != null){\r
                        serviceResources.addAll(this.getServiceVnfs());\r
                }\r
+               if(this.getServiceConfigResources() != null){\r
+                       serviceResources.addAll(this.getServiceConfigResources());\r
+               }\r
                return serviceResources;\r
        }\r
 \r
        /**\r
         * This method returns String representation of one combined list of Resources of All Types\r
-        * @return\r
         */\r
        @JsonIgnore\r
-       public String getServiceResourcesJsonString(){\r
-               StringBuffer serviceResourcesJsonStringBuffer = new StringBuffer();\r
-               serviceResourcesJsonStringBuffer.append(listToJson((this.getServiceNetworks())));\r
-               serviceResourcesJsonStringBuffer.append(listToJson((this.getServiceVnfs())));\r
-               serviceResourcesJsonStringBuffer.append(listToJson((this.getServiceAllottedResources())));\r
-               return serviceResourcesJsonStringBuffer.toString();\r
+       public String getServiceResourcesJsonString() {\r
+               return listToJson((this.getServiceNetworks())) +\r
+                       listToJson((this.getServiceVnfs())) +\r
+                       listToJson((this.getServiceAllottedResources())) +\r
+                       listToJson((this.getServiceConfigResources()));\r
        }\r
 \r
        /**\r
@@ -205,20 +292,26 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
        public String getServiceAllottedResourcesJson(){\r
                return listToJson(this.getServiceAllottedResources());\r
        }\r
+       /**\r
+        * Returns a JSON list of all Config Resource structures (i.e. the serialized ConfigResource objects).\r
+        * @return\r
+        */\r
+       @JsonIgnore\r
+       public String getServiceConfigResourcesJson(){\r
+               return listToJson(this.getServiceConfigResources());\r
+       }\r
 \r
        //TODO - define Resource Object ID\r
        @JsonIgnore\r
        public String getVnfResource(String resourceObjectId) {\r
 \r
-               Iterator<Resource> iter = getServiceResources().iterator();\r
-               while (iter.hasNext()) {\r
-                       Resource resource = iter.next();\r
-                       //resource.getModelInfo().getModelInvariantId();\r
+        for (Resource resource : getServiceResources()) {\r
+            //resource.getModelInfo().getModelInvariantId();\r
 \r
-                       if (resourceObjectId.equals("extracted information")){\r
-                               return resource.toJsonString();\r
-                       }\r
-               }\r
+            if ("extracted information".equals(resourceObjectId)) {\r
+                return resource.toJsonString();\r
+            }\r
+        }\r
                return "";\r
        }\r
 \r
@@ -229,7 +322,7 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
         */\r
        public void addVnfResource(Resource vnfResource) {\r
                if (vnfResources == null){\r
-                       vnfResources = new ArrayList<VnfResource>();\r
+                       vnfResources = new ArrayList<>();\r
                }\r
                this.vnfResources.add((VnfResource)vnfResource);\r
        }\r
@@ -239,7 +332,7 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
         */\r
        public void addNetworkResource(Resource networkResource) {\r
                if (networkResources == null){\r
-                       networkResources = new ArrayList<NetworkResource>();\r
+                       networkResources = new ArrayList<>();\r
                }\r
                this.networkResources.add((NetworkResource)networkResource);\r
        }\r
@@ -249,16 +342,25 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
         */\r
        public void addAllottedResource(Resource allottedResource) {\r
                if (allottedResources == null){\r
-                       allottedResources = new ArrayList<AllottedResource>();\r
+                       allottedResources = new ArrayList<>();\r
                }\r
                this.allottedResources.add((AllottedResource)allottedResource);\r
        }\r
-\r
+       /**\r
+        * Add Config resource to the list\r
+        * @param allottedResource\r
+        */\r
+       public void addConfigResource(Resource configResource) {\r
+               if (configResources == null){\r
+                       configResources = new ArrayList<>();\r
+               }\r
+               this.configResources.add((ConfigResource)configResource);\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
@@ -272,6 +374,9 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
                case ALLOTTED_RESOURCE:\r
                        this.addAllottedResource(resource);\r
                    break;\r
+               case CONFIGURATION:\r
+                       this.addConfigResource(resource);\r
+                   break;\r
                default:\r
                     throw new IllegalArgumentException("Invalid resource type: " + resource.resourceType);\r
                 }\r
@@ -279,48 +384,54 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
 \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
         */\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
+        * Add resource to the list\r
+        * @param Resource\r
+        */\r
+       public void addConfigResource(String jsonResource) throws JsonDecomposingException {\r
+               ConfigResource configResource = null;\r
+               configResource = DecomposeJsonUtil.jsonToConfigResource(jsonResource);\r
+               this.addVnfResource(configResource);\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
                boolean result = false;\r
                List serviceResources = getServiceResources();\r
-               Iterator<Resource> iter = serviceResources.iterator();\r
-               while (iter.hasNext()) {\r
-                       Resource resource = iter.next();\r
+               for (Resource resource : (Iterable<Resource>) serviceResources) {\r
                        System.out.println("resource found");\r
-                       if (resource.resourceType == newResource.resourceType){\r
+                       if (resource.resourceType == newResource.resourceType) {\r
                                System.out.println("resource type matches");\r
-                               if (resource.getResourceId().equalsIgnoreCase(newResource.getResourceId())){\r
+                               if (resource.getResourceId().equalsIgnoreCase(newResource.getResourceId())) {\r
                                        System.out.println("resource id matches");\r
                                        //returns TRUE if replacement is a success\r
                                        result = Collections.replaceAll(serviceResources, resource, newResource);\r
@@ -345,17 +456,14 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
 \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
                List serviceResources = getServiceResources();\r
-               Iterator<Resource> iter = serviceResources.iterator();\r
-               while (iter.hasNext()) {\r
-                       Resource item = iter.next();\r
-\r
-                       if (item.resourceType == resource.resourceType){\r
-                               if (item.getResourceId().equalsIgnoreCase(resource.getResourceId())){\r
+               for (Resource item : (Iterable<Resource>) serviceResources) {\r
+                       if (item.resourceType == resource.resourceType) {\r
+                               if (item.getResourceId().equalsIgnoreCase(resource.getResourceId())) {\r
                                        //returns TRUE if replacement is a success\r
                                        return serviceResources.remove(resource);\r
                                }\r
@@ -382,6 +490,9 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
                case ALLOTTED_RESOURCE:\r
                        this.setServiceAllottedResources((List<AllottedResource>)(List<?>)resources);\r
                    break;\r
+               case CONFIGURATION:\r
+                       this.setServiceConfigResources((List<ConfigResource>)(List<?>)resources);\r
+                   break;\r
                default:\r
                     throw new IllegalArgumentException("Invalid resource type: " + resources.get(0).resourceType);\r
                 }\r
@@ -401,14 +512,13 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
        @JsonIgnore\r
        public Resource getServiceResource(String resourceId){\r
                List<Resource> resources = getServiceResources();\r
-               Iterator<Resource> iter = resources.iterator();\r
-               while (iter.hasNext()){\r
-                       Resource resource = iter.next();\r
-                       if (resource.getResourceId().equalsIgnoreCase(resourceId)){\r
+               for (Resource resource : resources) {\r
+                       if (resource.getResourceId().equalsIgnoreCase(resourceId)) {\r
                                //match\r
                                return resource;\r
                        }\r
                }\r
                return null;\r
        }\r
+\r
 }\r