Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.yammer.dropwizard.util;
  
  
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 
 public class Duration {
     private static final Pattern PATTERN = Pattern.compile("[\\d]+[\\s]*(" +
             "ns|nanosecond(s)?|" +
             "us|microsecond(s)?|" +
             "ms|millisecond(s)?|" +
             "s|second(s)?|" +
             "m|minute(s)?|" +
             "h|hour(s)?|" +
             "d|day(s)?" +
             ')');
     private static final ImmutableMap<StringTimeUnitSUFFIXES;
 
     static {
         final ImmutableMap.Builder<StringTimeUnitsuffixes = ImmutableMap.builder();
 
         suffixes.put("ns".);
         suffixes.put("nanosecond".);
         suffixes.put("nanoseconds".);
 
         suffixes.put("us".);
         suffixes.put("microsecond".);
         suffixes.put("microseconds".);
 
         suffixes.put("ms".);
         suffixes.put("millisecond".);
         suffixes.put("milliseconds".);
 
         suffixes.put("s".);
         suffixes.put("second".);
         suffixes.put("seconds".);
 
         suffixes.put("m".);
         suffixes.put("minute".);
         suffixes.put("minutes".);
 
         suffixes.put("h".);
         suffixes.put("hour".);
         suffixes.put("hours".);
 
         suffixes.put("d".);
         suffixes.put("day".);
         suffixes.put("days".);
 
          = suffixes.build();
     }
     
     public static Duration nanoseconds(long count) {
         return new Duration(count.);
     }
 
     public static Duration microseconds(long count) {
         return new Duration(count.);
     }
 
     public static Duration milliseconds(long count) {
         return new Duration(count.);
     }
 
     public static Duration seconds(long count) {
         return new Duration(count.);
     }
 
     public static Duration minutes(long count) {
         return new Duration(count.);
     }
 
     public static Duration hours(long count) {
         return new Duration(count.);
     }
 
     public static Duration days(long count) {
         return new Duration(count.);
     }
     
     private static long parseCount(String s) {
         checkArgument(.matcher(s).matches(), "Invalid duration: %s"s);
         final String value = ..removeFrom(s);
         return Long.parseLong(..trimTrailingFrom(value));
     }
     
     private static TimeUnit parseUnit(String s) {
         final String value = ..removeFrom(s);
         final String suffix = ..trimLeadingFrom(value);
         return .get(suffix);
     }
 
    public static Duration parse(String duration) {
        return new Duration(parseCount(duration), parseUnit(duration));
    }
    private final long count;
    private final TimeUnit unit;
    private Duration(long countTimeUnit unit) {
        this. = count;
        this. = checkNotNull(unit);
    }
    public long getQuantity() {
        return ;
    }
    public TimeUnit getUnit() {
        return ;
    }
    public long toNanoseconds() {
        return ..convert();
    }
    public long toMicroseconds() {
        return ..convert();
    }
    public long toMilliseconds() {
        return ..convert();
    }
    public long toSeconds() {
        return ..convert();
    }
    public long toMinutes() {
        return ..convert();
    }
    public long toHours() {
        return ..convert();
    }
    public long toDays() {
        return ..convert();
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj) { return true; }
        if ((obj == null) || (getClass() != obj.getClass())) { return false; }
        final Duration duration = (Durationobj;
        return ( == duration.count) && ( == duration.unit);
    }
    @Override
    public int hashCode() {
        return (31 * (int) ( ^ ( >>> 32))) + .hashCode();
    }
    @Override
    @JsonValue
    public String toString() {
        String units = .toString().toLowerCase();
        if ( == 1) {
            units = units.substring(0, units.length() - 1);
        }
        return Long.toString() + ' ' + units;
    }
New to GrepCode? Check out our FAQ X