From 4a8fcbf1fe2f7cf2c80e4688115c3e49da1c31a9 Mon Sep 17 00:00:00 2001 From: tromey Date: Sat, 15 Jun 2002 19:45:34 +0000 Subject: * java/lang/AbstractMethodError.java: Re-merged with Classpath. * java/lang/ArithmeticException.java: Likewise. * java/lang/ArrayIndexOutOfBoundsException.java: Likewise. * java/lang/ArrayStoreException.java: Likewise. * java/lang/Byte.java: Likewise. * java/lang/CharSequence.java: Likewise. * java/lang/ClassCastException.java: Likewise. * java/lang/ClassCircularityError.java: Likewise. * java/lang/ClassFormatError.java: Likewise. * java/lang/CloneNotSupportedException.java: Likewise. * java/lang/Cloneable.java: Likewise. * java/lang/Comparable.java: Likewise. * java/lang/Compiler.java: Likewise. * java/lang/Error.java: Likewise. * java/lang/ExceptionInInitializerError.java: Likewise. * java/lang/IllegalAccessError.java: Likewise. * java/lang/IllegalAccessException.java: Likewise. * java/lang/IllegalArgumentException.java: Likewise. * java/lang/IllegalMonitorStateException.java: Likewise. * java/lang/IllegalStateException.java: Likewise. * java/lang/IllegalThreadStateException.java: Likewise. * java/lang/IncompatibleClassChangeError.java: Likewise. * java/lang/IndexOutOfBoundsException.java: Likewise. * java/lang/InheritableThreadLocal.java: Likewise. * java/lang/InstantiationError.java: Likewise. * java/lang/InstantiationException.java: Likewise. * java/lang/InternalError.java: Likewise. * java/lang/InterruptedException.java: Likewise. * java/lang/LinkageError.java: Likewise. * java/lang/NegativeArraySizeException.java: Likewise. * java/lang/NoClassDefFoundError.java: Likewise. * java/lang/NoSuchFieldError.java: Likewise. * java/lang/NoSuchFieldException.java: Likewise. * java/lang/NoSuchMethodError.java: Likewise. * java/lang/NoSuchMethodException.java: Likewise. * java/lang/NullPointerException.java: Likewise. * java/lang/NumberFormatException.java: Likewise. * java/lang/OutOfMemoryError.java: Likewise. * java/lang/Process.java: Likewise. * java/lang/Runnable.java: Likewise. * java/lang/RuntimePermission.java: Likewise. * java/lang/SecurityException.java: Likewise. * java/lang/Short.java: Likewise. * java/lang/StackOverflowError.java: Likewise. * java/lang/StringIndexOutOfBoundsException.java: Likewise. * java/lang/ThreadDeath.java: Likewise. * java/lang/ThreadLocal.java: Likewise. * java/lang/UnknownError.java: Likewise. * java/lang/UnsatisfiedLinkError.java: Likewise. * java/lang/UnsupportedClassVersionError.java: Likewise. * java/lang/UnsupportedOperationException.java: Likewise. * java/lang/VerifyError.java: Likewise. * java/lang/VirtualMachineError.java: Likewise. * java/lang/reflect/InvocationTargetException.java: Likewise. * java/net/BindException.java: Likewise. * java/net/ConnectException.java: Likewise. * java/net/MalformedURLException.java: Likewise. * java/net/NoRouteToHostException.java: Likewise. * java/net/ProtocolException.java: Likewise. * java/net/SocketException.java: Likewise. * java/net/UnknownHostException.java: Likewise. * java/net/UnknownServiceException.java: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54656 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/java/lang/Short.java | 321 ++++++++++++++++++++++++------------------- 1 file changed, 178 insertions(+), 143 deletions(-) (limited to 'libjava/java/lang/Short.java') diff --git a/libjava/java/lang/Short.java b/libjava/java/lang/Short.java index cca710c89c7..54e36a5f65c 100644 --- a/libjava/java/lang/Short.java +++ b/libjava/java/lang/Short.java @@ -1,5 +1,5 @@ -/* java.lang.Short - Copyright (C) 1998, 2001 Free Software Foundation, Inc. +/* Short.java -- object wrapper for short + Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. - + GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU @@ -47,35 +47,44 @@ package java.lang; * * @author Paul Fisher * @author John Keiser - * @since JDK 1.0 + * @author Eric Blake + * @since 1.1 + * @status updated to 1.4 */ public final class Short extends Number implements Comparable { - static final long serialVersionUID = 7515723908773894738L; + /** + * Compatible with JDK 1.1+. + */ + private static final long serialVersionUID = 7515723908773894738L; /** - * The minimum value a short can represent is -32768. + * The minimum value a short can represent is -32768 (or + * -215short can represent is 32767. + * The minimum value a short can represent is 32767 (or + * 215short is represented by this + * The primitive type short is represented by this * Class object. */ public static final Class TYPE = VMClassLoader.getPrimitiveClass('S'); /** * The immutable value of this Short. + * + * @serial the wrapped short */ private final short value; /** - * Create a Short object representing the value of the + * Create a Short object representing the value of the * short argument. * * @param value the value to use @@ -86,229 +95,255 @@ public final class Short extends Number implements Comparable } /** - * Create a Short object representing the value of the + * Create a Short object representing the value of the * argument after conversion to a short. * - * @param s the string to convert. + * @param s the string to convert + * @throws NumberFormatException if the String cannot be parsed */ - public Short(String s) throws NumberFormatException + public Short(String s) { value = parseShort(s, 10); } /** - * Return a hashcode representing this Object. - * - * Short's hash code is calculated by simply returning its - * value. + * Converts the short to a String and assumes + * a radix of 10. * - * @return this Object's hash code. + * @param s the short to convert to String + * @return the String representation of the argument */ - public int hashCode() + public static String toString(short s) { - return value; + return String.valueOf(s); } /** - * If the Object is not null, is an - * instanceof Short, and represents - * the same primitive short value return - * true. Otherwise false is returned. + * Converts the specified String into a short. + * This function assumes a radix of 10. + * + * @param s the String to convert + * @return the short value of s + * @throws NumberFormatException if s cannot be parsed as a + * short */ - public boolean equals(Object obj) - { - return obj instanceof Short && ((Short)obj).value == value; - } - - /** - * Converts the short to a String and assumes - * a radix of 10. - * @param i the short to convert to String - * @return the String representation of the argument. - */ - public static String toString(short i) + public static short parseShort(String s) { - return Integer.toString((int) i); - } - - /** - * Converts the Short value to a String and - * assumes a radix of 10. - * @return the String representation of this Short. - */ - public String toString() - { - return Integer.toString ((int) value); + return parseShort(s, 10); } /** - * Creates a new Short object using the String, - * assuming a radix of 10. - * @param s the String to convert. - * @return the new Short. - * @see #Short(java.lang.String) - * @see #parseShort(java.lang.String) - * @exception NumberFormatException thrown if the String - * cannot be parsed as a short. + * Converts the specified String into a short + * using the specified radix (base). The string must not be null + * or empty. It may begin with an optional '-', which will negate the answer, + * provided that there are also valid digits. Each digit is parsed as if by + * Character.digit(d, radix), and must be in the range + * 0 to radix - 1. Finally, the result must be + * within MIN_VALUE to MAX_VALUE, inclusive. + * Unlike Double.parseDouble, you may not have a leading '+'. + * + * @param s the String to convert + * @param radix the radix (base) to use in the conversion + * @return the String argument converted to short + * @throws NumberFormatException if s cannot be parsed as a + * short */ - public static Short valueOf(String s) throws NumberFormatException + public static short parseShort(String s, int radix) { - return new Short(parseShort(s)); + int i = Integer.parseInt(s, radix, false); + if ((short) i != i) + throw new NumberFormatException(); + return (short) i; } /** * Creates a new Short object using the String * and specified radix (base). - * @param s the String to convert. - * @param radix the radix (base) to convert with. - * @return the new Short. - * @see #parseShort(java.lang.String,int) - * @exception NumberFormatException thrown if the String - * cannot be parsed as a short. - */ - public static Short valueOf(String s, int radix) - throws NumberFormatException - { - return new Short(parseShort(s, radix)); - } - - /** - * Converts the specified String into a short. - * This function assumes a radix of 10. * * @param s the String to convert - * @return the short value of the String - * argument. - * @exception NumberFormatException thrown if the String - * cannot be parsed as a short. + * @param radix the radix (base) to convert with + * @return the new Short + * @throws NumberFormatException if s cannot be parsed as a + * short + * @see #parseShort(String, int) */ - public static short parseShort(String s) throws NumberFormatException + public static Short valueOf(String s, int radix) { - return parseShort(s, 10); + return new Short(parseShort(s, radix)); } /** - * Converts the specified String into a short - * using the specified radix (base). + * Creates a new Short object using the String, + * assuming a radix of 10. * * @param s the String to convert - * @param radix the radix (base) to use in the conversion - * @return the String argument converted to short. - * @exception NumberFormatException thrown if the String - * cannot be parsed as a short. + * @return the new Short + * @throws NumberFormatException if s cannot be parsed as a + * short + * @see #Short(String) + * @see #parseShort(String) */ - public static short parseShort(String s, int radix) - throws NumberFormatException + public static Short valueOf(String s) { - int i = Integer.parseInt(s, radix); - if (i < MIN_VALUE || i > MAX_VALUE) - throw new NumberFormatException(); - return (short) i; + return new Short(parseShort(s, 10)); } /** * Convert the specified String into a Short. - * The String may represent decimal, hexadecimal, or + * The String may represent decimal, hexadecimal, or * octal numbers. * - * The String argument is interpreted based on the leading - * characters. Depending on what the String begins with, the base will be - * interpreted differently: - * - * - * - * - * - * - * - * - *
Leading
Characters
Base
#16
0x16
0X16
08
Anything
Else
10
+ *

The extended BNF grammar is as follows:
+ *

+   * DecodableString:
+   *      ( [ - ] DecimalNumber )
+   *    | ( [ - ] ( 0x | 0X
+   *              | # ) HexDigit { HexDigit } )
+   *    | ( [ - ] 0 { OctalDigit } )
+   * DecimalNumber:
+   *        DecimalDigit except '0' { DecimalDigit }
+   * DecimalDigit:
+   *        Character.digit(d, 10) has value 0 to 9
+   * OctalDigit:
+   *        Character.digit(d, 8) has value 0 to 7
+   * DecimalDigit:
+   *        Character.digit(d, 16) has value 0 to 15
+   * 
+ * Finally, the value must be in the range MIN_VALUE to + * MAX_VALUE, or an exception is thrown. * - * @param s the String to interpret. - * @return the value of the String as a Short. - * @exception NumberFormatException thrown if the String - * cannot be parsed as a short. + * @param s the String to interpret + * @return the value of the String as a Short + * @throws NumberFormatException if s cannot be parsed as a + * short + * @throws NullPointerException if s is null + * @see Integer#decode(String) */ - public static Short decode(String s) throws NumberFormatException + public static Short decode(String s) { - int i = (Integer.decode(s)).intValue(); - if (i < MIN_VALUE || i > MAX_VALUE) + int i = Integer.parseInt(s, 10, true); + if ((short) i != i) throw new NumberFormatException(); return new Short((short) i); } - /** Return the value of this Short as an short. - ** @return the value of this Short as an short. - **/ + /** + * Return the value of this Short as a byte. + * + * @return the byte value + */ public byte byteValue() { return (byte) value; } - /** Return the value of this Short as an short. - ** @return the value of this Short as an short. - **/ + /** + * Return the value of this Short. + * + * @return the short value + */ public short shortValue() { return value; } - /** Return the value of this Short as an int. - ** @return the value of this Short as an int. - **/ + /** + * Return the value of this Short as an int. + * + * @return the int value + */ public int intValue() { return value; } - /** Return the value of this Short as a long. - ** @return the value of this Short as a long. - **/ + /** + * Return the value of this Short as a long. + * + * @return the long value + */ public long longValue() { return value; } - /** Return the value of this Short as a float. - ** @return the value of this Short as a float. - **/ + /** + * Return the value of this Short as a float. + * + * @return the float value + */ public float floatValue() { return value; } - /** Return the value of this Short as a double. - ** @return the value of this Short as a double. - **/ + /** + * Return the value of this Short as a double. + * + * @return the double value + */ public double doubleValue() { return value; } /** - * Compare two Shorts numerically by comparing their - * short values. - * @return a positive value if this Short is greater - * in value than the argument Short; a negative value - * if this Short is smaller in value than the argument - * Short; and 0, zero, if this - * Short is equal in value to the argument - * Short. + * Converts the Short value to a String and + * assumes a radix of 10. + * + * @return the String representation of this Short + */ + public String toString() + { + return String.valueOf(value); + } + + /** + * Return a hashcode representing this Object. Short's hash + * code is simply its value. + * + * @return this Object's hash code + */ + public int hashCode() + { + return value; + } + + /** + * Returns true if obj is an instance of + * Short and represents the same short value. + * + * @param obj the object to compare + * @return whether these Objects are semantically equal + */ + public boolean equals(Object obj) + { + return obj instanceof Short && value == ((Short) obj).value; + } + + /** + * Compare two Shorts numerically by comparing their short + * values. The result is positive if the first is greater, negative if the + * second is greater, and 0 if the two are equal. * + * @param s the Short to compare + * @return the comparison * @since 1.2 */ public int compareTo(Short s) { return value - s.value; } - + /** - * Behaves like compareTo(java.lang.Short) unless the Object - * is not a Short. Then it throws a - * ClassCastException. - * @exception ClassCastException if the argument is not a - * Short. + * Behaves like compareTo(Short) unless the Object + * is not a Short. * + * @param o the object to compare + * @return the comparison + * @throws ClassCastException if the argument is not a Short + * @see #compareTo(Short) + * @see Comparable * @since 1.2 */ public int compareTo(Object o) -- cgit v1.2.1