]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_4_2-src/main/tests/framework/src/com/ibm/icu/dev/test/AbstractTestLog.java
go
[Dictionary.git] / jars / icu4j-4_4_2-src / main / tests / framework / src / com / ibm / icu / dev / test / AbstractTestLog.java
1 /**\r
2  *******************************************************************************\r
3  * Copyright (C) 2003-2009, International Business Machines Corporation and         *\r
4  * others. All Rights Reserved.                                                *\r
5  *******************************************************************************\r
6  */\r
7 package com.ibm.icu.dev.test;\r
8 \r
9 import java.util.Calendar;\r
10 import java.util.Date;\r
11 import java.util.GregorianCalendar;\r
12 \r
13 import com.ibm.icu.util.VersionInfo;\r
14 \r
15 public abstract class AbstractTestLog implements TestLog {\r
16 \r
17     public static boolean dontSkipForVersion = false;\r
18     public boolean skipIfBeforeICU(int major, int minor, int micro) {\r
19         if (dontSkipForVersion || VersionInfo.ICU_VERSION.compareTo(VersionInfo.getInstance(major, minor, micro)) > 0) {\r
20             return false;\r
21         } \r
22         logln("Test skipped before ICU release " + major + "." + minor);\r
23         return true;\r
24     }\r
25 \r
26     \r
27     /**\r
28      * Add a message.\r
29      */\r
30     public final void log(String message) {\r
31         msg(message, LOG, true, false);\r
32     }\r
33 \r
34     /**\r
35      * Add a message and newline.\r
36      */\r
37     public final void logln(String message) {\r
38         msg(message, LOG, true, true);\r
39     }\r
40 \r
41     /**\r
42      * Report an error.\r
43      */\r
44     public final void err(String message) {\r
45         msg(message, ERR, true, false);\r
46     }\r
47 \r
48     /**\r
49      * Report an error and newline.\r
50      */\r
51     public final void errln(String message) {\r
52         msg(message, ERR, true, true);\r
53     }\r
54 \r
55     /**\r
56      * Report a warning (generally missing tests or data).\r
57      */\r
58     public final void warn(String message) {\r
59         msg(message, WARN, true, false);\r
60     }\r
61 \r
62     /**\r
63      * Report a warning (generally missing tests or data) and newline.\r
64      */\r
65     public final void warnln(String message) {\r
66         msg(message, WARN, true, true);\r
67     }\r
68 \r
69     /**\r
70      * Vector for logging.  Callers can force the logging system to\r
71      * not increment the error or warning level by passing false for incCount.\r
72      *\r
73      * @param message the message to output.\r
74      * @param level the message level, either LOG, WARN, or ERR.\r
75      * @param incCount if true, increments the warning or error count\r
76      * @param newln if true, forces a newline after the message\r
77      */\r
78     public abstract void msg(String message, int level, boolean incCount, boolean newln);\r
79 \r
80     /**\r
81      * Not sure if this class is useful.  This lets you log without first testing\r
82      * if logging is enabled.  The Delegating log will either silently ignore the\r
83      * message, if the delegate is null, or forward it to the delegate.\r
84      */\r
85     public static final class DelegatingLog extends AbstractTestLog {\r
86         private TestLog delegate;\r
87 \r
88         public DelegatingLog(TestLog delegate) {\r
89             this.delegate = delegate;\r
90         }\r
91 \r
92         public void msg(String message, int level, boolean incCount, boolean newln) {\r
93             if (delegate != null) {\r
94                 delegate.msg(message, level, incCount, newln);\r
95             }\r
96         }\r
97     }\r
98     public boolean isDateAtLeast(int year, int month, int day){\r
99         Date now = new Date();\r
100         Calendar c = new GregorianCalendar(year, month, day);\r
101         Date dt = c.getTime();\r
102         if(now.compareTo(dt)>=0){\r
103             return true;\r
104         }\r
105         return false;\r
106     }\r
107 }\r