package ecoparasite.svg; import ecoparasite.representation.ValeursXY; import ecoparasite.svg.elements.Element; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.UUID; public class SVGFactory { static final private String EXPORT_PATH = "export/"; static final private String EXTENSION = ".svg"; /** * 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 */ public static boolean createSVG(ArrayList mesElements){ String code = createSVGCode(mesElements); try { createFile(code); } catch (Exception e) { return false; } return true; } /** * 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 */ public static boolean createSVG(ArrayList mesElements, String filename) { String code = createSVGCode(mesElements); try { createFile(code,filename); } catch (Exception e) { return false; } return true; } /** * 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 */ public static String createSVGCode(ArrayList mesElements){ String code = ""; for (Element e : mesElements){ code += e.toSVG(); } code += ""; return code; } /** * 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 */ public static void createFile(String data) throws IOException { String id = UUID.randomUUID().toString(); createFile(data,id); } /** * 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 */ 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."); } }