package de.wwwu.awolf.presenter.data.io; import com.opencsv.CSVWriter; import de.wwwu.awolf.model.Line; import de.wwwu.awolf.presenter.util.Logging; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Set; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. * * @Author: Armin Wolf * @Email: a_wolf28@uni-muenster.de * @Date: 03.08.2017. */ public class DataExporter implements Runnable { private Set lines; private File file; /** * Konstruktor * * @param lines Liste der Geraden * @param file Datei in die, die Informationen exportiert werden sollen */ public DataExporter(Set lines, File file) { this.file = file; this.lines = lines; } /** * Diese Methode schreibt die Geraden der Form: y = mx + b, in eine Komma-Separierte Datei (CSV). Der Aufbau der Datei ist: id, m, b. Wenn der Export beendet wurde wird die Beobachter-Klasse * informiert. In diesem Fall ist dies die Presenter Klasse. */ @Override public void run() { CSVWriter writer = null; try { writer = new CSVWriter(new FileWriter(file)); String[] entries = new String[3]; for (Line line : lines) { entries[0] = line.getId(); entries[1] = line.getM().toString(); double tmp = (-1) * line.getB(); entries[2] = Double.toString(tmp); writer.writeNext(entries); } writer.close(); } catch (IOException e) { Logging.logError(e.getMessage(), e); } Logging.logInfo( "The model has been successfully saved under: " + file.getAbsolutePath() + "."); } }