HelpFunctions.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package psoAlgoCode;
  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import classes.AbstractCpsObject;
  5. import classes.CpsEdge;
  6. import classes.CpsUpperNode;
  7. import classes.HolonBattery;
  8. import classes.HolonObject;
  9. import classes.HolonSwitch;
  10. import classes.SubNet;
  11. import classes.comparator.EnergyMinToMaxComparator;
  12. import classes.comparator.MinEnergyComparator;
  13. import classes.comparator.WeakestBattery;
  14. import ui.model.Model;
  15. import ui.controller.Control;
  16. import ui.controller.SimulationManager;
  17. public class HelpFunctions {
  18. private ArrayList<AbstractCpsObject> objectsToHandle;
  19. static SimulateSimulator sim;
  20. public static void runRepairConnections(Model model) {
  21. repairAllEdgesOnMainCanvas(model);
  22. }
  23. private static void repairAllEdgesOnMainCanvas(Model model) {
  24. for (AbstractCpsObject obj : model.getObjectsOnCanvas()) {
  25. if (obj instanceof CpsUpperNode) {
  26. repairAllEdgesInUpperNode((CpsUpperNode) obj);
  27. }
  28. for (CpsEdge e : obj.getConnections()) {
  29. e.setWorkingState(true);
  30. }
  31. }
  32. }
  33. private static void repairAllEdgesInUpperNode(CpsUpperNode uNode) {
  34. for (AbstractCpsObject obj : uNode.getNodes()) {
  35. if (obj instanceof CpsUpperNode) {
  36. repairAllEdgesInUpperNode((CpsUpperNode) obj);
  37. }
  38. for (CpsEdge e : obj.getConnections()) {
  39. e.setWorkingState(true);
  40. }
  41. }
  42. }
  43. public static void calculateStateForTimeStepPSO(Model model, Control control) {
  44. //Was not in an if-clause in the students work... dont know why he generated a new simulator everytime the state for a timestep was calculated... maybe causes bugs?
  45. if(sim == null) {
  46. sim = new SimulateSimulator(model);
  47. }
  48. sim.calculateStateForTimeStep(model.getCurIteration());
  49. }
  50. public static ArrayList<SubNet> getCurrentSubnets(){
  51. return sim.getSubNets();
  52. }
  53. }