blob: f2b3d16d0c8b06eb6b53d38e99a6cd5076ec9b76 [file] [log] [blame]
/**
*******************************************************************************
* Copyright (C) 2003-2011, 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 {
/**
* Returns true if ICU_Version < major.minor.
*/
static public boolean isICUVersionBefore(int major, int minor) {
return isICUVersionBefore(major, minor, 0);
}
/**
* Returns true if ICU_Version < major.minor.milli.
*/
static public boolean isICUVersionBefore(int major, int minor, int milli) {
return VersionInfo.ICU_VERSION.compareTo(VersionInfo.getInstance(major, minor, milli)) < 0;
}
/**
* Returns true if ICU_Version >= major.minor.
*/
static public boolean isICUVersionAtLeast(int major, int minor) {
return isICUVersionAtLeast(major, minor, 0);
}
/**
* Returns true if ICU_Version >= major.minor.milli.
*/
static public boolean isICUVersionAtLeast(int major, int minor, int milli) {
return !isICUVersionBefore(major, minor, milli);
}
/**
* 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;
}
}