package impl; import interfaces.AlgoDiffusion; import interfaces.Capteur; import interfaces.ObserverDeCapteurAsync; import java.time.Clock; import java.util.ArrayList; import java.util.List; public class CapteurImpl implements Capteur { public Clock clock = Clock.systemUTC(); public int value; public AlgoDiffusion diffusion; public List observers; public CapteurImpl(AlgoDiffusion diffusion) { value = 0; observers = new ArrayList<>(); this.diffusion = diffusion; } @Override public void attach(ObserverDeCapteurAsync o) { try { observers.add(o); }catch(Exception e) { //TODO e.printStackTrace(); } } @Override public void detach(ObserverDeCapteurAsync o) { try { observers.remove(o); }catch(Exception e) { //TODO e.printStackTrace(); } } @Override public void tick() { for (ObserverDeCapteurAsync canal : observers) { canal.update(this); } } //AO2 - Concrete Servant @Override public int getValue() { return 0; } }