package de._82grfl1bif.KPI_Visualizer.data; import de._82grfl1bif.KPI_Visualizer.structures.Building; import de._82grfl1bif.KPI_Visualizer.structures.Foundation; import de._82grfl1bif.KPI_Visualizer.structures.Structure; import org.bukkit.Material; import java.util.ArrayList; import java.util.concurrent.ThreadLocalRandom; public class DataHolder { public static Foundation foundation = new Foundation(0, Material.COBBLESTONE); @Deprecated public static void generateSimpleData(int buildingCount) { foundation.removeChildren(); ArrayList buildings = new ArrayList<>(); for (int c = 0; c < buildingCount; c++) { buildings.add(generateBuilding()); } foundation.addChildren(buildings); foundation.optimizeLayout(); } @Deprecated public static void ComplexData() { Foundation foundation3 = new Foundation(3, Material.BLACK_CONCRETE); ArrayList buildings3 = new ArrayList<>(); for (int i = 0; i < 5; i++) { buildings3.add(generateBuilding()); } foundation3.addChildren(buildings3); ArrayList buildings2_1 = new ArrayList<>(); Foundation foundation2_1 = new Foundation(2, Material.BROWN_CONCRETE); for (int i = 0; i < 5; i++) { buildings2_1.add(generateBuilding()); } buildings2_1.add(foundation3); foundation2_1.addChildren(buildings2_1); ArrayList buildings2_2 = new ArrayList<>(); Foundation foundation2_2 = new Foundation(2, Material.LIGHT_GRAY_CONCRETE); for (int i = 0; i < 5; i++) { buildings2_2.add(generateBuilding()); } foundation2_2.addChildren(buildings2_2); ArrayList buildings1 = new ArrayList<>(); Foundation foundation1 = new Foundation(1, Material.GRAY_CONCRETE); for (int i = 0; i < 5; i++) { buildings1.add(generateBuilding()); } buildings1.add(foundation2_1); buildings1.add(foundation2_2); foundation1.addChildren(buildings1); ArrayList buildings0 = new ArrayList<>(); for (int i = 0; i < 5; i++) { buildings1.add(generateBuilding()); } buildings0.add(foundation1); foundation = new Foundation(0, Material.COBBLESTONE); foundation.addChildren(buildings0); foundation.setDepth(0); } public static void generateTreeFromKlassenList(ArrayList klassen) { foundation = new Foundation(0, Material.YELLOW_CONCRETE); ArrayList Pakete = new ArrayList<>(); for (Klasse currentKlasse : klassen) { if (currentKlasse.depth >= 0) { String[] strings = currentKlasse.path.split("/"); Foundation f = foundation; StringBuilder sb = new StringBuilder(); for (int i = 2; i < currentKlasse.depth + 2; i++) { sb.append(strings[i]); if (!(strings[i].contains(".java"))){//is foundation sb.append("/"); } if (foundation.getFromTree(sb.toString()) == null) {// checks Tree for Element doesn't find it if (strings[i].contains(".java")) {//is not foundation f.generateChild(false, currentKlasse, sb.toString()); f = foundation; } else { f = (Foundation) f.generateChild(true,currentKlasse,sb.toString()); } }else{//finds Element in tree if ((foundation.getFromTree(sb.toString()).getClass() == Foundation.class)){ f = (Foundation) foundation.getFromTree(sb.toString()); } } } } } } private static Building generateBuilding() { Building result = new Building(ThreadLocalRandom.current().nextInt(4, 60 + 1), ThreadLocalRandom.current().nextInt(4, 200 + 1), Material.LIME_CONCRETE); result.setLocation(foundation.getLocation()); return result; } }