1 /*
2 * The contents of this file are subject to the BT "ZEUS" Open Source
3 * Licence (L77741), Version 1.0 (the "Licence"); you may not use this file
4 * except in compliance with the Licence. You may obtain a copy of the Licence
5 * from $ZEUS_INSTALL/licence.html or alternatively from
6 * http://www.labs.bt.com/projects/agents/zeus/licence.htm
7 *
8 * Except as stated in Clause 7 of the Licence, software distributed under the
9 * Licence is distributed WITHOUT WARRANTY OF ANY KIND, either express or
10 * implied. See the Licence for the specific language governing rights and
11 * limitations under the Licence.
12 *
13 * The Original Code is within the package zeus.*.
14 * The Initial Developer of the Original Code is British Telecommunications
15 * public limited company, whose registered office is at 81 Newgate Street,
16 * London, EC1A 7AJ, England. Portions created by British Telecommunications
17 * public limited company are Copyright 1996-9. All Rights Reserved.
18 *
19 * THIS NOTICE MUST BE INCLUDED ON ANY COPY OF THIS FILE
20 */
21
22
23
24 package zeus.concepts;
25
26 import java.util.*;
27
28
29 public class AddressBook extends Hashtable {
30
31 private Vector listeners = new Vector();
32
33 // Default Constructor: public AddressBook()
34
35 public boolean add(Address addr) {
36 Address obj;
37 put(addr.getName(), addr); // simplified for expediency
38 try {
39 Iterator allListeners = listeners.iterator();
40 while (allListeners.hasNext()) {
41 AddressListener current = (AddressListener) allListeners.next();
42 AddressEvent event = new AddressEvent(addr);
43 current.newAddress(event);
44 }}
45 catch (Exception e) {
46 e.printStackTrace(); }
47
48 return true;
49 }
50
51 public void replace(Address addr) {
52 this.put(addr.getName(), addr);
53 try {
54 Iterator allListeners = listeners.iterator();
55 while (allListeners.hasNext()) {
56 AddressListener current = (AddressListener) allListeners.next();
57 AddressEvent event = new AddressEvent(addr);
58 current.replaceAddress(event);
59 }}
60 catch (Exception e) {
61 e.printStackTrace(); }
62 }
63
64 public void del(Address addr) {
65 this.remove(addr.getName());
66 try {
67 Iterator allListeners = listeners.iterator();
68 while (allListeners.hasNext()) {
69 AddressListener current = (AddressListener) allListeners.next();
70 AddressEvent event = new AddressEvent(addr);
71 current.deleteAddress(event);
72 }}
73 catch (Exception e) {
74 e.printStackTrace(); }
75 }
76
77 public void del(String name) {
78 this.remove(name) ;
79 }
80
81 public Address lookup( String name ) {
82 return (Address) this.get(name);
83 }
84
85 public void addAddressListener(AddressListener listen) {
86 listeners.addElement(listen);
87 }
88
89 public void removeAddressListener(AddressListener listen) {
90 listeners.removeElement(listen);
91 }
92 }