56 lines
1.2 KiB
Java
56 lines
1.2 KiB
Java
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<ObserverDeCapteurAsync> 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;
|
|
}
|
|
|
|
}
|