algorithms-for-computing-li.../LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/data/io/DataExporter.java

62 lines
1.8 KiB
Java
Raw Normal View History

2020-03-21 19:54:03 +00:00
package de.wwwu.awolf.presenter.data.io;
2017-08-03 18:37:59 +00:00
import com.opencsv.CSVWriter;
2020-03-21 00:37:09 +00:00
import de.wwwu.awolf.model.Line;
import de.wwwu.awolf.presenter.util.Logging;
2017-08-03 18:37:59 +00:00
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Set;
2017-08-03 18:37:59 +00:00
/**
* Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden.
*
* @Author: Armin Wolf
* @Email: a_wolf28@uni-muenster.de
* @Date: 03.08.2017.
*/
2020-03-21 19:54:03 +00:00
public class DataExporter implements Runnable {
2017-08-03 18:37:59 +00:00
private Set<Line> lines;
2017-08-03 18:37:59 +00:00
private File file;
/**
* Konstruktor
2020-03-20 17:08:18 +00:00
*
* @param lines Liste der Geraden
* @param file Datei in die, die Informationen exportiert werden sollen
*/
public DataExporter(Set<Line> lines, File file) {
2017-08-03 18:37:59 +00:00
this.file = file;
this.lines = lines;
2017-08-03 18:37:59 +00:00
}
/**
2020-04-05 18:53:52 +00:00
* 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.
*/
2020-03-21 19:54:03 +00:00
@Override
public void run() {
2017-08-03 18:37:59 +00:00
CSVWriter writer = null;
try {
2020-03-23 06:58:40 +00:00
writer = new CSVWriter(new FileWriter(file));
2017-08-03 18:37:59 +00:00
String[] entries = new String[3];
for (Line line : lines) {
2017-08-03 18:37:59 +00:00
entries[0] = line.getId();
entries[1] = line.getM().toString();
2020-03-21 00:37:09 +00:00
double tmp = (-1) * line.getB();
entries[2] = Double.toString(tmp);
2017-08-03 18:37:59 +00:00
writer.writeNext(entries);
}
writer.close();
2020-03-21 00:37:09 +00:00
2017-08-03 18:37:59 +00:00
} catch (IOException e) {
2020-03-21 00:37:09 +00:00
Logging.logError(e.getMessage(), e);
2017-08-03 18:37:59 +00:00
}
2020-04-05 18:53:52 +00:00
Logging.logInfo(
"The model has been successfully saved under: " + file.getAbsolutePath() + ".");
2020-03-21 00:37:09 +00:00
}
2017-08-03 18:37:59 +00:00
}