<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">package observer;

import java.util.HashSet;
import java.util.Set;

public class Observable&lt;E&gt; {
   
   private Set&lt;Observer&lt;E&gt;&gt; observers = new HashSet&lt;Observer&lt;E&gt;&gt;();
   boolean changed;
   
   void addObserver(Observer&lt;E&gt; obs) {
      observers.add(obs);
   }

   void removeObserver(Observer&lt;E&gt; obs) {
      observers.remove(obs);
   }

   void notifyObservers(E event) {
      if (!changed) return;
      changed = false;
      for (Observer&lt;E&gt; obs : observers) {
         obs.update(event);
      }
   }
}
</pre></body></html>