aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterManagerImpl.java
blob: 520e41817e8d2c05bd6d87bc264a4cf897146aae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package org.openecomp.core.impl;

import org.openecomp.core.converter.ToscaConverter;
import org.openecomp.core.converter.api.ToscaConverterManager;
import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.core.utilities.file.FileUtils;
import org.openecomp.core.utilities.json.JsonUtil;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;

import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class ToscaConverterManagerImpl implements ToscaConverterManager {

  private static List<ToscaConverter> toscaConverters;
  private static final String toscaConverterFileName = "ToscaConverters.json";

  static {
    toscaConverters = getConvertersList();
  }

  @Override
  public ToscaServiceModel convert(String csarName, FileContentHandler fileContentHandler) {
    return null;
  }

  private static List<ToscaConverter> getConvertersList(){
    List<ToscaConverter> toscaConvertersList = new ArrayList<>();
    Map<String, String> convertersMap = FileUtils.readViaInputStream(toscaConverterFileName,
            stream -> JsonUtil.json2Object(stream, Map.class));
    return getToscaConvertersList(toscaConvertersList, convertersMap);
  }

  private static List<ToscaConverter> getToscaConvertersList(
      List<ToscaConverter> toscaConvertersList, Map<String, String> convertersMap) {
    for(String implClassName : convertersMap.values()){
      try{
        Class<?> clazz = Class.forName(implClassName);
        Constructor<?> constructor = clazz.getConstructor();
        toscaConvertersList.add((ToscaConverter) constructor.newInstance());
      }catch (Exception e){
        continue;
      }
    }
    return toscaConvertersList;
  }
}