4e3e117c812f42be17117a6a492878a50e27c5d4
[vnfsdk/refrepo.git] /
1 /**
2  * Copyright 2017 Huawei Technologies Co., Ltd.
3  *
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
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16 package org.onap.vnfsdk.marketplace.db.wrapper;
17
18 import java.util.List;
19 import java.util.Map;
20
21 import org.onap.vnfsdk.marketplace.db.entity.BaseData;
22 import org.onap.vnfsdk.marketplace.db.entity.PackageData;
23 import org.onap.vnfsdk.marketplace.db.exception.MarketplaceResourceException;
24 import org.onap.vnfsdk.marketplace.db.impl.MarketplaceDaoImpl;
25 import org.onap.vnfsdk.marketplace.db.inf.IMarketplaceDao;
26 import org.onap.vnfsdk.marketplace.db.util.MarketplaceDbUtil;
27 import org.slf4j.Logger;
28 import org.slf4j.LoggerFactory;
29
30
31
32 /**
33  * an abstract class for NFV wrapper class.
34  * provide the common methods to process the CRUD rest request.
35  *
36  */
37 public abstract class BaseHandler<T extends BaseData> {
38   private static final Logger logger = LoggerFactory.getLogger(BaseHandler.class);
39
40
41   /**
42    * create date.
43    * @param data data to create
44    * @param resouceType resouce type
45    * @return T
46    * @throws MarketplaceResourceException e1
47    */
48   @SuppressWarnings({"unchecked", "rawtypes"})
49   public PackageData create(PackageData data, String resouceType) throws MarketplaceResourceException {
50     PackageData rtnData = null;
51     logger.info("BaseHandler:start create data.info:" + MarketplaceDbUtil.objectToString(data));
52     try {
53       IMarketplaceDao dao = new MarketplaceDaoImpl();
54       dao.savePackageData(data);
55       rtnData = data;
56     } catch (Exception e1) {
57       logger.error("BaseHandler:error while creating " + resouceType, e1);
58     }
59     logger.info("BaseHandler:create data end.info:" + MarketplaceDbUtil.objectToString(data));
60     return rtnData;
61   }
62
63   /**
64    * delete data.
65    * @param data data to delete
66    * @param resouceType resource type
67    * @throws MarketplaceResourceException e1
68    */
69   @SuppressWarnings({"rawtypes", "unchecked"})
70   public void delete(T data) throws MarketplaceResourceException {
71     logger.info("BaseHandler:start delete data.info:" + MarketplaceDbUtil.objectToString(data));
72     IMarketplaceDao dao = new MarketplaceDaoImpl();
73     dao.deletePackageData(((PackageData)data).getCsarId());
74     logger.info("BaseHandler:delete data end");
75   }
76
77   /**
78    * query data.
79    * @param queryParam query parameter
80    * @param resouceType resource type
81    * @return T list
82    * @throws MarketplaceResourceException e1
83    */
84   @SuppressWarnings({"rawtypes", "unchecked"})
85   public List<PackageData> query(Map<String, String> queryParam)
86       throws MarketplaceResourceException {
87     logger.info("BaseHandler:start query data .info:" + MarketplaceDbUtil.objectToString(queryParam));
88     IMarketplaceDao dao = new MarketplaceDaoImpl();
89     List<PackageData> datas = dao.getPackageDataSubset(queryParam);
90     logger.info("BaseHandler: query data end .info:" + MarketplaceDbUtil.objectToString(datas));
91     return datas;
92   }
93
94
95
96   @SuppressWarnings({"rawtypes", "unchecked"})
97   public void update(T data) throws MarketplaceResourceException {
98     logger.info("BaseHandler:start update data.info:" + MarketplaceDbUtil.objectToString(data));
99     IMarketplaceDao dao = new MarketplaceDaoImpl();
100     dao.updatePackageData((PackageData)data);
101     logger.info("update data end");
102   }
103
104   /**
105    * check if the related object id exists in the system.
106    *
107    * @param data data to check
108    * @throws MarketplaceResourceException e
109    */
110   public abstract void check(T data) throws MarketplaceResourceException;
111
112 }
113