Coverage Report - com.google.code.jetm.maven.data.TimeUnit
 
Classes in this File Line Coverage Branch Coverage Complexity
TimeUnit
93%
14/15
100%
4/4
2
 
 1  
 package com.google.code.jetm.maven.data;
 2  
 
 3  
 import com.google.code.jetm.maven.TimingReportMojo;
 4  
 
 5  
 /**
 6  
  * Enumerations of the time units supported by this report.
 7  
  * 
 8  
  * @author jrh3k5
 9  
  * 
 10  
  */
 11  
 
 12  1
 public enum TimeUnit {
 13  
     /**
 14  
      * Milliseconds.
 15  
      */
 16  1
     MILLISECONDS("ms", 1),
 17  
     /**
 18  
      * Seconds
 19  
      */
 20  1
     SECONDS("sec", 1000);
 21  
 
 22  
     /**
 23  
      * Get a time unit from the appropriate {@link TimingReportMojo} abbreviate. The comparison is case-insensitive.
 24  
      * 
 25  
      * @param abbreviation
 26  
      *            The abbreviation from which to obtain the corresponding enumeration.
 27  
      * @return A {@link TimeUnit} enumeration corresponding to the given abbreviation:
 28  
      *         <ul>
 29  
      *         <li><b>MILLIS</b>: returns {@link #MILLISECONDS}.</li>
 30  
      *         <li><b>SECS</b>: returns {@link #SECONDS}</li>
 31  
      * @throws IllegalArgumentException
 32  
      *             If the given abbreviation is not known.
 33  
      */
 34  
     public static TimeUnit fromMojoAbbreviation(String abbreviation) {
 35  3
         if ("SECS".equalsIgnoreCase(abbreviation))
 36  1
             return SECONDS;
 37  2
         else if ("MILLIS".equalsIgnoreCase(abbreviation))
 38  1
             return MILLISECONDS;
 39  
 
 40  1
         throw new IllegalArgumentException("Unrecognized time unit abbreviation: " + abbreviation);
 41  
     }
 42  
 
 43  
     private final long division;
 44  
     private final String displayName;
 45  
 
 46  
     /**
 47  
      * Create a time unit enumeration.
 48  
      * 
 49  
      * @param displayName
 50  
      *            The name to be displayed on the reports.
 51  
      * @param division
 52  
      *            The amount by which microseconds are to be divided in order to convert the microseconds into this unit's measurement.
 53  
      */
 54  2
     private TimeUnit(String displayName, long division) {
 55  2
         this.displayName = displayName;
 56  2
         this.division = division;
 57  2
     }
 58  
     
 59  
     /**
 60  
      * Convert microseconds to this unit's value.
 61  
      * 
 62  
      * @param micros
 63  
      *            The number of microseconds.
 64  
      * @return The given number of microseconds in this unit's measurement.
 65  
      */
 66  
     public double fromMilliseconds(double micros) {
 67  2
         return micros / division;
 68  
     }
 69  
 
 70  
     /**
 71  
      * Get the display name of this time unit.
 72  
      * 
 73  
      * @return The display name of the time unit.
 74  
      */
 75  
     public String getDisplayName() {
 76  2
         return displayName;
 77  
     }
 78  
 
 79  
     /**
 80  
      * Get the value by which this unit divides in order to convert from milliseconds to this unit.
 81  
      * 
 82  
      * @return The division value.
 83  
      */
 84  
     public long getDivisionValue() {
 85  0
         return division;
 86  
     }
 87  
 }