diff options
Diffstat (limited to 'src/main/java/adapter/ModelAdapter.java')
| -rw-r--r-- | src/main/java/adapter/ModelAdapter.java | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/main/java/adapter/ModelAdapter.java b/src/main/java/adapter/ModelAdapter.java new file mode 100644 index 0000000..1eac58a --- /dev/null +++ b/src/main/java/adapter/ModelAdapter.java @@ -0,0 +1,80 @@ +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<IObserver> observers; + + public ModelAdapter(Board model){ + this.model=model; + observers = new ArrayList<IObserver>(); + } + + @Override + public void goUp() { + model.goUp(); + model.addRandomNumber(); + this.notifyObservers(); + } + + @Override + public void goDown() { + model.goDown(); + model.addRandomNumber(); + this.notifyObservers(); + } + + @Override + public void goLeft() { + model.goLeft(); + model.addRandomNumber(); + this.notifyObservers(); + } + + @Override + public void goRight() { + model.goRight(); + model.addRandomNumber(); + 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<IObserver> i=this.observers.iterator(); + while(i.hasNext()){ + i.next().update(); + } + } +} |
