[CCSDK-6] Populate seed code
[ccsdk/sli/adaptors.git] / resource-assignment / provider / src / main / java / org / openecomp / sdnc / ra / service / dao / ServiceResourceDaoImpl.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * openECOMP : SDN-C
4  * ================================================================================
5  * Copyright (C) 2017 ONAP Intellectual Property. All rights
6  *                                              reserved.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  * 
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  * 
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21
22 package org.openecomp.sdnc.ra.service.dao;
23
24 import java.sql.ResultSet;
25 import java.sql.SQLException;
26 import java.util.List;
27
28 import org.openecomp.sdnc.ra.service.data.ServiceResource;
29 import org.openecomp.sdnc.ra.service.data.ServiceStatus;
30 import org.slf4j.Logger;
31 import org.slf4j.LoggerFactory;
32 import org.springframework.jdbc.core.JdbcTemplate;
33 import org.springframework.jdbc.core.RowMapper;
34
35 public class ServiceResourceDaoImpl implements ServiceResourceDao {
36
37         @SuppressWarnings("unused")
38         private static final Logger log = LoggerFactory.getLogger(ServiceResourceDaoImpl.class);
39
40         private static final String GET_SQL =
41                 "SELECT * FROM SERVICE_RESOURCE WHERE service_instance_id = ? AND service_status = ?";
42
43         private static final String ADD_SQL = "INSERT INTO SERVICE_RESOURCE (\n"
44                 + "  service_instance_id, service_status, service_change_number, resource_set_id, resource_union_id)\n"
45                 + "VALUES (?, ?, ?, ?, ?)";
46
47         private static final String UPDATE_SQL =
48                 "UPDATE SERVICE_RESOURCE SET service_change_number = ?, resource_set_id = ?\n"
49                         + "WHERE service_instance_id = ? AND service_status = ?";
50
51         private static final String DELETE_SQL =
52                 "DELETE FROM SERVICE_RESOURCE WHERE service_instance_id = ? AND service_status = ?";
53
54         private static final String UPDATE_STATUS_SQL =
55                 "UPDATE SERVICE_RESOURCE SET service_status = ? WHERE service_instance_id = ? AND service_status = ?";
56
57         private JdbcTemplate jdbcTemplate;
58
59         @Override
60         public ServiceResource getServiceResource(final String serviceInstanceId, final ServiceStatus serviceStatus) {
61                 List<ServiceResource> serviceResourceList =
62                         jdbcTemplate.query(GET_SQL, new Object[] { serviceInstanceId, serviceStatus.toString() },
63                                 new RowMapper<ServiceResource>() {
64
65                                         @Override
66                                         public ServiceResource mapRow(ResultSet rs, int rowNum) throws SQLException {
67                                                 ServiceResource sr = new ServiceResource();
68                                                 sr.id = rs.getLong("service_resource_id");
69                                                 sr.serviceInstanceId = serviceInstanceId;
70                                                 sr.serviceStatus = serviceStatus;
71                                                 sr.serviceChangeNumber = rs.getInt("service_change_number");
72                                                 sr.resourceSetId = rs.getString("resource_set_id");
73                                                 sr.resourceUnionId = rs.getString("resource_union_id");
74                                                 return sr;
75                                         }
76                                 });
77                 if (serviceResourceList.isEmpty())
78                         return null;
79                 return serviceResourceList.get(0);
80         }
81
82         @Override
83         public void addServiceResource(ServiceResource serviceResource) {
84                 jdbcTemplate.update(ADD_SQL, serviceResource.serviceInstanceId, serviceResource.serviceStatus.toString(),
85                         serviceResource.serviceChangeNumber, serviceResource.resourceSetId, serviceResource.resourceUnionId);
86         }
87
88         @Override
89         public void updateServiceResource(ServiceResource serviceResource) {
90                 jdbcTemplate.update(UPDATE_SQL, serviceResource.serviceChangeNumber, serviceResource.resourceSetId,
91                         serviceResource.serviceInstanceId, serviceResource.serviceStatus.toString());
92         }
93
94         @Override
95         public void deleteServiceResource(String serviceInstanceId, ServiceStatus serviceStatus) {
96                 jdbcTemplate.update(DELETE_SQL, serviceInstanceId, serviceStatus.toString());
97         }
98
99         @Override
100         public void updateServiceStatus(
101                 String serviceInstanceId,
102                 ServiceStatus serviceStatus,
103                 ServiceStatus newServiceStatus) {
104                 jdbcTemplate.update(UPDATE_STATUS_SQL, newServiceStatus.toString(), serviceInstanceId, serviceStatus.toString());
105         }
106
107         public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
108                 this.jdbcTemplate = jdbcTemplate;
109         }
110 }