Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.skife.config;
  
  import java.util.HashMap;
  
  public class TimeSpan
  {
     private final long period;
     private final TimeUnit unit;
     private final long millis;
 
     private static final Pattern SPLIT = Pattern.compile("^(\\d+)\\s?(\\w+)$");
 
     private static final HashMap<String,TimeUnitUNITS = new HashMap<String,TimeUnit>();
     static {
         .put("ms".);
         .put("millisecond".);
         .put("milliseconds".);
         .put("s".);
         .put("second".);
         .put("seconds".);
         .put("m".);
         .put("minute".);
         .put("minutes".);
         .put("h".);
         .put("hour".);
         .put("hours".);
         .put("d".);
         .put("day".);
         .put("days".);
     }
     
     public TimeSpan(String spec)
     {
         Matcher m = .matcher(spec);
         if (!m.matches()) {
             throw new IllegalArgumentException(String.format("%s is not a valid time spec"spec));
         }
         String number = m.group(1);
         String type = m.group(2);
          = Long.parseLong(number);
          = .get(type);
         if ( == null) {
             throw new IllegalArgumentException(String.format("%s is not a valid time unit in %s"typespec));
         }
          = ..convert();
     }
 
     public TimeSpan(long periodTimeUnit unit)
     {
         this. = period;
         this. = unit;
         this. = ..convert(periodunit);
     }
 
     public long getMillis() {
         return ;
     }
 
     public long getPeriod()
     {
         return ;
     }
 
     public TimeUnit getUnit()
     {
         return ;
     }
 
     @Override
     public String toString()
     {
         switch () {
             case :
                 return  + "s";
             case :
                 return  + "m";
             case :
                 return  + "h";
             case :
                 return  + "d";
             default:
                 return  + "ms";
         }
     }
 
     @Override
     public int hashCode()
     {
         return 31 + (int)( ^ ( >>> 32));
     }
 
     @Override
     public boolean equals(Object obj)
     {
         if (this == obj) {
             return true;
        }
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        TimeSpan other = (TimeSpan)obj;
        return  == other.millis;
    }
New to GrepCode? Check out our FAQ X