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;
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;
30 public class PackageManager {
31 private static final Logger LOGGER = LoggerFactory.getLogger(PackageManager.class);
32 private static PackageManager manager;
33 PackageHandler handler = new PackageHandler();
36 * get PackageManager instance.
37 * @return PackageManager instance
39 public static synchronized PackageManager getInstance() {
40 if (manager == null) {
41 manager = new PackageManager();
46 private PackageManager() {}
50 * @param packageData package data
52 * @throws MarketplaceResourceException e
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));
62 * query package by package id.
63 * @param csarId package id
64 * @return package data list
65 * @throws MarketplaceResourceException e
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));
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
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);
94 if (MarketplaceDbUtil.isNotEmpty(version)) {
95 queryParam.put(Parameters.version.name(), version);
97 if (MarketplaceDbUtil.isNotEmpty(deletionPending)) {
98 queryParam.put(Parameters.deletionPending.name(), deletionPending);
100 if (MarketplaceDbUtil.isNotEmpty(type)) {
101 queryParam.put(Parameters.type.name(), type);
103 if (MarketplaceDbUtil.isNotEmpty(provider)) {
104 queryParam.put(Parameters.provider.name(), provider);
106 ArrayList<PackageData> data = handler.query(queryParam);
107 LOGGER.info("query package info end.size:" + data.size() + "detail:"
108 + MarketplaceDbUtil.objectToString(data));
113 * delete package according package id.
114 * @param packageId package id
115 * @throws MarketplaceResourceException e
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);
124 * update download count of package according package id.
125 * @param packageId package id
126 * @throws MarketplaceResourceException e
128 public void updateDwonloadCount(String packageId) throws MarketplaceResourceException
130 LOGGER.info("Request received for Updating down load count for ID:" + packageId);
132 //STEP 1: Get the Existing download count from DB
133 //-------------------------------------------------
134 ArrayList<PackageData> data = handler.queryByID(packageId);
137 LOGGER.info("Package Info not foun for ID:" + packageId);
141 //STEP 2: Increment download Count in DB
142 //--------------------------------------
143 PackageData oPackageData = data.get(0);
144 int idownloadcount = oPackageData.getDownloadCount();
145 oPackageData.setDownloadCount(++idownloadcount);
147 handler.update(oPackageData);
149 LOGGER.info("Download count updated to :" + idownloadcount);