635737159662aa33314001546f44e213fa4b4a2d
[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.resource;
17
18 import java.util.ArrayList;
19 import java.util.HashMap;
20 import java.util.Map;
21
22 import org.onap.vnfsdk.marketplace.db.common.Parameters;
23 import org.onap.vnfsdk.marketplace.db.entity.PackageData;
24 import org.onap.vnfsdk.marketplace.db.exception.MarketplaceResourceException;
25 import org.onap.vnfsdk.marketplace.db.util.MarketplaceDbUtil;
26 import org.onap.vnfsdk.marketplace.db.wrapper.PackageHandler;
27 import org.slf4j.Logger;
28 import org.slf4j.LoggerFactory;
29
30 public class PackageManager {
31     private static final Logger LOGGER = LoggerFactory.getLogger(PackageManager.class);
32     private static PackageManager manager;
33     PackageHandler handler = new PackageHandler();
34
35     /**
36      * get PackageManager instance.
37      * @return PackageManager instance
38      */
39     public static synchronized PackageManager getInstance() {
40         if (manager == null) {
41             manager = new PackageManager();
42         }
43         return manager;
44     }
45
46     private PackageManager() {}
47
48     /**
49      * add package.
50      * @param packageData package data
51      * @return PackageData
52      * @throws MarketplaceResourceException e
53      */
54     public PackageData addPackage(PackageData packageData) throws MarketplaceResourceException {
55         LOGGER.info("start add package info  to db.info:" + MarketplaceDbUtil.objectToString(packageData));
56         PackageData data = handler.create(packageData);
57         LOGGER.info(" package info  to db end.info:" + MarketplaceDbUtil.objectToString(data));
58         return data;
59     }
60
61     /**
62      * query package by package id.
63      * @param csarId package id
64      * @return package data list
65      * @throws MarketplaceResourceException e
66      */
67     public ArrayList<PackageData> queryPackageByCsarId(String csarId)
68             throws MarketplaceResourceException {
69         LOGGER.info("start query package info by csarid." + csarId);
70         ArrayList<PackageData> data = handler.queryByID(csarId);
71         LOGGER.info("query package info end.size:" + data.size() + "detail:"
72                 + MarketplaceDbUtil.objectToString(data));
73         return data;
74     }
75
76     /**
77      * query package by condition.
78      * @param name package name
79      * @param provider package provider
80      * @param version package version
81      * @param deletionPending deletionPending
82      * @param type package type
83      * @return package data list
84      * @throws MarketplaceResourceException e
85      */
86     public ArrayList<PackageData> queryPackage(String name, String provider, String version,
87             String deletionPending, String type) throws MarketplaceResourceException {
88         LOGGER.info("start query package info.name:" + name + " provider:" + provider + " version:"
89                 + version + " type:" + type);
90         Map<String, String> queryParam = new HashMap<String, String>();
91         if (MarketplaceDbUtil.isNotEmpty(name)) {
92             queryParam.put(Parameters.name.name(), name);
93         }
94         if (MarketplaceDbUtil.isNotEmpty(version)) {
95             queryParam.put(Parameters.version.name(), version);
96         }
97         if (MarketplaceDbUtil.isNotEmpty(deletionPending)) {
98             queryParam.put(Parameters.deletionPending.name(), deletionPending);
99         }
100         if (MarketplaceDbUtil.isNotEmpty(type)) {
101             queryParam.put(Parameters.type.name(), type);
102         }
103         if (MarketplaceDbUtil.isNotEmpty(provider)) {
104             queryParam.put(Parameters.provider.name(), provider);
105         }
106         ArrayList<PackageData> data = handler.query(queryParam);
107         LOGGER.info("query package info end.size:" + data.size() + "detail:"
108                 + MarketplaceDbUtil.objectToString(data));
109         return data;
110     }
111
112     /**
113      * delete package according package id.
114      * @param packageId package id
115      * @throws MarketplaceResourceException e
116      */
117     public void deletePackage(String packageId) throws MarketplaceResourceException {
118         LOGGER.info("start delete package info by id." + packageId);
119         handler.delete(packageId);
120         LOGGER.info(" delete package info end id." + packageId);
121     }
122
123     /**
124      * update download count of package according package id.
125      * @param packageId package id
126      * @throws MarketplaceResourceException e
127      */
128     public void updateDwonloadCount(String packageId) throws MarketplaceResourceException
129     {
130         LOGGER.info("Request received for Updating down load count for ID:" + packageId);
131
132         //STEP 1: Get the Existing download  count from DB
133         //-------------------------------------------------
134         ArrayList<PackageData> data = handler.queryByID(packageId);
135         if(data.isEmpty())
136         {
137             LOGGER.info("Package Info not foun for ID:" + packageId);
138             return;
139         }
140
141         //STEP 2: Increment download Count in DB
142         //--------------------------------------
143         PackageData oPackageData = data.get(0);
144         int idownloadcount = oPackageData.getDownloadCount();
145         oPackageData.setDownloadCount(++idownloadcount);
146
147         handler.update(oPackageData);
148
149         LOGGER.info("Download count updated to :" + idownloadcount);
150     }
151 }