Create new VSP, onboard from TOSCA file - UI
[sdc.git] / openecomp-be / lib / openecomp-tosca-converter-lib / openecomp-tosca-converter-core / src / main / java / org / openecomp / core / impl / ToscaConverterManagerImpl.java
1 package org.openecomp.core.impl;
2
3 import org.openecomp.core.converter.ToscaConverter;
4 import org.openecomp.core.converter.api.ToscaConverterManager;
5 import org.openecomp.core.utilities.file.FileContentHandler;
6 import org.openecomp.core.utilities.file.FileUtils;
7 import org.openecomp.core.utilities.json.JsonUtil;
8 import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
9
10 import java.lang.reflect.Constructor;
11 import java.util.ArrayList;
12 import java.util.List;
13 import java.util.Map;
14
15 public class ToscaConverterManagerImpl implements ToscaConverterManager {
16
17   private static List<ToscaConverter> toscaConverters;
18   private static final String toscaConverterFileName = "ToscaConverters.json";
19
20   static {
21     toscaConverters = getConvertersList();
22   }
23
24   @Override
25   public ToscaServiceModel convert(String csarName, FileContentHandler fileContentHandler) {
26     return null;
27   }
28
29   private static List<ToscaConverter> getConvertersList(){
30     List<ToscaConverter> toscaConvertersList = new ArrayList<>();
31     Map<String, String> convertersMap = FileUtils.readViaInputStream(toscaConverterFileName,
32             stream -> JsonUtil.json2Object(stream, Map.class));
33     return getToscaConvertersList(toscaConvertersList, convertersMap);
34   }
35
36   private static List<ToscaConverter> getToscaConvertersList(
37       List<ToscaConverter> toscaConvertersList, Map<String, String> convertersMap) {
38     for(String implClassName : convertersMap.values()){
39       try{
40         Class<?> clazz = Class.forName(implClassName);
41         Constructor<?> constructor = clazz.getConstructor();
42         toscaConvertersList.add((ToscaConverter) constructor.newInstance());
43       }catch (Exception e){
44         continue;
45       }
46     }
47     return toscaConvertersList;
48   }
49 }