View Javadoc

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  }