package adapter; import model.Board; import observer.IObservable; import observer.IObserver; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; /** * Created by loic on 21/09/16. */ public class ModelAdapter implements IModelAdapter, IObservable{ private Board model; private Collection observers; public ModelAdapter(Board model){ this.model=model; observers = new ArrayList(); } @Override public void goUp() { model.goUp(); this.notifyObservers(); } @Override public void goDown() { model.goDown(); this.notifyObservers(); } @Override public void goLeft() { model.goLeft(); this.notifyObservers(); } @Override public void goRight() { model.goRight(); this.notifyObservers(); } @Override public boolean isLoosed() { return this.model.isLoosed(); } public void addRandomNumber() { this.model.addRandomNumber(); this.notifyObservers(); } @Override public void addObserver(IObserver observer) { this.observers.add(observer); } @Override public void removeObserver(IObserver observer) { this.observers.remove(observer); } @Override public void notifyObservers() { Iterator i=this.observers.iterator(); while(i.hasNext()){ i.next().update(); } } }