Rename packages from openecomp to onap.
[sdc.git] / openecomp-be / lib / openecomp-sdc-translator-lib / openecomp-sdc-translator-core / src / main / java / org / openecomp / sdc / translator / services / heattotosca / FunctionTranslationFactory.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.translator.services.heattotosca;
22
23
24 import org.onap.config.api.Configuration;
25 import org.onap.config.api.ConfigurationManager;
26 import org.openecomp.core.utilities.CommonMethods;
27 import org.openecomp.sdc.datatypes.configuration.ImplementationConfiguration;
28
29 import java.util.Map;
30 import java.util.Optional;
31
32
33 public class FunctionTranslationFactory {
34   private static Map<String, ImplementationConfiguration> functionTranslationImplMap;
35
36   static {
37     Configuration config = ConfigurationManager.lookup();
38     functionTranslationImplMap = config.populateMap(ConfigConstants.TRANSLATOR_NAMESPACE,
39         ConfigConstants.FUNCTION_TRANSLATION_IMPL_KEY, ImplementationConfiguration.class);
40     functionTranslationImplMap.putAll(config.populateMap(ConfigConstants.MANDATORY_TRANSLATOR_NAMESPACE,
41         ConfigConstants.FUNCTION_TRANSLATION_IMPL_KEY, ImplementationConfiguration.class));
42
43   }
44
45   /**
46    * Gets function translation instance.
47    *
48    * @param heatFunctionKey heat function key
49    * @return the instance
50    */
51   public static Optional<FunctionTranslation> getInstance(String heatFunctionKey) {
52     if (isSupportedFunction(heatFunctionKey)) {
53       String functionTranslationImplClassName =
54           functionTranslationImplMap.get(heatFunctionKey).getImplementationClass();
55       return Optional.of(CommonMethods
56           .newInstance(functionTranslationImplClassName, FunctionTranslation.class));
57     }
58
59     return Optional.empty();
60   }
61
62   private static boolean isSupportedFunction(String heatFunctionKey) {
63     if (functionTranslationImplMap.containsKey(heatFunctionKey)) {
64       return true;
65     }
66     return false;
67   }
68
69 }
70