package com.bansheeproject.utils; import java.util.Calendar; /** * A helper enum to ease time handling. * * @author Alexandre Saudate * @since 1.0 */ public enum TimeUnit { MILISSECONDS { @Override public long getModifier() { return 1; } @Override public void add(Calendar calendar, int amount) { calendar.add(Calendar.MILLISECOND, amount); } }, SECONDS { @Override public long getModifier() { return 1000; } @Override public void add(Calendar calendar, int amount) { calendar.add(Calendar.SECOND, amount); } }, MINUTES { @Override public long getModifier() { return SECONDS.getModifier() * 60; } @Override public void add(Calendar calendar, int amount) { calendar.add(Calendar.MINUTE, amount); } }, HOURS { @Override public long getModifier() { return MINUTES.getModifier() * 60; } @Override public void add(Calendar calendar, int amount) { calendar.add(Calendar.HOUR, amount); } }, DAYS { @Override public long getModifier() { return HOURS.getModifier() * 24; } @Override public void add(Calendar calendar, int amount) { calendar.add(Calendar.DAY_OF_MONTH, amount); } }; public abstract long getModifier(); public abstract void add(Calendar calendar, int amount); public long multiply (long amount ) { if (amount < 0) { throw new IllegalArgumentException("Amount of time cannot be less than zero"); } return amount * getModifier(); } }