ObservableStore.java

import java.util.Observable;
import store.*;

abstract public class ObservableStore extends Observable implements STORE, Cloneable {
   STORE store;
   public void add(Object o) {
      store.add(o);
      setChanged();
      notifyObservers(new Notification("added",o));
   }
   public boolean isEmpty() {return store.isEmpty();}
   public void addAll(Object[] a) {
      store.addAll(a);
      setChanged(); 
      notifyObservers(new Notification("addedAll",a));
   };
   public Object remove() {
      if (store.isEmpty()) return null;
      Object obj = store.remove();
      setChanged();
      notifyObservers(new Notification("removed",obj));
      return obj;
  }
  public String toString (){return store.toString();}
  public void execute(FUNCTION f) { store.execute(f); }
  public STORE map(FUNCTION f) {
     ObservableStore obsstore = null;
     try {obsstore = (ObservableStore)this.clone();}
     catch (Exception e) {new InternalError(e.getMessage());}
     obsstore.store = store.map(f);
     return obsstore;
  }
  public int size() { return store.size(); }
}


On to ObservableStack.java Part of obsstore
Hubert Baumeister
June 21, 1997

Imprint | Data Protection