OOP2

Controller.java

1
import java.util.Observable; // This controller must be aware of Observable classes.
2
import java.util.Observer;
3
4
/**
5
 * Controller - An abstract controller for an MVC-architecture.
6
 * @author Maarten Vangeneugden - 1438256
7
 */
8
class Controller {
9
10
	// Members
11
	private Observable model;
12
	private Observer view;
13
14
	// Constructor
15
	public Controller(Observable model, Observer view) { 
16
		setModel(model);
17
		setView(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.deleteObserver(this.view);
26
		this.model = model;
27
		this.model.addObserver(this.view);
28
	}
29
30
	/**
31
	 * Returns the model that is being observed.
32
	 * @return The model being observed.
33
	 */
34
	public Observable getModel() {
35
		return model;
36
	}
37
38
	/**
39
	 * Sets the view for this controller.
40
	 * @param view The view for this controller.
41
	 */
42
	public void setView(Observer view) {
43
		getModel().deleteObserver(this.view);
44
		this.view = view;
45
		getModel().addObserver(this.view);
46
	}
47
48
	/**
49
	 * Returns the view for this controller.
50
	 * @return The view for this controller.
51
	 */
52
	public Observer getView() {	
53
		return view;
54
	}
55
56
}
57