Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. package serie04;
  2.  
  3. import java.util.Collections;
  4. import java.util.LinkedList;
  5. import java.util.List;
  6. import java.util.NavigableMap;
  7. import java.util.NavigableSet;
  8. import java.util.TreeMap;
  9.  
  10. import util.Contract;
  11.  
  12. public class StdPhoneBook implements PhoneBook {
  13.  
  14. // ATTRIBUTS
  15.  
  16. private NavigableMap<Contact,List<String>> data;
  17.  
  18. // CONSTRUCTEUR
  19.  
  20. public StdPhoneBook() {
  21. data = new TreeMap<Contact,List<String>>();
  22. }
  23.  
  24.  
  25. // REQUETES
  26.  
  27. @Override
  28. public String firstPhoneNumber(Contact p) {
  29. Contract.checkCondition(p != null && contains(p));
  30. return data.get(p).get(0) ;
  31. }
  32.  
  33. @Override
  34. public List<String> phoneNumbers(Contact p) {
  35. Contract.checkCondition(p != null && contains(p));
  36. List<String> immutableList = Collections.unmodifiableList(data.get(p));
  37. return immutableList;
  38. }
  39.  
  40. @Override
  41. public NavigableSet<Contact> contacts() {
  42. return data.navigableKeySet();
  43. }
  44.  
  45. @Override
  46. public boolean contains(Contact p) {
  47. Contract.checkCondition(p != null);
  48. return data.containsKey(p);
  49. }
  50.  
  51. @Override
  52. public boolean isEmpty() {
  53. return data.isEmpty();
  54. }
  55.  
  56. // COMMANDES
  57.  
  58. @Override
  59.  
  60. public void addEntry(Contact p, List<String> nums) {
  61. Contract.checkCondition(p != null && !contains(p));
  62. Contract.checkCondition(nums != null && (nums.size()) > 0);
  63. LinkedList<String> ll = new LinkedList<String>();
  64. for (String element : nums) {
  65. if (!ll.contains(element)) {
  66. ll.add(element);
  67. }
  68. }
  69. data.put(p, ll);
  70. }
  71.  
  72.  
  73. @Override
  74. public void addPhoneNumber(Contact p, String n) {
  75. Contract.checkCondition(p != null);
  76. Contract.checkCondition(n != null && !n.equals(""));
  77. if(contains(p)) {
  78. if(!data.get(p).contains(n)) {
  79. data.get(p).add(n);
  80. }
  81. }
  82. else {
  83. LinkedList<String> l = new LinkedList<String>();
  84. l.add(n);
  85. data.put(p, l);
  86. }
  87.  
  88. }
  89.  
  90. @Override
  91. public void removeEntry(Contact p) {
  92. Contract.checkCondition(p != null && contains(p));
  93. data.remove(p);
  94. }
  95.  
  96. @Override
  97. public void deletePhoneNumber(Contact p, String n) {
  98. Contract.checkCondition(p != null && contains(p));
  99. Contract.checkCondition(n != null && !n.equals(""));
  100. if(data.get(p).contains(n)) {
  101. if(data.get(p).size() == 1) {
  102. removeEntry(p);
  103. }
  104. else {
  105. data.get(p).remove(n);
  106. }
  107. }
  108.  
  109. }
  110.  
  111. @Override
  112. public void clear() {
  113. data.clear();
  114. }
  115.  
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement