View Javadoc
1   package org.metricshub.ipmi.core.coding.commands.fru;
2   
3   /*-
4    * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲
5    * IPMI Java Client
6    * ჻჻჻჻჻჻
7    * Copyright 2023 Verax Systems, MetricsHub
8    * ჻჻჻჻჻჻
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU Lesser General Public License as
11   * published by the Free Software Foundation, either version 3 of the
12   * License, or (at your option) any later version.
13   *
14   * This program is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Lesser Public License for more details.
18   *
19   * You should have received a copy of the GNU General Lesser Public
20   * License along with this program.  If not, see
21   * <http://www.gnu.org/licenses/lgpl-3.0.html>.
22   * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱
23   */
24  
25  /**
26   * Represents unit which is used to access FRU
27   */
28  public enum BaseUnit {
29      Bytes(BaseUnit.BYTES), Words(BaseUnit.WORDS), ;
30      private static final int BYTES = 0;
31      private static final int WORDS = 1;
32      private static final int BYTESIZE = 1;
33      private static final int WORDSIZE = 16;
34  
35      private int code;
36  
37      BaseUnit(int code) {
38          this.code = code;
39      }
40  
41      public int getCode() {
42          return code;
43      }
44  
45      public static BaseUnit parseInt(int value) {
46          switch (value) {
47          case BYTES:
48              return Bytes;
49          case WORDS:
50              return Words;
51          default:
52              throw new IllegalArgumentException("Invalid value: " + value);
53          }
54      }
55  
56      /**
57       * Returns size of the unit in bytes.
58       */
59      public int getSize() {
60          switch (this) {
61          case Bytes:
62              return BYTESIZE;
63          case Words:
64              return WORDSIZE;
65          default:
66              throw new IllegalArgumentException("Invalid value: " + this);
67          }
68      }
69  }