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 updateDwonloadCount(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);