Files
ecoparasite-data-analyse/src/ecoparasite/svg/SVGFactory.java

107 lines
3.0 KiB
Java
Raw Normal View History

2026-04-08 14:47:42 +02:00
package ecoparasite.svg;
2026-04-08 16:00:42 +02:00
import ecoparasite.representation.ValeursXY;
2026-04-08 14:47:42 +02:00
import ecoparasite.svg.elements.Element;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
2026-04-08 16:00:42 +02:00
import java.util.HashMap;
import java.util.HashSet;
2026-04-08 14:47:42 +02:00
import java.util.UUID;
public class SVGFactory {
static final private String EXPORT_PATH = "export/";
static final private String EXTENSION = ".svg";
2026-04-22 11:17:31 +02:00
/**
* Permet la création du fichier SVG
* @param mesElements un array des elements à ajouter dans le svg
* @return True si la création est un succès, False sinon
*/
2026-04-08 14:47:42 +02:00
public static boolean createSVG(ArrayList<Element> mesElements){
String code = createSVGCode(mesElements);
try {
createFile(code);
} catch (Exception e) {
return false;
}
return true;
}
2026-04-22 11:17:31 +02:00
/**
* Permet la création du fichier SVG (Polymorphisme pour ajouter un nom de fichier)
* @param mesElements un Array des elements à ajouter dans le SVG
* @param filename une String représentant le nom du fichier choisi
* @return True si la création est un succès, False sinon
*/
2026-04-08 14:47:42 +02:00
public static boolean createSVG(ArrayList<Element> mesElements, String filename) {
String code = createSVGCode(mesElements);
try {
createFile(code,filename);
} catch (Exception e) {
return false;
}
return true;
}
2026-04-22 11:17:31 +02:00
/**
* Fonction basique de transformation des éléments en code SVG
* @param mesElements un array contenant les éléments à mettre dans le svg
* @return une String contenant la totalité du code SVG de notre graphique
*/
2026-04-08 14:47:42 +02:00
public static String createSVGCode(ArrayList<Element> mesElements){
String code = "<svg height=\"800\" width=\"800\" >";
for (Element e : mesElements){
code += e.toSVG();
}
code += "</svg>";
return code;
}
2026-04-22 11:17:31 +02:00
/**
* fonction qui créer le fichier, ici avec une ID random comme nom de fichier
* @param data une String contenant le contenue du fichier désiré (ici pour le SVG)
* @throws IOException Déclenché par un échec de la création du fichier
*/
2026-04-08 14:47:42 +02:00
public static void createFile(String data) throws IOException {
String id = UUID.randomUUID().toString();
createFile(data,id);
}
2026-04-22 11:17:31 +02:00
/**
* Permet la création du fichier
* @param data une String contenant le contenue du fichier désiré
* @param filename une String contenant le nom du fichier voulu
* @throws IOException Déclenché par un échec de la création du fichier
*/
2026-04-08 14:47:42 +02:00
public static void createFile(String data, String filename) throws IOException {
// create a FileWriter object with the file name
FileWriter writer = new FileWriter(EXPORT_PATH + filename + EXTENSION);
// write the string to the file
writer.write(data);
// close the writer
writer.close();
System.out.println("Successfully wrote text to file.");
}
}