2  * ============LICENSE_START=======================================================
 
   4  * ================================================================================
 
   5  * Copyright (C) 2017 AT&T Intellectual Property. All rights
 
   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
 
  12  *      http://www.apache.org/licenses/LICENSE-2.0
 
  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=========================================================
 
  22 package org.onap.ccsdk.sli.adaptors.ra.rule.dao;
 
  24 import java.util.ArrayList;
 
  25 import java.util.List;
 
  26 import org.onap.ccsdk.sli.adaptors.ra.rule.data.RangeRule;
 
  27 import org.onap.ccsdk.sli.adaptors.rm.data.Range;
 
  28 import org.slf4j.Logger;
 
  29 import org.slf4j.LoggerFactory;
 
  30 import org.springframework.jdbc.core.JdbcTemplate;
 
  31 import org.springframework.jdbc.core.RowMapper;
 
  33 public class RangeRuleDaoImpl implements RangeRuleDao {
 
  35     private static final Logger log = LoggerFactory.getLogger(RangeRuleDaoImpl.class);
 
  37     private static final String GET_SQL = "SELECT * FROM RANGE_RULE WHERE service_model = ? AND equipment_level = ?";
 
  39     private JdbcTemplate jdbcTemplate;
 
  42     public List<RangeRule> getRangeRules(String serviceModel, String equipLevel) {
 
  43         List<RangeRule> rangeRuleList =
 
  44                 jdbcTemplate.query(GET_SQL, new Object[] {serviceModel, equipLevel}, (RowMapper<RangeRule>) (rs, rowNum) -> {
 
  45                     RangeRule rl = new RangeRule();
 
  46                     rl.id = rs.getLong("range_rule_id");
 
  47                     rl.rangeName = rs.getString("range_name");
 
  48                     rl.serviceModel = rs.getString("service_model");
 
  49                     rl.endPointPosition = rs.getString("end_point_position");
 
  50                     rl.equipmentLevel = rs.getString("equipment_level");
 
  51                     rl.equipmentExpression = rs.getString("equipment_expression");
 
  53                     String rangesStr = rs.getString("ranges");
 
  54                     String[] ranges = rangesStr.split(",");
 
  55                     rl.rangeList = new ArrayList<>();
 
  56                     for (String rangeStr : ranges) {
 
  57                         Range range = new Range();
 
  58                         String[] nn = rangeStr.split("-");
 
  61                                 range.min = range.max = Integer.parseInt(nn[0]);
 
  62                             } catch (NumberFormatException e) {
 
  63                                 log.warn("Invalid value found in DB for range: " + rangeStr, e);
 
  68                                 range.max = Integer.parseInt(nn[1]);
 
  69                             } catch (NumberFormatException e) {
 
  70                                 log.warn("Invalid value found in DB for range: " + rangeStr, e);
 
  74                             log.warn("Invalid value found in DB for range: " + rangeStr);
 
  76                         rl.rangeList.add(range);
 
  84     public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
 
  85         this.jdbcTemplate = jdbcTemplate;