HolonObject.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. package classes;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import ui.controller.MultiPurposeController;
  5. import ui.model.idCounter;
  6. public class HolonObject extends CpsObject {
  7. /* Array of all consumers */
  8. private ArrayList<HolonElement> elements;
  9. /* Total of consumption */
  10. private float currentEnergy;
  11. private HashMap<String, Integer> EleIdx;
  12. /**
  13. * State of the building: 0 = fully supplied (currentEnergy == 0) 1 = not
  14. * enough energy (currentEnergy > 0) 2 = oversupplied (currentEnergy < 0)
  15. */
  16. int state;
  17. /**
  18. * Constructor Set by default the name of the object equals to the category
  19. * name, until the user changes it.
  20. */
  21. public HolonObject(String ObjName) {
  22. super(ObjName);
  23. setElements(new ArrayList<HolonElement>());
  24. setEleIdx(new HashMap<String,Integer>());
  25. }
  26. public HolonObject(String ObjName, String obj) {
  27. super(ObjName);
  28. super.setName(obj);
  29. setElements(new ArrayList<HolonElement>());
  30. setEleIdx(new HashMap<String,Integer>());
  31. }
  32. public HolonObject(CpsObject obj) {
  33. super(obj);
  34. setEleIdx(MultiPurposeController.copyHashMap(((HolonObject) obj).getEleIdx()));
  35. setElements(copyElements(((HolonObject)obj).getElements()));
  36. }
  37. /**
  38. * @return the elements
  39. */
  40. public ArrayList<HolonElement> getElements() {
  41. return elements;
  42. }
  43. /**
  44. * @param elements
  45. * the elements to set
  46. */
  47. public void setElements(ArrayList<HolonElement> elements) {
  48. this.elements = elements;
  49. }
  50. public void addElements(HolonElement element) {
  51. elements.add(element);
  52. }
  53. /**
  54. * @return the currentEnergy
  55. */
  56. public float getCurrentEnergy() {
  57. float temp = 0;
  58. for (HolonElement e : getElements()) {
  59. if (e.getActive()) {
  60. temp = temp + e.getTotalEnergy();
  61. }
  62. }
  63. currentEnergy = temp;
  64. return currentEnergy;
  65. }
  66. /**
  67. * @param currentEnergy
  68. * the currentEnergy to set
  69. */
  70. public void setCurrentEnergy(float currentEnergy) {
  71. this.currentEnergy = currentEnergy;
  72. }
  73. /**
  74. * deletes Element
  75. *
  76. * @param idx
  77. */
  78. public void deleteElement(int idx) {
  79. elements.remove(idx);
  80. }
  81. public float calculateCurrentEnergy() {
  82. return currentEnergy;
  83. }
  84. /**
  85. * String of all consumers in this HolonObject
  86. *
  87. * @return all the names of this HolonObject separated by "," each object
  88. */
  89. public String toStringElements() {
  90. String objString = "Empty";
  91. for (HolonElement e : elements) {
  92. if (objString == "Empty") {
  93. objString = e.getEleName();
  94. } else {
  95. objString = objString + ", " + e.getEleName();
  96. }
  97. }
  98. return objString;
  99. }
  100. /**
  101. * @return the eleIdx
  102. */
  103. public HashMap<String, Integer> getEleIdx() {
  104. return EleIdx;
  105. }
  106. /**
  107. * @param eleIdx the eleIdx to set
  108. */
  109. public void setEleIdx(HashMap<String, Integer> eleIdx) {
  110. EleIdx = eleIdx;
  111. }
  112. public ArrayList<HolonElement> copyElements(ArrayList<HolonElement> arr) {
  113. ArrayList<HolonElement> newArr = new ArrayList<>();
  114. for (HolonElement t : arr) {
  115. newArr.add(new HolonElement(t));
  116. }
  117. return newArr;
  118. }
  119. }