package net.aeten.core;

import net.aeten.core.event.EventData;
import net.aeten.core.event.Handler;


public interface Model<M, F extends Enum<F>> {
	void addObserver(Handler<EventData<M, F>> observer);
	void removeObserver(Handler<EventData<M, F>> observer);
}

@@ -95,17 +95,16 @@
 ndler;%0A%0A
-%0A
 public i
@@ -117,18 +117,39 @@
 ce Model
+ 
 %3CM
+ extends Model%3CM, F%3E
 , F exte
@@ -156,16 +156,17 @@
 nds Enum
+ 
 %3CF%3E%3E %7B%0A%09
@@ -177,32 +177,33 @@
  addObserver
+ 
 (Handler
 %3CEventData%3CM
@@ -182,32 +182,33 @@
 bserver (Handler
+ 
 %3CEventData%3CM, F%3E
@@ -193,32 +193,33 @@
 ndler %3CEventData
+ 
 %3CM, F%3E%3E observer
@@ -221,16 +221,17 @@
 erver);%0A
+%0A
 %09void re
@@ -242,24 +242,25 @@
 Observer
+ 
 (Handler
 %3CEventDa
@@ -251,16 +251,17 @@
 (Handler
+ 
 %3CEventDa
@@ -262,16 +262,17 @@
 ventData
+ 
 %3CM, F%3E%3E 
@@ -281,11 +281,76 @@
 server);
+%0A%0A%09%3CT%3E void set (%09F field,%0A%09%09%09%09%09%09T value);%0A%0A%09%3CT%3E T get (F field);
 %0A%7D%0A

Add getter and setter methods.