summaryrefslogtreecommitdiff
path: root/libjava/java/lang/Short.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/lang/Short.java')
-rw-r--r--libjava/java/lang/Short.java145
1 files changed, 145 insertions, 0 deletions
diff --git a/libjava/java/lang/Short.java b/libjava/java/lang/Short.java
new file mode 100644
index 00000000000..4a17f2d6ea7
--- /dev/null
+++ b/libjava/java/lang/Short.java
@@ -0,0 +1,145 @@
+/* Copyright (C) 1998, 1999 Cygnus Solutions
+
+ 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;
+
+ 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
+ public int compareTo(Object o) throws ClassCastException
+ {
+ if (o instanceof Short)
+ return this.value - ((Short) o).value;
+ else
+ throw new ClassCastException();
+ }
+
+ public boolean equals(Object obj)
+ {
+ return (obj != null && (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);
+ }
+}