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