2 * Copyright 2016-2017 ZTE Corporation.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org.onap.aai.esr.handle;
18 import com.google.gson.Gson;
20 import org.onap.aai.esr.dao.BaseDao;
21 import org.onap.aai.esr.dao.DaoManager;
22 import org.onap.aai.esr.entity.aai.BaseData;
23 import org.onap.aai.esr.exception.ExtsysException;
24 import org.onap.aai.esr.util.ExtsysDbUtil;
25 import org.slf4j.Logger;
26 import org.slf4j.LoggerFactory;
28 import java.util.List;
32 * an abstract class for wrapper class.<br>
33 * provide the common methods to process the DB request
37 public abstract class BaseHandler<T extends BaseData> {
38 private static final Logger logger = LoggerFactory.getLogger(BaseHandler.class);
40 public Gson gson = new Gson();
46 * @param resouceType resource type
48 * @throws ExtsysException when DAO exception
50 @SuppressWarnings({"unchecked", "rawtypes"})
51 public T create(T data, String resouceType) throws ExtsysException {
54 logger.info("BaseHandler:start create data.info:" + ExtsysDbUtil.objectToString(data));
56 check = validity(data);
58 logger.error("validity check success!");
60 logger.error("validity check failed");
61 throw new ExtsysException("", "validity check failed");
63 } catch (ExtsysException error) {
64 logger.error("validity check failed,errorMsg:" + error.getErrorMsg());
68 data.setId(ExtsysDbUtil.generateId());
69 data.setCreateTime(ExtsysDbUtil.getNowTime());
70 data.setCategory(resouceType);
71 BaseDao dao = DaoManager.getInstance().getDao(resouceType);
72 rtnData = (T) dao.create(data);
73 } catch (ExtsysException error) {
74 logger.error("BaseHandler:error while creating " + resouceType, error);
77 logger.info("BaseHandler:create data end.info:" + ExtsysDbUtil.objectToString(data));
84 * @param resouceType resource type
85 * @throws ExtsysException when DAO exception
87 @SuppressWarnings({"rawtypes", "unchecked"})
88 public void delete(T data, String resouceType) throws ExtsysException {
89 logger.info("BaseHandler:start delete data.info:" + ExtsysDbUtil.objectToString(data));
91 BaseDao dao = DaoManager.getInstance().getDao(resouceType);
93 } catch (ExtsysException error) {
94 logger.error("BaseHandler:error while deleting " + resouceType, error);
97 logger.info("BaseHandler:delete data end");
101 * delete entity by query condition.
102 * @param queryParam query parameter
103 * @param resouceType resource type
104 * @throws ExtsysException when DAO exception
106 @SuppressWarnings({"rawtypes", "unchecked"})
107 public void delete(Map<String, String> queryParam, String resouceType) throws ExtsysException {
108 logger.info("BaseHandler:start delete data by condition.info:"
109 + ExtsysDbUtil.objectToString(queryParam));
112 BaseDao dao = DaoManager.getInstance().getDao(resouceType);
113 datas = dao.query(queryParam);
114 for (T data : datas) {
115 delete(data, resouceType);
117 } catch (ExtsysException error) {
118 logger.error("BaseHandler:error while deleting " + resouceType, error);
127 * @param filter update condition
128 * @param resouceType resource type
129 * @throws ExtsysException when DAO exception
131 @SuppressWarnings({"rawtypes", "unchecked"})
132 public void update(T data, String filter, String resouceType) throws ExtsysException {
133 logger.info("BaseHandler:start update data .info:" + ExtsysDbUtil.objectToString(data)
134 + " filter:" + filter);
136 BaseDao dao = DaoManager.getInstance().getDao(resouceType);
138 dao.update(data, filter);
140 } catch (ExtsysException error) {
141 logger.error("BaseHandler:error while updating " + resouceType, error);
144 logger.info("BaseHandler:update data end ");
149 * @param queryParam query parameter
150 * @param resouceType resource type
151 * @return List entity list
152 * @throws ExtsysException when DAO exception
154 @SuppressWarnings({"rawtypes", "unchecked"})
155 public List<T> query(Map<String, String> queryParam, String resouceType) throws ExtsysException {
156 logger.info("BaseHandler:start query data .info:" + ExtsysDbUtil.objectToString(queryParam));
157 List<T> datas = null;
159 BaseDao dao = DaoManager.getInstance().getDao(resouceType);
160 datas = dao.query(queryParam);
162 } catch (ExtsysException error) {
163 logger.error("BaseHandler:error while querying " + resouceType, error);
166 logger.info("BaseHandler: query data end .info:" + ExtsysDbUtil.objectToString(datas));
172 * @param filter query condition
173 * @param resouceType resource type
174 * @return list entity
175 * @throws ExtsysException when DAO exception
177 @SuppressWarnings({"rawtypes", "unchecked"})
178 public List<T> unionQuery(String filter, String resouceType) throws ExtsysException {
179 logger.info("BaseHandler:start union query data.fliter:" + filter);
180 List<T> datas = null;
182 BaseDao dao = DaoManager.getInstance().getDao(resouceType);
183 datas = dao.unionQuery(filter);
185 } catch (ExtsysException error) {
186 logger.error("BaseHandler:error while union querying " + resouceType, error);
189 logger.info("BaseHandler:union query data end .info:" + ExtsysDbUtil.objectToString(datas));
195 * @param filter delete condition
196 * @param resouceType resource type
197 * @return delete entity num
198 * @throws ExtsysException when DAO exception
200 @SuppressWarnings({"rawtypes", "unchecked"})
201 public int unionDelete(String filter, String resouceType) throws ExtsysException {
202 logger.info("BaseHandler:start delete query data.fliter:" + filter);
205 BaseDao dao = DaoManager.getInstance().getDao(resouceType);
206 num = dao.unionDelete(filter);
208 } catch (ExtsysException error) {
209 logger.error("BaseHandler:error while union delete " + resouceType, error);
212 logger.info("BaseHandler:union delete data end .num:" + num);
217 * check if the esr parameter is correct in the external system.
218 * @param data esr entity
219 * @return if esr parameter correct return true else return false
220 * @throws ExtsysException ExtsysException when external system error
223 public abstract boolean validity(T data) throws ExtsysException;