KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > polyglot > pth > OutputController


1 /*
2  * Author : Stephen Chong
3  * Created: Feb 5, 2004
4  */

5 package polyglot.pth;
6
7 import java.io.PrintStream JavaDoc;
8 import java.text.DateFormat JavaDoc;
9 import java.text.SimpleDateFormat JavaDoc;
10 import java.util.Calendar JavaDoc;
11 import java.util.Date JavaDoc;
12
13 import polyglot.util.ErrorQueue;
14
15 /**
16  *
17  */

18 public abstract class OutputController {
19     protected final PrintStream JavaDoc out;
20     protected final Calendar JavaDoc today;
21     protected final Calendar JavaDoc week;
22     public OutputController(PrintStream JavaDoc out) {
23         this.out = out;
24         today = Calendar.getInstance();
25         week = Calendar.getInstance();
26         Calendar JavaDoc now = Calendar.getInstance();
27          
28         today.clear();
29         today.set(now.get(Calendar.YEAR), now.get(Calendar.MONTH), now.get(Calendar.DATE));
30         week.setTimeInMillis(today.getTimeInMillis());
31         week.add(Calendar.DATE, -6);
32     }
33      
34     public void startTest(Test t) {
35         if (t instanceof ScriptTestSuite) {
36             startScriptTestSuite((ScriptTestSuite)t);
37         }
38         else if (t instanceof SourceFileTest) {
39             startSourceFileTest((SourceFileTest)t);
40         }
41     }
42     public void finishTest(Test t, ErrorQueue eq) {
43         if (t instanceof ScriptTestSuite) {
44             finishScriptTestSuite((ScriptTestSuite)t);
45         }
46         else if (t instanceof SourceFileTest) {
47             finishSourceFileTest((SourceFileTest)t, eq);
48         }
49     }
50     
51     protected abstract void startScriptTestSuite(ScriptTestSuite sts);
52     protected abstract void startSourceFileTest(SourceFileTest sft);
53     protected abstract void finishScriptTestSuite(ScriptTestSuite sts);
54     protected abstract void finishSourceFileTest(SourceFileTest sft, ErrorQueue eq);
55     
56     public abstract void displayTestSuiteResults(String JavaDoc suiteName, TestSuite ts);
57     public abstract void displayTestResults(TestResult tr, String JavaDoc testName);
58         
59     protected DateFormat JavaDoc getDefaultDateFormat() {
60         return new SimpleDateFormat JavaDoc("d-MMM-YY");
61     }
62     protected DateFormat JavaDoc getSameYearDateFormat() {
63         return new SimpleDateFormat JavaDoc("d-MMM");
64     }
65     protected DateFormat JavaDoc getSameWeekDateFormat() {
66         return new SimpleDateFormat JavaDoc("EEE k:mm");
67     }
68     protected DateFormat JavaDoc getTodayDateFormat() {
69         return new SimpleDateFormat JavaDoc("k:mm");
70     }
71     public String JavaDoc getDateDisplay(Date JavaDoc d) {
72         if (d == null) return "never";
73
74         DateFormat JavaDoc df;
75         Calendar JavaDoc dt = Calendar.getInstance();
76         dt.setTime(d);
77         
78         if (dt.after(today)) {
79             df = getTodayDateFormat();
80         }
81         else if (dt.after(week)) {
82             df = getSameWeekDateFormat();
83         }
84         else if (dt.get(Calendar.YEAR) == today.get(Calendar.YEAR)) {
85             df = getSameYearDateFormat();
86         }
87         else {
88             df = getDefaultDateFormat();
89         }
90
91         return df.format(d);
92     }
93 }
94
Popular Tags