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;
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();
48 * private PackageManager() {}
51 * @param packageData package data
53 * @throws MarketplaceResourceException e
55 public PackageData addPackage(PackageData packageData) throws MarketplaceResourceException {
56 String jsonPackageData = MarketplaceDbUtil.objectToString(packageData);
57 LOGGER.info("start add package info to db.info:{}" , jsonPackageData);
58 PackageData data = handler.create(packageData);
59 String jsonData = MarketplaceDbUtil.objectToString(data);
60 LOGGER.info(" package info to db end.info:{}" , jsonData);
65 * query package by package id.
66 * @param csarId package id
67 * @return package data list
68 * @throws MarketplaceResourceException e
70 public List<PackageData> queryPackageByCsarId(String csarId)
71 throws MarketplaceResourceException {
72 LOGGER.info("start query package info by csarid.{}" , csarId);
73 List<PackageData> data = handler.queryByID(csarId);
74 String jsonData = MarketplaceDbUtil.objectToString(data);
75 LOGGER.info("query package info end.size:{} detail:{}", data.size(), jsonData);
80 * query package by condition.
81 * @param name package name
82 * @param provider package provider
83 * @param version package version
84 * @param deletionPending deletionPending
85 * @param type package type
86 * @return package data list
87 * @throws MarketplaceResourceException e
89 public List<PackageData> queryPackage(String name, String provider, String version,
90 String deletionPending, String type) throws MarketplaceResourceException {
91 LOGGER.info("start query package info.name:{} provider:{} version:{} type:{}", name , provider , version, type);
92 Map<String, String> queryParam = new HashMap<>();
93 if (MarketplaceDbUtil.isNotEmpty(name)) {
94 queryParam.put(Parameters.NAME.name(), name);
96 if (MarketplaceDbUtil.isNotEmpty(version)) {
97 queryParam.put(Parameters.VERSION.name(), version);
99 if (MarketplaceDbUtil.isNotEmpty(deletionPending)) {
100 queryParam.put(Parameters.DELETIONPENDING.name(), deletionPending);
102 if (MarketplaceDbUtil.isNotEmpty(type)) {
103 queryParam.put(Parameters.TYPE.name(), type);
105 if (MarketplaceDbUtil.isNotEmpty(provider)) {
106 queryParam.put(Parameters.PROVIDER.name(), provider);
108 List<PackageData> data = handler.query(queryParam);
109 String jsonData = MarketplaceDbUtil.objectToString(data);
110 LOGGER.info("query package info end.size:{} detail:{}", data.size(), jsonData);
115 * delete package according package id.
116 * @param packageId package id
117 * @throws MarketplaceResourceException e
119 public void deletePackage(String packageId) throws MarketplaceResourceException {
120 LOGGER.info("start delete package info by id.{}" , packageId);
121 handler.delete(packageId);
122 LOGGER.info(" delete package info end id.{}" , packageId);
126 * update download count of package according package id.
127 * @param packageId package id
128 * @throws MarketplaceResourceException e
130 public void updateDownloadCount(String packageId) throws MarketplaceResourceException
132 LOGGER.info("Request received for Updating down load count for ID:{}" , packageId);
134 //STEP 1: Get the Existing download count from DB
135 //-------------------------------------------------
136 List<PackageData> data = handler.queryByID(packageId);
139 LOGGER.info("Package Info not foun for ID:{}" , packageId);
143 //STEP 2: Increment download Count in DB
144 //--------------------------------------
145 PackageData oPackageData = data.get(0);
146 int idownloadcount = oPackageData.getDownloadCount();
147 oPackageData.setDownloadCount(++idownloadcount);
149 handler.update(oPackageData);
151 LOGGER.info("Download count updated to :{}" , idownloadcount);