/* * Copyright (C) 2012 Intel Corporation * All rights reserved. */ package com.intel.mtwilson.setup; import com.intel.dcsg.cpg.validation.ObjectModel; import java.util.concurrent.TimeUnit; /** * Convenience class for passing around timeouts. * @author jbuhacoff */ public class Timeout extends ObjectModel { private final long duration; private final TimeUnit units; public Timeout(long duration, TimeUnit units) { this.duration = duration; this.units = units; } public long toNanoseconds() { return TimeUnit.NANOSECONDS.convert(duration, units); } public long toMicroseconds() { return TimeUnit.MICROSECONDS.convert(duration, units); } public long toMilliseconds() { return TimeUnit.MILLISECONDS.convert(duration, units); } public long toSeconds() { return TimeUnit.SECONDS.convert(duration, units); } public long toMinutes() { return TimeUnit.MINUTES.convert(duration, units); } public long toHours() { return TimeUnit.HOURS.convert(duration, units); } public long toDays() { return TimeUnit.DAYS.convert(duration, units); } @Override protected void validate() { if( units == null ) { fault("TimeUnit is null"); } } }