| /** |
| ******************************************************************************* |
| * Copyright (C) 2003-2009, International Business Machines Corporation and * |
| * others. All Rights Reserved. * |
| ******************************************************************************* |
| */ |
| package com.ibm.icu.dev.test; |
| |
| import java.util.Calendar; |
| import java.util.Date; |
| import java.util.GregorianCalendar; |
| |
| import com.ibm.icu.util.VersionInfo; |
| |
| public abstract class AbstractTestLog implements TestLog { |
| |
| public static boolean dontSkipForVersion = false; |
| public boolean skipIfBeforeICU(int major, int minor, int micro) { |
| if (dontSkipForVersion || VersionInfo.ICU_VERSION.compareTo(VersionInfo.getInstance(major, minor, micro)) > 0) { |
| return false; |
| } |
| logln("Test skipped before ICU release " + major + "." + minor); |
| return true; |
| } |
| |
| |
| /** |
| * Add a message. |
| */ |
| public final void log(String message) { |
| msg(message, LOG, true, false); |
| } |
| |
| /** |
| * Add a message and newline. |
| */ |
| public final void logln(String message) { |
| msg(message, LOG, true, true); |
| } |
| |
| /** |
| * Report an error. |
| */ |
| public final void err(String message) { |
| msg(message, ERR, true, false); |
| } |
| |
| /** |
| * Report an error and newline. |
| */ |
| public final void errln(String message) { |
| msg(message, ERR, true, true); |
| } |
| |
| /** |
| * Report a warning (generally missing tests or data). |
| */ |
| public final void warn(String message) { |
| msg(message, WARN, true, false); |
| } |
| |
| /** |
| * Report a warning (generally missing tests or data) and newline. |
| */ |
| public final void warnln(String message) { |
| msg(message, WARN, true, true); |
| } |
| |
| /** |
| * Vector for logging. Callers can force the logging system to |
| * not increment the error or warning level by passing false for incCount. |
| * |
| * @param message the message to output. |
| * @param level the message level, either LOG, WARN, or ERR. |
| * @param incCount if true, increments the warning or error count |
| * @param newln if true, forces a newline after the message |
| */ |
| public abstract void msg(String message, int level, boolean incCount, boolean newln); |
| |
| /** |
| * Not sure if this class is useful. This lets you log without first testing |
| * if logging is enabled. The Delegating log will either silently ignore the |
| * message, if the delegate is null, or forward it to the delegate. |
| */ |
| public static final class DelegatingLog extends AbstractTestLog { |
| private TestLog delegate; |
| |
| public DelegatingLog(TestLog delegate) { |
| this.delegate = delegate; |
| } |
| |
| public void msg(String message, int level, boolean incCount, boolean newln) { |
| if (delegate != null) { |
| delegate.msg(message, level, incCount, newln); |
| } |
| } |
| } |
| public boolean isDateAtLeast(int year, int month, int day){ |
| Date now = new Date(); |
| Calendar c = new GregorianCalendar(year, month, day); |
| Date dt = c.getTime(); |
| if(now.compareTo(dt)>=0){ |
| return true; |
| } |
| return false; |
| } |
| } |