Station.java 952 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package weather;
  2. import java.util.ArrayList;
  3. import java.util.Timer;
  4. import java.util.TimerTask;
  5. public class Station implements IRequest {
  6. private String location;
  7. private ArrayList<IResponse> requesters;
  8. private Weather current;
  9. public Station(String location, IResponse requester) {
  10. this.location = location;
  11. this.requesters = new ArrayList<IResponse>();
  12. if (requester != null) {
  13. registerRequester(requester);
  14. }
  15. this.weather = new Weather(this.location);
  16. this.initialize();
  17. }
  18. public static void initialize() {
  19. int span = (new Random()).nextInt(4) + 2;
  20. (new Timer()).scheduleAtFixedRate(new TimerTask() {
  21. @Override
  22. public void run() {
  23. current = new Weather(this.location);
  24. }
  25. }, 0, 1000 * span);
  26. }
  27. public void measure() {
  28. for (IResponse requester: this.requesters) {
  29. requester.answer(current);
  30. }
  31. }
  32. public void registerRequester(IResponse requester) {
  33. requesters.add(requester);
  34. }
  35. }