Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package serie04;
- import java.util.Collections;
- import java.util.LinkedList;
- import java.util.List;
- import java.util.NavigableMap;
- import java.util.NavigableSet;
- import java.util.TreeMap;
- import util.Contract;
- public class StdPhoneBook implements PhoneBook {
- // ATTRIBUTS
- private NavigableMap<Contact,List<String>> data;
- // CONSTRUCTEUR
- public StdPhoneBook() {
- data = new TreeMap<Contact,List<String>>();
- }
- // REQUETES
- @Override
- public String firstPhoneNumber(Contact p) {
- Contract.checkCondition(p != null && contains(p));
- return data.get(p).get(0) ;
- }
- @Override
- public List<String> phoneNumbers(Contact p) {
- Contract.checkCondition(p != null && contains(p));
- List<String> immutableList = Collections.unmodifiableList(data.get(p));
- return immutableList;
- }
- @Override
- public NavigableSet<Contact> contacts() {
- return data.navigableKeySet();
- }
- @Override
- public boolean contains(Contact p) {
- Contract.checkCondition(p != null);
- return data.containsKey(p);
- }
- @Override
- public boolean isEmpty() {
- return data.isEmpty();
- }
- // COMMANDES
- @Override
- public void addEntry(Contact p, List<String> nums) {
- Contract.checkCondition(p != null && !contains(p));
- Contract.checkCondition(nums != null && (nums.size()) > 0);
- LinkedList<String> ll = new LinkedList<String>();
- for (String element : nums) {
- if (!ll.contains(element)) {
- ll.add(element);
- }
- }
- data.put(p, ll);
- }
- @Override
- public void addPhoneNumber(Contact p, String n) {
- Contract.checkCondition(p != null);
- Contract.checkCondition(n != null && !n.equals(""));
- if(contains(p)) {
- if(!data.get(p).contains(n)) {
- data.get(p).add(n);
- }
- }
- else {
- LinkedList<String> l = new LinkedList<String>();
- l.add(n);
- data.put(p, l);
- }
- }
- @Override
- public void removeEntry(Contact p) {
- Contract.checkCondition(p != null && contains(p));
- data.remove(p);
- }
- @Override
- public void deletePhoneNumber(Contact p, String n) {
- Contract.checkCondition(p != null && contains(p));
- Contract.checkCondition(n != null && !n.equals(""));
- if(data.get(p).contains(n)) {
- if(data.get(p).size() == 1) {
- removeEntry(p);
- }
- else {
- data.get(p).remove(n);
- }
- }
- }
- @Override
- public void clear() {
- data.clear();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement