2 * Copyright 2017 Huawei Technologies Co., Ltd.
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.vnfsdk.marketplace.db.resource;
18 import java.util.ArrayList;
19 import java.util.HashMap;
20 import java.util.List;
23 import org.onap.vnfsdk.marketplace.db.common.Parameters;
24 import org.onap.vnfsdk.marketplace.db.entity.PackageData;
25 import org.onap.vnfsdk.marketplace.db.exception.MarketplaceResourceException;
26 import org.onap.vnfsdk.marketplace.db.util.MarketplaceDbUtil;
27 import org.onap.vnfsdk.marketplace.db.wrapper.PackageHandler;
28 import org.slf4j.Logger;
29 import org.slf4j.LoggerFactory;
31 public class PackageManager {
32 private static final Logger LOGGER = LoggerFactory.getLogger(PackageManager.class);
33 private static PackageManager manager;
34 PackageHandler handler = new PackageHandler();
37 * get PackageManager instance.
38 * @return PackageManager instance
40 public static synchronized PackageManager getInstance() {
41 if (manager == null) {
42 manager = new PackageManager();
47 private PackageManager() {}
51 * @param packageData package data
53 * @throws MarketplaceResourceException e
55 public PackageData addPackage(PackageData packageData) throws MarketplaceResourceException {
56 LOGGER.info("start add package info to db.info:" + MarketplaceDbUtil.objectToString(packageData));
57 PackageData data = handler.create(packageData);
58 LOGGER.info(" package info to db end.info:" + MarketplaceDbUtil.objectToString(data));
63 * query package by package id.
64 * @param csarId package id
65 * @return package data list
66 * @throws MarketplaceResourceException e
68 public List<PackageData> queryPackageByCsarId(String csarId)
69 throws MarketplaceResourceException {
70 LOGGER.info("start query package info by csarid." + csarId);
71 List<PackageData> data = handler.queryByID(csarId);
72 LOGGER.info("query package info end.size:" + data.size() + "detail:"
73 + MarketplaceDbUtil.objectToString(data));
78 * query package by condition.
79 * @param name package name
80 * @param provider package provider
81 * @param version package version
82 * @param deletionPending deletionPending
83 * @param type package type
84 * @return package data list
85 * @throws MarketplaceResourceException e
87 public List<PackageData> queryPackage(String name, String provider, String version,
88 String deletionPending, String type) throws MarketplaceResourceException {
89 LOGGER.info("start query package info.name:" + name + " provider:" + provider + " version:"
90 + version + " type:" + type);
91 Map<String, String> queryParam = new HashMap<>();
92 if (MarketplaceDbUtil.isNotEmpty(name)) {
93 queryParam.put(Parameters.name.name(), name);
95 if (MarketplaceDbUtil.isNotEmpty(version)) {
96 queryParam.put(Parameters.version.name(), version);
98 if (MarketplaceDbUtil.isNotEmpty(deletionPending)) {
99 queryParam.put(Parameters.deletionPending.name(), deletionPending);
101 if (MarketplaceDbUtil.isNotEmpty(type)) {
102 queryParam.put(Parameters.type.name(), type);
104 if (MarketplaceDbUtil.isNotEmpty(provider)) {
105 queryParam.put(Parameters.provider.name(), provider);
107 List<PackageData> data = handler.query(queryParam);
108 LOGGER.info("query package info end.size:" + data.size() + "detail:"
109 + MarketplaceDbUtil.objectToString(data));
114 * delete package according package id.
115 * @param packageId package id
116 * @throws MarketplaceResourceException e
118 public void deletePackage(String packageId) throws MarketplaceResourceException {
119 LOGGER.info("start delete package info by id." + packageId);
120 handler.delete(packageId);
121 LOGGER.info(" delete package info end id." + packageId);
125 * update download count of package according package id.
126 * @param packageId package id
127 * @throws MarketplaceResourceException e
129 public void updateDownloadCount(String packageId) throws MarketplaceResourceException
131 LOGGER.info("Request received for Updating down load count for ID:" + packageId);
133 //STEP 1: Get the Existing download count from DB
134 //-------------------------------------------------
135 List<PackageData> data = handler.queryByID(packageId);
138 LOGGER.info("Package Info not foun for ID:" + packageId);
142 //STEP 2: Increment download Count in DB
143 //--------------------------------------
144 PackageData oPackageData = data.get(0);
145 int idownloadcount = oPackageData.getDownloadCount();
146 oPackageData.setDownloadCount(++idownloadcount);
148 handler.update(oPackageData);
150 LOGGER.info("Download count updated to :" + idownloadcount);