124fc358febbfa45026231d6cd82021a613cba36
[vfc/nfvo/catalog.git] /
1 /**
2  * Copyright 2016 [ZTE] and others.
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.openo.commontosca.catalog.db.resource;
17
18 import java.util.ArrayList;
19 import java.util.HashMap;
20 import java.util.Map;
21
22 import org.openo.commontosca.catalog.db.common.Parameters;
23 import org.openo.commontosca.catalog.db.exception.CatalogResourceException;
24 import org.openo.commontosca.catalog.db.util.CatalogDbUtil;
25 import org.openo.commontosca.catalog.db.util.HqlFactory;
26 import org.openo.commontosca.catalog.db.entity.PackageData;
27 import org.openo.commontosca.catalog.db.entity.ServiceTemplateData;
28 import org.openo.commontosca.catalog.db.wrapper.PackageHandler;
29 import org.slf4j.Logger;
30 import org.slf4j.LoggerFactory;
31
32 public class PackageManager {
33     private static final Logger LOGGER = LoggerFactory.getLogger(PackageManager.class);
34     private static PackageManager manager;
35     PackageHandler handler = new PackageHandler();
36
37     public synchronized static PackageManager getInstance() {
38         if (manager == null) {
39             manager = new PackageManager();
40         }
41         return manager;
42     }
43
44     private PackageManager() {}
45
46     public PackageData addPackage(PackageData packageData) throws CatalogResourceException {
47         LOGGER.info("start add package info  to db.info:"
48                 + CatalogDbUtil.objectToString(packageData));
49         PackageData data = handler.create(packageData);
50         LOGGER.info(" package info  to db end.info:" + CatalogDbUtil.objectToString(data));
51         return data;
52     }
53
54     public ArrayList<PackageData> queryPackageByCsarId(String package_csarId)
55             throws CatalogResourceException {
56         Map<String, String> queryParam = new HashMap<String, String>();
57         queryParam.put(Parameters.csarId.name(), package_csarId);
58         LOGGER.info("start query package info by csarid." + package_csarId);
59         ArrayList<PackageData> data = handler.query(queryParam);
60         LOGGER.info("query package info end.size:" + data.size() + "detail:"
61                 + CatalogDbUtil.objectToString(data));
62         return data;
63     }
64
65     public ArrayList<PackageData> queryPackage(String name, String provider, String version,
66             String deletionPending, String type) throws CatalogResourceException {
67         LOGGER.info("start query package info.name:" + name + " provider:" + provider + " version:"
68                 + version + " type:" + type);
69         Map<String, String> queryParam = new HashMap<String, String>();
70         if (CatalogDbUtil.isNotEmpty(name))
71             queryParam.put(Parameters.name.name(), name);
72         if (CatalogDbUtil.isNotEmpty(version))
73             queryParam.put(Parameters.version.name(), version);
74         if (CatalogDbUtil.isNotEmpty(deletionPending))
75             queryParam.put(Parameters.deletionPending.name(), deletionPending);
76         if (CatalogDbUtil.isNotEmpty(type))
77             queryParam.put(Parameters.type.name(), type);
78         if (CatalogDbUtil.isNotEmpty(provider))
79             queryParam.put(Parameters.provider.name(), provider);
80         ArrayList<PackageData> data = handler.query(queryParam);
81         LOGGER.info("query package info end.size:" + data.size() + "detail:"
82                 + CatalogDbUtil.objectToString(data));
83         return data;
84     }
85
86     public void deletePackage(String package_oid) throws CatalogResourceException {
87         LOGGER.info("start delete package info by id." + package_oid);
88         handler.delete(package_oid);
89         LOGGER.info(" delete package info end id." + package_oid);
90     }
91
92     public void deletePackageByServiceTemplateId(String serviceTemplateId)
93             throws CatalogResourceException {
94         LOGGER.info("start delete package info by serviceTemplateid." + serviceTemplateId);
95         ServiceTemplateData serviceTemplate = new ServiceTemplateData();
96         serviceTemplate.setServiceTemplateId(serviceTemplateId);
97         String filter =
98                 HqlFactory.getDeleteHqlByFilter(PackageData.class, serviceTemplate,
99                         Parameters.csarId.name());
100         int data = handler.unionDelete(filter);
101
102         LOGGER.info("delete serviceTemplate info end.num:" + data);
103     }
104
105     public ArrayList<PackageData> queryPackageByServiceTemplateId(String serviceTemplateId)
106             throws CatalogResourceException {
107         LOGGER.info("start query package info by serviceTemplateid." + serviceTemplateId);
108         ServiceTemplateData serviceTemplate = new ServiceTemplateData();
109         serviceTemplate.setServiceTemplateId(serviceTemplateId);
110         String filter =
111                 HqlFactory.getQueryHqlByFilter(PackageData.class, serviceTemplate,
112                         Parameters.csarId.name());
113         ArrayList<PackageData> data = handler.unionQuery(filter);
114         LOGGER.info("query package info end.size:" + data.size() + "detail:"
115                 + CatalogDbUtil.objectToString(data));
116         return data;
117     }
118
119     public void updatePackage(PackageData packageData, String csarId)
120             throws CatalogResourceException {
121         LOGGER.info("start update package info by id." + csarId + " info:"
122                 + CatalogDbUtil.objectToString(packageData));
123         handler.update(packageData, csarId);
124         LOGGER.info(" update package  end id." + csarId);
125     }
126
127 }