aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang/Short.java
blob: a8bd9658284cb14527eea11cf61408aa5c217a4b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
/* Copyright (C) 1998, 1999  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;

  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);
  }
}