@@ -0,0 +1,643 @@
+package com.azabani.java.rover;%0A%0Aimport com.azabani.java.rover.fake.Camera;%0Aimport java.util.List;%0Aimport java.util.LinkedList;%0A%0Apublic class ConcreteCamera extends Camera%0A%09implements ObservableDevice %7B%0A%09private List%3CDeviceObserver%3E observers;%0A%09public ConcreteCamera() %7B%0A%09%09observers = new LinkedList%3CDeviceObserver%3E();%0A%09%7D%0A%09protected void photoReady(char%5B%5D photoData) %7B%0A%09%09notifyObservers(photoData);%0A%09%7D%0A%09public void addObserver(DeviceObserver o) %7B%0A%09%09observers.add(o);%0A%09%7D%0A%09public void deleteObserver(DeviceObserver o) %7B%0A%09%09observers.remove(o);%0A%09%7D%0A%09public void notifyObservers(Object x) %7B%0A%09%09for (DeviceObserver o : observers)%0A%09%09%09o.update(x);%0A%09%7D%0A%7D%0A

implement ConcreteCamera (untested)