package sushi.csv.importer;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Serializable;
import java.util.List;
import sushi.event.SushiEvent;
import sushi.event.SushiEventType;
import sushi.event.collection.SushiMapTree;
public class CSVExporter {
public File generateExportFile(SushiEventType eventType, List<SushiEvent> events){
//create file
if(eventType.isHierarchical()){
return null;
}
File file = new File(System.getProperty("user.dir")+"/src/test/resources/" + eventType.getTypeName() + "export.csv");
try {
FileWriter writer = new FileWriter(file ,false);
List<String> attributeNames = eventType.getAttributeKeysFromMap();
writer.write(eventType.getTimestampName() + ";");
for(String attributeName : attributeNames){
writer.write(attributeName + ";");
}
for(SushiEvent event : events){
writer.write(System.getProperty("line.separator"));
writer.write(event.getTimestamp() + ";");
SushiMapTree<String, Serializable> tree = event.getValues();
for(String attributeName : attributeNames){
writer.write(tree.getValueOfAttribute(attributeName)+";");
}
}
//write stream to file
writer.flush();
// close the stream
writer.close();
} catch (IOException e1) {
e1.printStackTrace();
}
// define separator
//sep=;
// read column titles from event type
List<String> attributeNames = eventType.getAttributeKeysFromMap();
//read values of the chosen events
for(SushiEvent e : events){
SushiMapTree<String, Serializable> values = e.getValues();
// values.ge
}
return file;
}
}