package impl;

import interfaces.CapteurAsync;
import interfaces.ObserverdeCapteur;

import java.util.ArrayList;
import java.util.Random;
import java.util.concurrent.Future;

public class Afficheur implements ObserverdeCapteur {
    private int id= new Random().nextInt(100);
    public ArrayList<Integer> vals = new ArrayList<Integer>(); //pour que les tests puissent lire les valeur après l'exécution

    public Afficheur() {}

    public void setId(int id){
        this.id = id;
    }

    //AO1 - concrete servant
    @Override
    public void update(CapteurAsync capteurAsync) {
        try{
            Future<Integer> futureValue= capteurAsync.getValue();
            Integer value=futureValue.get();
            System.out.println("\t\tAfficheur " + id+", value: "+ value);
            vals.add(value);
        }catch(Exception e){
            //TODO
            e.printStackTrace();
        }
    }
}
