HelpFunctions.java 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. sim = new SimulateSimulator(model);
  45. sim.calculateStateForTimeStep(model.getCurIteration());
  46. }
  47. public static ArrayList<SubNet> getCurrentSubnets(){
  48. return sim.getSubNets();
  49. }
  50. }