package joshie.progression.handlers; import joshie.progression.Progression; import joshie.progression.helpers.FileHelper; import joshie.progression.json.DataCriteria; import joshie.progression.json.DataTab; import joshie.progression.json.JSONLoader; import org.apache.commons.io.FileUtils; import org.apache.logging.log4j.Level; import java.io.File; import java.util.ArrayList; import java.util.Collection; import java.util.List; public class TemplateHandler { private static List<DataTab> tabs = new ArrayList<DataTab>(); private static List<DataCriteria> criterias = new ArrayList<DataCriteria>(); public static boolean registerTab(DataTab tab) { if (tab == null) return false; tabs.add(tab); return true; } public static boolean registerCriteria(DataCriteria criteria) { if (criteria == null) return false; criterias.add(criteria); return true; } public static List<DataTab> getTabs() { return tabs; } public static List<DataCriteria> getCriteria() { return criterias; } public static void init() { //Load in the tabs Collection<File> files = FileUtils.listFiles(FileHelper.getTemplatesFolder("tab", null), new String[] { "json" }, false); for (File file : files) { try { String json = FileUtils.readFileToString(file); DataTab tab = JSONLoader.getGson().fromJson(json, DataTab.class); if (tab != null) { Progression.logger.log(Level.INFO, "Loaded in the template for the criteria: " + tab.getName()); registerTab(tab); } } catch (Exception e) { e.printStackTrace(); } } //Load in the criteria //Load in the tabs files = FileUtils.listFiles(FileHelper.getTemplatesFolder("criteria", null), new String[] { "json" }, false); for (File file : files) { try { String json = FileUtils.readFileToString(file); DataCriteria criteria = JSONLoader.getGson().fromJson(json, DataCriteria.class); if (criteria != null) { Progression.logger.log(Level.INFO, "Loaded in the template for the criteria: " + criteria.getName()); registerCriteria(criteria); } } catch (Exception e) { e.printStackTrace(); } } } }