64 lines
1.8 KiB
Java
64 lines
1.8 KiB
Java
package de.wwwu.awolf.presenter.data.io;
|
|
|
|
import com.opencsv.CSVWriter;
|
|
import de.wwwu.awolf.model.Line;
|
|
import de.wwwu.awolf.model.communication.Data;
|
|
import de.wwwu.awolf.presenter.util.Logging;
|
|
|
|
import java.io.File;
|
|
import java.io.FileWriter;
|
|
import java.io.IOException;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* 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 List<Line> lines;
|
|
private File file;
|
|
|
|
/**
|
|
* Konstruktor
|
|
*
|
|
* @param lines Liste der Geraden
|
|
* @param file Datei in die, die Informationen exportiert werden sollen
|
|
*/
|
|
public DataExporter(List<Line> 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() + ".");
|
|
}
|
|
}
|