MultiPurposeController.java 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. package ui.controller;
  2. import java.util.HashMap;
  3. import java.util.Map.Entry;
  4. import classes.Category;
  5. import classes.CpsObject;
  6. import classes.HolonElement;
  7. import classes.HolonObject;
  8. import ui.model.Model;
  9. public class MultiPurposeController {
  10. private Model MODEL;
  11. public MultiPurposeController(Model model) {
  12. this.MODEL = model;
  13. }
  14. /**
  15. * search for category
  16. *
  17. * @param name
  18. * @return
  19. */
  20. public Category searchCategory(String category) {
  21. Integer idx;
  22. if ((idx = MODEL.getCgIdx().get(category)) == null || MODEL.getCgIdx().size() < 1 )
  23. return null;
  24. else
  25. return MODEL.getCategories().get(idx);
  26. }
  27. /**
  28. * Search for Object
  29. *
  30. * @param object
  31. * @param list
  32. * @return
  33. */
  34. public CpsObject searchCategoryObject(Category category, String object) {
  35. Integer idx;
  36. if ((idx = category.getObjIdx().get(object)) == null || category.getObjIdx().size() < 1)
  37. return null;
  38. else
  39. return category.getObjects().get(idx);
  40. }
  41. /**
  42. * Search for Object by ID
  43. *
  44. * @param ID
  45. * @param list
  46. * @return
  47. */
  48. public CpsObject searchByID(int ID) {
  49. Integer idx;
  50. if ((idx = MODEL.getCvsObjIdx().get(ID)) == null || MODEL.getCvsObjIdx().size() < 1)
  51. return null;
  52. else
  53. return MODEL.getObjectsOnCanvas().get(idx);
  54. }
  55. /**
  56. * Search for Element
  57. *
  58. * @param object
  59. * @param element
  60. * @return
  61. */
  62. public HolonElement searchHolonElement(HolonObject object, String element) {
  63. Integer idx;
  64. if ((idx = object.getEleIdx().get(element)) == null || object.getEleIdx().size() < 1)
  65. return null;
  66. else
  67. return object.getElements().get(idx);
  68. }
  69. /**
  70. * Decrement the Indices if a Key as been removed
  71. *
  72. * @param key
  73. * @param map
  74. */
  75. public <T> void decIdx(T key, HashMap<T, Integer> map) {
  76. for (Entry<T, Integer> i : map.entrySet()) {
  77. if (i.getValue() > map.get(key))
  78. i.setValue(i.getValue() - 1);
  79. }
  80. }
  81. /**
  82. * Copies a HashMap into a new One
  83. *
  84. * @param map
  85. * @return
  86. */
  87. public static <T, Integer> HashMap<T, Integer> copyHashMap(HashMap<T, Integer> map) {
  88. HashMap<T, Integer> newMap = new HashMap<>();
  89. for (Entry<T, Integer> i : map.entrySet()) {
  90. newMap.put(i.getKey(), i.getValue());
  91. }
  92. return newMap;
  93. }
  94. }