in gremlin/neptune-social-media-utils/src/main/java/com/aws/neptune/utils/generator/GSONUtil.java [62:98]
public static BatchImporterDataMap toDataMap(String csvConfigFile){
BatchImporterDataMap bmDataMap = new BatchImporterDataMap();
CSVConfig csvConf = CSVGenerator.loadConfig(csvConfigFile);
for(VertexTypeBean type: csvConf.VertexTypes){
String vertexFileName = type.name + ".csv";
VertexMapBean vertex = new VertexMapBean(type.name);
for (String key: type.columns.keySet()){
vertex.maps.put(key, key);
}
bmDataMap.vertexMap.put(vertexFileName,vertex.maps);
}
for(EdgeTypeBean type: csvConf.EdgeTypes){
for (RelationBean relation: type.relations) {
/*Ex: <left-label>_<edgeType>_<right-label>_edges.csv */
String edgeFileName = String.join("_",
relation.left,
type.name,
relation.right,
"edges.csv");
EdgeMapBean vertex = new EdgeMapBean(type.name);
Map<String, String> subMap = new HashMap<>();
Map<String, String> subMap2 = new HashMap<>();
subMap.put("Left", relation.left + ".node_id");
vertex.maps.put("[edge_left]", subMap);
subMap2.put("Right", relation.right + ".node_id");
vertex.maps.put("[edge_right]", subMap2);
if (type.columns != null) {
for (String key : type.columns.keySet()) {
vertex.maps.put(key, key);
}
}
bmDataMap.edgeMap.put(edgeFileName,vertex.maps);
}
}
return bmDataMap;
}