145 lines
2.9 KiB
Java
145 lines
2.9 KiB
Java
/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation
|
|
|
|
This file is part of libgcj.
|
|
|
|
This software is copyrighted work licensed under the terms of the
|
|
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
|
details. */
|
|
|
|
package java.lang;
|
|
|
|
/**
|
|
* @author Per Bothner <bothner@cygnus.com>
|
|
* @date April 17, 1998.
|
|
*/
|
|
/* Written using "Java Class Libraries", 2nd edition, plus online
|
|
* API docs for JDK 1.2 beta from http://www.javasoft.com.
|
|
* Status: Believed complete and correct.
|
|
* Includes JDK 1.2 methods.
|
|
*/
|
|
|
|
public final class Short extends Number implements Comparable
|
|
{
|
|
short value;
|
|
|
|
public final static short MIN_VALUE = -32768;
|
|
public final static short MAX_VALUE = 32767;
|
|
|
|
// This initialization is seemingly circular, but it is accepted
|
|
// by javac, and is handled specially by gcc.
|
|
public static final Class TYPE = short.class;
|
|
|
|
private static final long serialVersionUID = 7515723908773894738L;
|
|
|
|
public Short(short value)
|
|
{
|
|
this.value = value;
|
|
}
|
|
|
|
public Short(String str)
|
|
throws NumberFormatException
|
|
{
|
|
this.value = parseShort(str, 10);
|
|
}
|
|
|
|
public byte byteValue()
|
|
{
|
|
return (byte) value;
|
|
}
|
|
|
|
public short shortValue()
|
|
{
|
|
return value;
|
|
}
|
|
|
|
public int intValue()
|
|
{
|
|
return value;
|
|
}
|
|
|
|
public long longValue ()
|
|
{
|
|
return value;
|
|
}
|
|
|
|
public float floatValue ()
|
|
{
|
|
return (float) value;
|
|
}
|
|
|
|
public double doubleValue ()
|
|
{
|
|
return (double) value;
|
|
}
|
|
|
|
public static Short decode(String str)
|
|
throws NumberFormatException
|
|
{
|
|
int i = (Integer.decode(str)).intValue();
|
|
if (i < MIN_VALUE || i > MAX_VALUE)
|
|
throw new NumberFormatException();
|
|
return new Short((short) i);
|
|
}
|
|
|
|
public static short parseShort(String str, int radix)
|
|
throws NumberFormatException
|
|
{
|
|
int i = Integer.parseInt(str, radix);
|
|
if (i < MIN_VALUE || i > MAX_VALUE)
|
|
throw new NumberFormatException();
|
|
return (short) i;
|
|
}
|
|
|
|
public static short parseShort(String str)
|
|
throws NumberFormatException
|
|
{
|
|
return parseShort(str, 10);
|
|
}
|
|
|
|
public static Short valueOf(String str, int radix)
|
|
throws NumberFormatException
|
|
{
|
|
return new Short(parseShort(str, radix));
|
|
}
|
|
|
|
public static Short valueOf(String str)
|
|
throws NumberFormatException
|
|
{
|
|
return valueOf(str, 10);
|
|
}
|
|
|
|
// Added in JDK 1.2
|
|
public int compareTo(Short anotherShort)
|
|
{
|
|
return this.value - anotherShort.value;
|
|
}
|
|
|
|
// Added in JDK 1.2
|
|
/** @throws ClassCastException */
|
|
public int compareTo(Object o)
|
|
{
|
|
return this.value - ((Short) o).value;
|
|
}
|
|
|
|
public boolean equals(Object obj)
|
|
{
|
|
return (obj instanceof Short) && ((Short) obj).value == value;
|
|
}
|
|
|
|
// Verified that hashCode is returns plain value (see Short_1 test).
|
|
public int hashCode()
|
|
{
|
|
return value;
|
|
}
|
|
|
|
public String toString()
|
|
{
|
|
return Integer.toString((int) value);
|
|
}
|
|
|
|
public static String toString(short value)
|
|
{
|
|
return Integer.toString((int) value);
|
|
}
|
|
}
|