AT&T 1712 and 1802 release code
[so.git] / bpmn / MSOCommonBPMN / src / main / java / org / openecomp / mso / client / sdnc / mapper / ServiceTopologyOperationRequestMapper.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.mso.client.sdnc.mapper;\r
22 \r
23 import java.io.StringWriter;\r
24 import java.util.Optional;\r
25 \r
26 import javax.xml.bind.JAXBContext;\r
27 import javax.xml.bind.JAXBException;\r
28 import javax.xml.bind.Marshaller;\r
29 \r
30 import org.openecomp.mso.bpmn.core.domain.ServiceDecomposition;\r
31 import org.openecomp.mso.client.sdnc.beans.SDNCRequest;\r
32 import org.openecomp.mso.client.sdnc.beans.SDNCSvcAction;\r
33 import org.openecomp.mso.client.sdnc.beans.SDNCSvcOperation;\r
34 \r
35 import openecomp.org.mso.workflow.schema.v1.EcompModelInformation;\r
36 import openecomp.org.mso.workflow.schema.v1.RequestInformation;\r
37 import openecomp.org.mso.workflow.schema.v1.SDNCServiceInstanceRequestData;\r
38 import openecomp.org.mso.workflow.schema.v1.ServiceInformation;\r
39 import openecomp.org.mso.workflow.schema.v1.ServiceRequestInput;\r
40 \r
41 public class ServiceTopologyOperationRequestMapper extends SDNCRequestMapper{\r
42         \r
43         public ServiceTopologyOperationRequestMapper(Optional<String> msoAction, SDNCSvcOperation svcOperation,\r
44                         SDNCSvcAction svcAction, String requestAction) {\r
45                 super(msoAction, svcOperation, svcAction, requestAction);\r
46         }\r
47 \r
48         @Override\r
49         public SDNCRequest reqMapper (ServiceDecomposition serviceDecomp) {\r
50                 SDNCRequest req = new SDNCRequest();\r
51                 req.setCallbackUrl(serviceDecomp.getCallbackURN());\r
52                 if(msoAction.isPresent()){\r
53                         req.setMsoAction(msoAction.get()); \r
54                 }\r
55                 req.setRequestId(serviceDecomp.getRequest().getSdncRequestId());\r
56                 req.setSvcInstanceId(serviceDecomp.getServiceInstance().getInstanceId());\r
57                 req.setSvcAction(svcAction); \r
58                 req.setSvcOperation(svcOperation); \r
59                 String reqData ="";\r
60                 \r
61                 RequestInformation reqInfo = new RequestInformation();\r
62                 reqInfo.setRequestAction(requestAction);\r
63                 reqInfo.setSource("MSO");\r
64                 reqInfo.setRequestId(serviceDecomp.getRequest().getRequestId());\r
65                 ServiceInformation servInfo = new ServiceInformation();\r
66                 EcompModelInformation emi = new EcompModelInformation();\r
67                 emi.setModelInvariantUuid(serviceDecomp.getRequest().getModelInfo().getModelInvariantUuid());\r
68                 emi.setModelName(serviceDecomp.getRequest().getModelInfo().getModelName());\r
69                 emi.setModelVersion(serviceDecomp.getRequest().getModelInfo().getModelVersion() );\r
70                 servInfo.setEcompModelInformation(emi);\r
71                 servInfo.setServiceId(serviceDecomp.getServiceInstance().getServiceId());\r
72                 servInfo.setSubscriptionServiceType(serviceDecomp.getCustomer().getSubscriptionServiceType());\r
73                 servInfo.setServiceInstanceId(serviceDecomp.getServiceInstance().getInstanceName());\r
74                 servInfo.setGlobalCustomerId(serviceDecomp.getCustomer().getGlobalSubscriberId());\r
75                 ServiceRequestInput servReqInput = new ServiceRequestInput();\r
76                 servReqInput.setServiceInstanceName(serviceDecomp.getServiceInstance().getInstanceName());\r
77                 SDNCServiceInstanceRequestData sdncSIRD = new SDNCServiceInstanceRequestData();\r
78                 sdncSIRD.setRequestInformation(reqInfo);\r
79                 sdncSIRD.setServiceInformation(servInfo);\r
80                 sdncSIRD.setServiceRequestInput(servReqInput);\r
81                 \r
82                 try {\r
83             JAXBContext context = JAXBContext.newInstance(SDNCServiceInstanceRequestData.class);\r
84 \r
85             Marshaller jaxbMarshaller = context.createMarshaller();\r
86             jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);\r
87             \r
88             StringWriter sw = new StringWriter();\r
89             jaxbMarshaller.marshal(sdncSIRD, sw);\r
90             reqData = sw.toString();\r
91             req.setRequestData(reqData);\r
92         } catch (JAXBException e) {\r
93             e.printStackTrace();\r
94         }\r
95                                 \r
96                 return req;\r
97         }\r
98 }\r