org.joou.UShort Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of joou Show documentation
Show all versions of joou Show documentation
jOOU is a recursive acronym that stands for jOOU Object Oriented Unsigned Types. It is a simple wrapper for UByte, UShort, UInteger, ULong types
/**
* Copyright (c) 2009-2011, Lukas Eder, [email protected]
* All rights reserved.
*
* This software is licensed to you under the Apache License, Version 2.0
* (the "License"); You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* . Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* . Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* . Neither the name "jOOU" nor the names of its contributors may be
* used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
package org.joou;
/**
* The unsigned short
type
*
* @author Lukas Eder
*/
public final class UShort extends UNumber implements Comparable {
/**
* Generated UID
*/
private static final long serialVersionUID = -6821055240959745390L;
/**
* A constant holding the minimum value an unsigned short
can
* have, 0.
*/
public static final int MIN_VALUE = 0x0000;
/**
* A constant holding the maximum value an unsigned short
can
* have, 216-1.
*/
public static final int MAX_VALUE = 0xffff;
/**
* The value modelling the content of this unsigned short
*/
private final int value;
/**
* Create an unsigned short
*
* @throws NumberFormatException If value
does not contain a
* parsable unsigned short
.
* @see UShort#UShort(String)
*/
public static UShort valueOf(String value) throws NumberFormatException {
return new UShort(value);
}
/**
* Create an unsigned short
by masking it with
* 0xFFFF
i.e. (short) -1
becomes
* (ushort) 65535
*
* @see UShort#UShort(short)
*/
public static UShort valueOf(short value) {
return new UShort(value);
}
/**
* Create an unsigned short
*
* @throws NumberFormatException If value
is not in the range
* of an unsigned short
*/
public UShort(int value) throws NumberFormatException {
this.value = value;
rangeCheck();
}
/**
* Create an unsigned short
by masking it with
* 0xFFFF
i.e. (short) -1
becomes
* (ushort) 65535
*/
public UShort(short value) {
this.value = value & MAX_VALUE;
}
/**
* Create an unsigned short
*
* @throws NumberFormatException If value
does not contain a
* parsable unsigned short
.
*/
public UShort(String value) throws NumberFormatException {
this.value = Integer.parseInt(value);
rangeCheck();
}
private void rangeCheck() throws NumberFormatException {
if (value < MIN_VALUE || value > MAX_VALUE) {
throw new NumberFormatException("Value is out of range : " + value);
}
}
@Override
public int intValue() {
return value;
}
@Override
public long longValue() {
return value;
}
@Override
public float floatValue() {
return value;
}
@Override
public double doubleValue() {
return value;
}
@Override
public int hashCode() {
return Integer.valueOf(value).hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj instanceof UShort) {
return value == ((UShort) obj).value;
}
return false;
}
@Override
public String toString() {
return Integer.valueOf(value).toString();
}
@Override
public int compareTo(UShort o) {
return (value < o.value ? -1 : (value == o.value ? 0 : 1));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy