5e8dc92fce716ff30a7fa4f8416fd07bb54f17e4
[ccsdk/features.git] /
1 /*
2  * ============LICENSE_START=======================================================
3  * ONAP : ccsdk features
4  * ================================================================================
5  * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
6  * All rights reserved.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *     http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  *
21  */
22 package org.onap.ccsdk.features.sdnr.wt.dataprovider.impl;
23
24 import org.onap.ccsdk.features.sdnr.wt.common.configuration.Configuration;
25 import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation;
26 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.elasticsearch.EsConfig;
27 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.SqlDBConfig;
28 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.SdnrDbType;
29
30 public class DataProviderConfig implements Configuration {
31
32     private static final String PROPERTY_KEY_DBTYPE = "dbType";
33     private static final Object DEFAULT_DBTYPE = "${SDNRDBTYPE}";
34     private static final SdnrDbType DEFAULT_DBTYPE_VALUE = SdnrDbType.ELASTICSEARCH;
35     private final EsConfig esConfig;
36     private final SqlDBConfig maridadbConfig;
37     private ConfigurationFileRepresentation configuration;
38
39     public DataProviderConfig(ConfigurationFileRepresentation configuration) {
40         this.configuration = configuration;
41         defaults();
42         this.esConfig = new EsConfig(configuration);
43         this.maridadbConfig = new SqlDBConfig(configuration);
44     }
45
46     public EsConfig getEsConfig() {
47         return this.esConfig;
48     }
49
50     public SqlDBConfig getMariadbConfig() {
51         return this.maridadbConfig;
52     }
53
54     @Override
55     public void defaults() {
56
57         configuration.setPropertyIfNotAvailable(this.getSectionName(), PROPERTY_KEY_DBTYPE, DEFAULT_DBTYPE);
58     }
59
60     @Override
61     public String getSectionName() {
62         return ConfigurationFileRepresentation.SECTIONNAME_ROOT;
63     }
64
65     public SdnrDbType getDbType() {
66         String value = this.configuration.getProperty(this.getSectionName(), PROPERTY_KEY_DBTYPE);
67         if (value.isEmpty()) {
68             return DEFAULT_DBTYPE_VALUE;
69         }
70         return SdnrDbType.valueOf(value);
71     }
72
73
74 }