1 /** 2 * Copyright (c) 2012, University of Konstanz, Distributed Systems Group 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are met: 7 * * Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * * Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * * Neither the name of the University of Konstanz nor the 13 * names of its contributors may be used to endorse or promote products 14 * derived from this software without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY 20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 */ 27 package org.perfidix.meter; 28 29 /** 30 * Small enum to store different times. 31 * 32 * @author Sebastian Graf, University of Konstanz 33 */ 34 public enum Time { 35 36 /** Enum for nano seconds. */ 37 NanoSeconds("ns", "nano seconds", 1), 38 /** Enum for milli seconds. */ 39 MilliSeconds("ms", "milli seconds", 1000000), 40 /** Enum for seconds. */ 41 Seconds("s", "second", 1000000000), 42 /** Enum for minutes. */ 43 Minutes("min", "minutes", 60000000000.0); 44 45 /** 46 * The unit of the time. 47 */ 48 private final String unit; 49 50 /** 51 * The description of the time. 52 */ 53 private final String unitDescription; 54 55 /** 56 * Number of bytes. 57 */ 58 private transient final double milliSeconds; 59 60 /** 61 * The constructor for the memory sizes. 62 * 63 * @param paramUnit 64 * to give 65 * @param paramUnitDesc 66 * to give 67 * @param paramMillis 68 * to give 69 */ 70 private Time(final String paramUnit, final String paramUnitDesc, final double paramMillis) { 71 unit = paramUnit; 72 unitDescription = paramUnitDesc; 73 milliSeconds = paramMillis; 74 } 75 76 /** 77 * Getting the number of milli seconds. 78 * 79 * @return the number of milli seconds 80 */ 81 public double getNumberOfMilliSeconds() { 82 return milliSeconds; 83 } 84 85 /** 86 * Getting the unit. 87 * 88 * @return the unit 89 */ 90 public String getUnit() { 91 return unit; 92 } 93 94 /** 95 * Getting the full unitname. 96 * 97 * @return the full unitname 98 */ 99 public String getUnitDescription() { 100 return unitDescription; 101 } 102 103 }