MinimumModel.java 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package ui.model;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import classes.AbstractCpsObject;
  5. import classes.CpsEdge;
  6. import classes.CpsNode;
  7. import classes.CpsUpperNode;
  8. import classes.HolonObject;
  9. import classes.HolonSwitch;
  10. import ui.model.DecoratedCable.CableState;
  11. /**
  12. * For DecoratedState And VisualRepresentationalState
  13. * @author Tom
  14. *
  15. */
  16. public class MinimumModel {
  17. private ArrayList<HolonObject> holonObjectList = new ArrayList<HolonObject>();
  18. private ArrayList<IntermediateCableWithState> cableList = new ArrayList<IntermediateCableWithState>();
  19. private ArrayList<CpsNode> nodeList = new ArrayList<CpsNode>();
  20. private ArrayList<HolonSwitch> switchList = new ArrayList<HolonSwitch>();
  21. //-->Only for Visual:
  22. private ArrayList<CpsUpperNode> uppderNodeList = new ArrayList<CpsUpperNode>();
  23. private HashMap<AbstractCpsObject, CpsUpperNode> inGroupObjects = new HashMap<>();
  24. private HashMap<CpsEdge, CpsUpperNode> inGroupEdges = new HashMap<>();
  25. //<--
  26. public MinimumModel(ArrayList<AbstractCpsObject> abstractObjectList, ArrayList<CpsEdge> edgeList) {// Constructor because of old Model
  27. for (AbstractCpsObject aCps : abstractObjectList) {
  28. if (aCps instanceof HolonObject) holonObjectList.add((HolonObject) aCps);
  29. else if (aCps instanceof CpsNode) nodeList.add((CpsNode) aCps);
  30. else if (aCps instanceof HolonSwitch) switchList.add((HolonSwitch) aCps);
  31. else if(aCps instanceof CpsUpperNode) {
  32. addUpperObjects((CpsUpperNode)aCps);
  33. uppderNodeList.add((CpsUpperNode)aCps);
  34. }
  35. }
  36. for (CpsEdge edge : edgeList) {
  37. this.cableList.add(new IntermediateCableWithState(edge, CableState.Working));
  38. }
  39. }
  40. private void addUpperObjects(CpsUpperNode aUpperNode) {
  41. for(AbstractCpsObject aCps : aUpperNode.getNodes()) {
  42. if (aCps instanceof HolonObject) holonObjectList.add((HolonObject) aCps);
  43. else if (aCps instanceof CpsNode) nodeList.add((CpsNode) aCps);
  44. else if (aCps instanceof HolonSwitch) switchList.add((HolonSwitch) aCps);
  45. else if(aCps instanceof CpsUpperNode) {
  46. addUpperObjects((CpsUpperNode)aCps);
  47. uppderNodeList.add((CpsUpperNode)aCps);
  48. }
  49. inGroupObjects.put(aCps, aUpperNode);
  50. }
  51. for (CpsEdge edge : aUpperNode.getNodeEdges()) {
  52. this.cableList.add(new IntermediateCableWithState(edge, CableState.Working));
  53. inGroupEdges.put(edge, aUpperNode);
  54. }
  55. for (CpsEdge edge : aUpperNode.getOldEdges()) {
  56. this.cableList.add(new IntermediateCableWithState(edge, CableState.Working));
  57. inGroupEdges.put(edge, aUpperNode);
  58. }
  59. }
  60. public ArrayList<HolonObject> getHolonObjectList() {
  61. return holonObjectList;
  62. }
  63. public void setHolonObjectList(ArrayList<HolonObject> holonObjectList) {
  64. this.holonObjectList = holonObjectList;
  65. }
  66. public ArrayList<IntermediateCableWithState> getEdgeList() {
  67. return cableList;
  68. }
  69. public void setEdgeList(ArrayList<IntermediateCableWithState> cableList) {
  70. this.cableList = cableList;
  71. }
  72. public ArrayList<CpsNode> getNodeList() {
  73. return nodeList;
  74. }
  75. public void setNodeList(ArrayList<CpsNode> nodeList) {
  76. this.nodeList = nodeList;
  77. }
  78. public ArrayList<HolonSwitch> getSwitchList() {
  79. return switchList;
  80. }
  81. public void setSwitchList(ArrayList<HolonSwitch> switchList) {
  82. this.switchList = switchList;
  83. }
  84. public ArrayList<CpsUpperNode> getUppderNodeList() {
  85. return uppderNodeList;
  86. }
  87. public HashMap<AbstractCpsObject, CpsUpperNode> getInGroupObjects() {
  88. return inGroupObjects;
  89. }
  90. public HashMap<CpsEdge, CpsUpperNode> getInGroupEdges() {
  91. return inGroupEdges;
  92. }
  93. }