OOP2

AbstractController.java

1
import java.util.Observable; // This controller must be aware of Observable classes.
2
import java.util.Observer; // Idem for Observers.
3
4
/**
5
 * Controller - Abstraction layer to represent a controller in an MVC architecture.
6
 * @author Maarten Vangeneugden - 1438256
7
 */
8
abstract class Controller {
9
10
	// Members
11
	private Observable model;
12
	private Observer view;
13
14
	// Constructor
15
	public Controller(Observable model, Observer view) { 
16
		this.model = model;
17
		this.view = view;
18
	}
19
20
	/**
21
	 * Sets the model for this controller.
22
	 * @param model The model that is to be controlled.
23
	 */
24
	public void setModel(Observable model) {
25
		this.model = model;
26
	}
27
28
	/**
29
	 * Returns the model that is being observed.
30
	 * @return The model being observed.
31
	 */
32
	public Observable getModel() {	
33
		return model;
34
	}
35
36
	/**
37
	 * Sets the view for this controller.
38
	 * @param view The view for this controller.
39
	 */
40
	public void setView(Observer view) {
41
		this.view = view;
42
	}
43
44
	/**
45
	 * Returns the view for this controller.
46
	 * @return The view for this controller.
47
	 */
48
	public Observer getView() {	
49
		return view;
50
	}
51
}
52