package de.wwwu.awolf.presenter.algorithms; import de.wwwu.awolf.model.Line; import de.wwwu.awolf.model.communication.Data; import de.wwwu.awolf.presenter.AbstractPresenter; import java.util.Set; import java.util.concurrent.Callable; import java.util.concurrent.Flow; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. * * @Author: Armin Wolf * @Email: a_wolf28@uni-muenster.de * @Date: 28.05.2017. */ public interface Algorithm extends Callable, Flow.Publisher { /** * Startet die Berechnung des jeweiligen Algorithmus. */ @Override Line call(); enum Type { LMS("Least Median of Squares"), RM("Repeated Median"), TS("Theil-Sen"), NAIV_LMS("Brute Force (LMS)"), NAIV_RM("Brute Force (RM)"), NAIV_TS("Brute Force (TS)"); public final String name; Type(String name) { this.name = name; } public String getName() { return name; } } void setInput(final Set lines); Algorithm.Type getType(); void setPresenter(AbstractPresenter presenter); }