1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package nl.toolforge.karma.cli.cmd;
20
21 import nl.toolforge.karma.console.KarmaConsole;
22 import nl.toolforge.karma.core.cmd.CommandResponseHandler;
23 import nl.toolforge.karma.core.cmd.event.CommandResponseEvent;
24
25 /***
26 * This class is responsible for handling CommandResponses in an interactive way.
27 * Each time a CommandResponse changes, the changes are logged through the writer.
28 *
29 * @author W.H. Schraal
30 */
31 public class ConsoleCommandResponseHandler implements CommandResponseHandler {
32
33 private KarmaConsole karmaConsole = null;
34
35 /***
36 * Creates a handler. This one takes the KarmaConsole as an argument, to which is can write (event-) messages.
37 *
38 * @param karmaConsole A <code>KarmaConsole</code> instance.
39 */
40 public ConsoleCommandResponseHandler(KarmaConsole karmaConsole) {
41 this.karmaConsole = karmaConsole;
42 }
43
44 /***
45 * Calls {@link #messageLogged}.
46 *
47 * @param event An event.
48 */
49 public void commandStarted(CommandResponseEvent event) {
50 this.messageLogged(event);
51 }
52
53 /***
54 * Calls {@link #messageLogged}.
55 *
56 * @param event An event.
57 */
58 public void commandFinished(CommandResponseEvent event) {
59 this.messageLogged(event);
60 }
61
62 /***
63 * Writes the events' message text to the KarmaConsole.
64 *
65 * @param event An event.
66 */
67 public void messageLogged(CommandResponseEvent event) {
68 karmaConsole.writeln(event.getEventMessage().getMessageText());
69 }
70
71
72 }