164 public Set<String> keySet() { 165 return values.keySet(); 166 } 167 168 public int size() { 169 return values.size(); 170 } 171 172 // light-weight notification mechanism 173 174 private List<Runnable> listeners = List.nil(); 175 176 public void addListener(Runnable listener) { 177 listeners = listeners.prepend(listener); 178 } 179 180 public void notifyListeners() { 181 for (Runnable r: listeners) 182 r.run(); 183 } 184 } | 164 public Set<String> keySet() { 165 return values.keySet(); 166 } 167 168 public int size() { 169 return values.size(); 170 } 171 172 // light-weight notification mechanism 173 174 private List<Runnable> listeners = List.nil(); 175 176 public void addListener(Runnable listener) { 177 listeners = listeners.prepend(listener); 178 } 179 180 public void notifyListeners() { 181 for (Runnable r: listeners) 182 r.run(); 183 } 184 185 public void clear() { 186 values.clear(); 187 listeners = List.nil(); 188 } 189 } |