blob: 87081d267016cafcda649f053fffd3f62e835306 [file] [log] [blame]
/**
*******************************************************************************
* Copyright (C) 2003-2008, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
package com.ibm.icu.dev.test;
import java.util.Date;
import com.ibm.icu.util.Calendar;
import com.ibm.icu.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;
}
}