001 package sysModel;
002
003 import model.ILambda;
004
005 import java.util.Observable;
006 import java.util.Observer;
007
008 /**
009 * Simulation engine that contains the observable and manages observers.
010 *
011 * @author Mathias Ricken
012 */
013 public class SimEngine {
014 /**
015 * The observable.
016 */
017 private Observable _observable = new Observable() {
018 public void notifyObservers(Object obj) {
019 setChanged();
020 super.notifyObservers(obj);
021 }
022 };
023
024 /**
025 * Add observer to simulation.
026 *
027 * @param observer observer to add
028 */
029 public void add(Observer observer) {
030 _observable.addObserver(observer);
031 }
032
033 /**
034 * Remove observer from simulation.
035 *
036 * @param observer observer to remove
037 */
038 public void delete(Observer observer) {
039 _observable.deleteObserver(observer);
040 }
041
042 /**
043 * Accept a lambda and pass it to all observers.
044 *
045 * @param lambda lambda to execute
046 */
047 public void notify(ILambda lambda) {
048 _observable.notifyObservers(lambda);
049 }
050
051 /**
052 * Clears all observers.
053 */
054 public void clear() {
055 _observable.deleteObservers();
056 }
057 }