Skip to content
Snippets Groups Projects
Commit 5848c58d authored by Matias Mennecart's avatar Matias Mennecart
Browse files

Ajouts des methodes de ClassificationModel

parent c80b3169
No related branches found
No related tags found
No related merge requests found
......@@ -31,7 +31,7 @@
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.4</version>
<configuration>
<mainClass>fr.univlille.sae.classification.view.MainStage</mainClass>
<mainClass>fr.univlille.sae.classification.Main</mainClass>
</configuration>
</plugin>
</plugins>
......
......@@ -3,12 +3,9 @@ package fr.univlille.sae.classification;
import fr.univlille.sae.classification.model.ClassificationModel;
import fr.univlille.sae.classification.view.MainStageView;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import java.io.File;
import java.io.IOException;
import java.net.URL;
public class Main extends Application {
......
......@@ -3,14 +3,12 @@ package fr.univlille.sae.classification.model;
import com.opencsv.bean.CsvToBeanBuilder;
import fr.univlille.sae.classification.utils.Observable;
import javax.xml.crypto.Data;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Set;
import java.util.*;
public class ClassificationModel extends Observable {
......@@ -18,18 +16,28 @@ public class ClassificationModel extends Observable {
private List<LoadableData> datas;
private List<LoadableData> dataToClass;
private DataType type;
public ClassificationModel() {
this.datas = new ArrayList<>();
this(DataType.IRIS);
}
public ClassificationModel(DataType type) {
this.datas = new ArrayList<>();
this.dataToClass = new ArrayList<>();
this.type = type;
}
/**
* TODO
* @param x
* @param y
* Ajoute un point au nuage de points avec toutes les données de ce point
* @param coords toutes les données du points
* @throws IllegalArgumentException Exception levée si le nombre de parametres est insuffisant pour creer un point du type du model
*/
private void ajouterDonnee(double x, double y) {
private void ajouterDonnee(double... coords) {
LoadableData newData = PointFactory.createPoint(type, coords);
this.dataToClass.add(newData);
notifyObservers(newData);
}
......@@ -42,6 +50,13 @@ public class ClassificationModel extends Observable {
.withSeparator(',')
.withType(Iris.class)
.build().parse();
Set<String> types = new HashSet<>();
for (LoadableData d : datas) {
types.add(d.getClassification());
}
LoadableData.setClassificationTypes(types);
notifyObservers();
}
/**
......@@ -53,6 +68,7 @@ public class ClassificationModel extends Observable {
List<String> classes = new ArrayList<>(data.getClassificationTypes());
Random rdm = new Random();
data.setClassification(classes.get(rdm.nextInt(classes.size())));
notifyObservers(data);
}
}
package fr.univlille.sae.classification.model;
public enum DataType {
IRIS;
}
......@@ -2,23 +2,28 @@ package fr.univlille.sae.classification.model;
import java.util.Set;
public class LoadableData {
public abstract class LoadableData {
private static Set<String> classificationTypes;
private String classification;
public LoadableData() {
protected LoadableData() {
}
public String getClassification() {
return this.classification;
}
Set<String> getClassificationTypes() {
public static Set<String> getClassificationTypes() {
return classificationTypes;
}
void setClassification(String classification) {
public static void setClassificationTypes(Set<String> classificationTypes) {
LoadableData.classificationTypes = classificationTypes;
}
public void setClassification(String classification) {
this.classification = classification;
}
......
package fr.univlille.sae.classification.model;
public class PointFactory {
public static LoadableData createPoint(DataType type, double[] coords) {
int size = coords.length;
LoadableData data;
switch (type) {
case IRIS:
if(size != 4) throw new IllegalArgumentException();
data = new Iris(coords[0],coords[1],coords[2],coords[3]);
break;
default:
throw new IllegalArgumentException();
}
return data;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment