package org.rhq.metrics.simulator;
import org.joda.time.DateTime;
import org.joda.time.Duration;
/**
* @author John Sanda
*/
public class SecondsDateTimeService extends SimulatedDateTimeService {
@Override
public DateTime getTimeSlice(DateTime dt, Duration duration) {
if (duration.equals(configuration.getRawTimeSliceDuration())) {
int milliseconds = (dt.getSecondOfMinute() * 1000) / 2500;
return dt.minuteOfHour().roundFloorCopy().plus(milliseconds * 2500);
} else if (duration.equals(configuration.getOneHourTimeSliceDuration())) {
int seconds = dt.getSecondOfMinute() / 15;
return dt.minuteOfHour().roundFloorCopy().plusSeconds(seconds * 15);
} else if (duration.equals(configuration.getSixHourTimeSliceDuration())) {
return dt.minuteOfHour().roundFloorCopy();
} else {
throw new IllegalArgumentException("The duration [" + duration + "] is not supported");
}
}
}