1 /* 2 (C) Copyright IBM Corp. 2006, 2013 3 4 THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE 5 ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE 6 CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT. 7 8 You can obtain a current copy of the Eclipse Public License from 9 http://www.opensource.org/licenses/eclipse-1.0.php 10 11 @author : Endre Bak, ebak@de.ibm.com 12 * 13 * Flag Date Prog Description 14 * ------------------------------------------------------------------------------- 15 * 1565892 2006-10-09 ebak Make SBLIM client JSR48 compliant 16 * 1737123 2007-06-15 ebak Differences to JSR48 public review draft 17 * 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL 18 * 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1) 19 * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2) 20 * 2750520 2009-04-10 blaschke-oss Code cleanup from empty statement et al 21 * 2795671 2009-05-22 raman_arora Add Type to Comparable <T> 22 * 2935258 2010-01-22 blaschke-oss Sync up javax.cim.* javadoc with JSR48 1.0.0 23 * 2944833 2010-02-08 blaschke-oss Need private setValue in UnsignedInteger8 24 * 2973233 2010-03-19 blaschke-oss TCK: UnsignedIntegerNN.hashCode() not working 25 * 2719 2013-12-10 blaschke-oss TCK: CIM APIs should not generate NullPointerException 26 * 2716 2013-12-11 blaschke-oss Sync up javax.* javadoc with JSR48 1.0.0 Final V 27 */ 28 29 package org.metricshub.wbem.javax.cim; 30 31 /*- 32 * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲ 33 * WBEM Java Client 34 * ჻჻჻჻჻჻ 35 * Copyright 2023 - 2025 MetricsHub 36 * ჻჻჻჻჻჻ 37 * Licensed under the Apache License, Version 2.0 (the "License"); 38 * you may not use this file except in compliance with the License. 39 * You may obtain a copy of the License at 40 * 41 * http://www.apache.org/licenses/LICENSE-2.0 42 * 43 * Unless required by applicable law or agreed to in writing, software 44 * distributed under the License is distributed on an "AS IS" BASIS, 45 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 46 * See the License for the specific language governing permissions and 47 * limitations under the License. 48 * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱ 49 */ 50 51 //Sync'd against JSR48 1.0.0 javadoc (version 1.7.0_03) on Tue Dec 10 07:02:50 EST 2013 52 /** 53 * This class represents an <code>UnsignedInteger8</code>. A <code>uint8</code> 54 * data type is defined by the (<a href=http://www.dmtf.org>DMTF</a>) CIM 55 * Infrastructure Specification (<a 56 * href=http://www.dmtf.org/standards/published_documents/DSP0004V2.3_final.pdf 57 * >DSP004</a>). 58 */ 59 public class UnsignedInteger8 extends Number implements Comparable<UnsignedInteger8> { 60 private static final long serialVersionUID = 4392496278679167896L; 61 62 /** 63 * The maximum possible value for an <code>UnsignedInteger8</code>. 64 */ 65 public static final short MAX_VALUE = 255; 66 67 /** 68 * The minimum possible value for an <code>UnsignedInteger8</code>. 69 */ 70 public static final short MIN_VALUE = 0; 71 72 private short iValue; 73 74 /** 75 * Sets the value of this integer object if it falls within the range of 76 * minimum and maximum values. 77 * 78 * @param pValue 79 * The integer. 80 * @throws NumberFormatException 81 * If the integer is out of range. 82 */ 83 private void setValue(short pValue) throws NumberFormatException { 84 if (pValue > MAX_VALUE || pValue < MIN_VALUE) { 85 String msg = "uint8:" + pValue + " is out of range!"; 86 throw new NumberFormatException(msg); 87 } 88 this.iValue = pValue; 89 } 90 91 /** 92 * Constructs an unsigned 8-bit integer object for the specified short 93 * value. Only the lower 8 bits are considered. 94 * 95 * @param pValue 96 * The short to be represented as an unsigned 8-bit integer 97 * object. 98 * @throws NumberFormatException 99 * If the number is out of range. 100 */ 101 public UnsignedInteger8(short pValue) throws NumberFormatException { 102 setValue(pValue); 103 } 104 105 /** 106 * Constructs an unsigned 8-bit integer object for the specified string. 107 * Only the lower 8 bits are considered. 108 * 109 * @param pValue 110 * The string to be represented as an unsigned 8-bit integer. 111 * @throws NumberFormatException 112 * If the number is out of range. 113 * @throws IllegalArgumentException 114 * If value is <code>null</code>. 115 */ 116 public UnsignedInteger8(String pValue) throws NumberFormatException { 117 if (pValue == null) throw new IllegalArgumentException("String value cannot be null!"); 118 setValue(Short.parseShort(pValue)); 119 } 120 121 /** 122 * Compares this object with the specified object for order. Returns a 123 * negative integer, zero, or a positive integer as this object is less 124 * than, equal to, or greater than the specified object. 125 * 126 * @param pOther 127 * The Object to be compared. 128 * @return A negative integer, zero, or a positive integer as this object is 129 * less than, equal to, or greater than the specified object. 130 * @throws ClassCastException 131 * If the specified object's type prevents it from being 132 * compared to this Object. 133 * @throws IllegalArgumentException 134 * If value is <code>null</code>. 135 */ 136 public int compareTo(UnsignedInteger8 pOther) { 137 if (pOther == null) throw new IllegalArgumentException("Other UnsignedInteger8 cannot be null!"); 138 UnsignedInteger8 that = pOther; 139 int d = this.iValue - that.iValue; 140 if (d == 0) return 0; 141 return d < 0 ? -1 : 1; 142 } 143 144 /** 145 * Compares this object against the specified object. The result is true if 146 * and only if the argument is not null and is an 147 * <code>UnsignedInteger8</code> object that represents the same value as 148 * this object. 149 * 150 * @param pObj 151 * The object to compare. 152 * @return <code>true</code> if the objects are the same; <code>false</code> 153 * otherwise. 154 */ 155 @Override 156 public boolean equals(Object pObj) { 157 if (!(pObj instanceof UnsignedInteger8)) return false; 158 return this.iValue == ((UnsignedInteger8) pObj).iValue; 159 } 160 161 /** 162 * Returns the value of this unsigned integer object as a <code>byte</code>. 163 * 164 * @return The <code>byte</code> value of this unsigned integer object. 165 */ 166 @Override 167 public byte byteValue() { 168 return (byte) this.iValue; 169 } 170 171 /** 172 * Returns the value of this unsigned integer object as a 173 * <code>double</code>. 174 * 175 * @return Value of this unsigned integer object as a <code>double</code>. 176 */ 177 @Override 178 public double doubleValue() { 179 return this.iValue; 180 } 181 182 /** 183 * Returns the value of this unsigned integer object as a <code>float</code> 184 * . 185 * 186 * @return Value of this unsigned integer object as a <code>float</code>. 187 */ 188 @Override 189 public float floatValue() { 190 return this.iValue; 191 } 192 193 /** 194 * Computes the hash code for this unsigned integer object. 195 * 196 * @return The integer representing the hash code for this unsigned integer 197 * object. 198 */ 199 @Override 200 public int hashCode() { 201 return Short.valueOf(this.iValue).hashCode(); 202 } 203 204 /** 205 * Returns the value of this unsigned integer object as an <code>int</code>. 206 * 207 * @return Value of this unsigned integer object as an <code>int</code>. 208 */ 209 @Override 210 public int intValue() { 211 return this.iValue; 212 } 213 214 /** 215 * Returns the value of this unsigned integer object as a <code>long</code>. 216 * 217 * @return Value of this unsigned integer object as a <code>long</code>. 218 */ 219 @Override 220 public long longValue() { 221 return this.iValue; 222 } 223 224 /** 225 * Returns the value of this unsigned integer object as a <code>short</code> 226 * . 227 * 228 * @return Value of this unsigned integer object as a <code>short</code>. 229 */ 230 @Override 231 public short shortValue() { 232 return this.iValue; 233 } 234 235 /** 236 * Returns the text representation of this unsigned integer object. 237 * 238 * @return Text representation of this unsigned integer. 239 */ 240 @Override 241 public String toString() { 242 return Short.toString(this.iValue); 243 } 244 }