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 }