View Javadoc
1   package net.sf.mbus4j.dataframes.datablocks.vif;
2   
3   /*
4    * #%L
5    * mbus4j-core
6    * %%
7    * Copyright (C) 2009 - 2014 MBus4J
8    * %%
9    * mbus4j - Drivers for the M-Bus protocol - http://mbus4j.sourceforge.net/
10   * Copyright (C) 2009-2014, mbus4j.sf.net, and individual contributors as indicated
11   * by the @authors tag. See the copyright.txt in the distribution for a
12   * full listing of individual contributors.
13   * 
14   * This is free software; you can redistribute it and/or modify it
15   * under the terms of the GNU General Public License as
16   * published by the Free Software Foundation; either version 3 of
17   * the License, or (at your option) any later version.
18   * 
19   * This software is distributed in the hope that it will be useful,
20   * but WITHOUT ANY WARRANTY; without even the implied warranty of
21   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22   * Lesser General Public License for more details.
23   * 
24   * You should have received a copy of the GNU Lesser General Public
25   * License along with this software; if not, write to the Free
26   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
27   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
28   * #L%
29   */
30  /**
31   *
32   * @author arnep@users.sourceforge.net
33   * @version $Id: SiPrefix.java 158 2016-05-06 20:11:35Z arnep $
34   */
35  public enum SiPrefix {
36  
37      PICO("p", -15),
38      NANO("n", -12),
39      MICRO("ยต", -6),
40      MILLI("m", -3),
41      CENTI("c", -2),
42      DECI("d", -1),
43      ONE("", 0),
44      DECA("D", 1),
45      HECTO("h",2),
46      KILO("k", 3),
47      MEGA("M", 6),
48      GIGA("G", 12);
49      private final String label;
50      private final double factor;
51      private final int exponent;
52  
53      private SiPrefix(String label, int exponent) {
54          this.label = label;
55          this.factor = Math.pow(10, exponent);
56          this.exponent = exponent;
57      }
58  
59      @Override
60      public String toString() {
61          return label;
62      }
63  
64      /**
65       * @return the label
66       */
67      public String getLabel() {
68          return label;
69      }
70  
71      public static SiPrefix fromLabel(String label) {
72          if (label == null) {
73              return null;
74          }
75          for (SiPrefix value : values()) {
76              if (value.getLabel().equals(label)) {
77                  return value;
78              }
79          }
80          return valueOf(label);
81      }
82  
83      /**
84       * @return the factor
85       */
86      final public double getFactor() {
87          return factor;
88      }
89  
90      /**
91       * @return the pow10
92       */
93      final public int getExponent() {
94          return exponent;
95      }
96  
97  }