summaryrefslogtreecommitdiff
path: root/de/unibayreuth/se/observer/Subject.java
diff options
context:
space:
mode:
Diffstat (limited to 'de/unibayreuth/se/observer/Subject.java')
-rw-r--r--de/unibayreuth/se/observer/Subject.java30
1 files changed, 17 insertions, 13 deletions
diff --git a/de/unibayreuth/se/observer/Subject.java b/de/unibayreuth/se/observer/Subject.java
index 2f0b5bb..659513e 100644
--- a/de/unibayreuth/se/observer/Subject.java
+++ b/de/unibayreuth/se/observer/Subject.java
@@ -1,21 +1,25 @@
package de.unibayreuth.se.observer;
+import java.util.*;
+
public abstract class Subject {
- // TODO
+ private List<Observer> observers;
- public Subject() {
- // TODO
- }
+ public Subject() {
+ observers = new ArrayList<Observer>();
+ }
- void attach(Observer observer) {
- // TODO
- }
+ void attach(Observer observer) {
+ observers.add(observer);
+ }
- void detach(Observer observer) {
- // TODO
- }
+ void detach(Observer observer) {
+ observers.remove(observer);
+ }
- protected void fireUpdate() {
- // TODO
- }
+ protected void fireUpdate() {
+ System.out.println("Sending update to observers ...");
+ for(Observer o : observers)
+ o.update(this);
+ }
}