package com.cloudera.util;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
abstract public class Clock {
private static Clock clock = new DefaultClock();
private final static DateFormat dateFormat = new SimpleDateFormat(
"yyyyMMdd-HHmmssSSSZ");
synchronized(dateFormat) {
return dateFormat.format(date());
}
}
@Override
return System.nanoTime();
}
@Override
return System.currentTimeMillis();
}
@Override
return new Date();
}
@Override
public void doSleep(
long millis)
throws InterruptedException {
Thread.sleep(millis);
}
};
clock = new DefaultClock();
}
clock = c;
}
return clock.getUnixTime();
}
public static long nanos() {
return clock.getNanos();
}
public static Date
date() {
return clock.getDate();
}
public static void sleep(
long millis)
throws InterruptedException {
clock.doSleep(millis);
}
abstract public void doSleep(
long millis)
throws InterruptedException;
}