diff -r 4252bfc396fc -r d382dacfd73f emul/mini/src/main/java/java/lang/Short.java --- a/emul/mini/src/main/java/java/lang/Short.java Tue Feb 26 14:55:55 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,468 +0,0 @@ -/* - * Copyright (c) 1996, 2009, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code 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 General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package java.lang; - -/** - * The {@code Short} class wraps a value of primitive type {@code - * short} in an object. An object of type {@code Short} contains a - * single field whose type is {@code short}. - * - *

In addition, this class provides several methods for converting - * a {@code short} to a {@code String} and a {@code String} to a - * {@code short}, as well as other constants and methods useful when - * dealing with a {@code short}. - * - * @author Nakul Saraiya - * @author Joseph D. Darcy - * @see java.lang.Number - * @since JDK1.1 - */ -public final class Short extends Number implements Comparable { - - /** - * A constant holding the minimum value a {@code short} can - * have, -215. - */ - public static final short MIN_VALUE = -32768; - - /** - * A constant holding the maximum value a {@code short} can - * have, 215-1. - */ - public static final short MAX_VALUE = 32767; - - /** - * The {@code Class} instance representing the primitive type - * {@code short}. - */ - public static final Class TYPE = (Class) Class.getPrimitiveClass("short"); - - /** - * Returns a new {@code String} object representing the - * specified {@code short}. The radix is assumed to be 10. - * - * @param s the {@code short} to be converted - * @return the string representation of the specified {@code short} - * @see java.lang.Integer#toString(int) - */ - public static String toString(short s) { - return Integer.toString((int)s, 10); - } - - /** - * Parses the string argument as a signed {@code short} in the - * radix specified by the second argument. The characters in the - * string must all be digits, of the specified radix (as - * determined by whether {@link java.lang.Character#digit(char, - * int)} returns a nonnegative value) except that the first - * character may be an ASCII minus sign {@code '-'} - * ('\u002D') to indicate a negative value or an - * ASCII plus sign {@code '+'} ('\u002B') to - * indicate a positive value. The resulting {@code short} value - * is returned. - * - *

An exception of type {@code NumberFormatException} is - * thrown if any of the following situations occurs: - *

- * - * @param s the {@code String} containing the - * {@code short} representation to be parsed - * @param radix the radix to be used while parsing {@code s} - * @return the {@code short} represented by the string - * argument in the specified radix. - * @throws NumberFormatException If the {@code String} - * does not contain a parsable {@code short}. - */ - public static short parseShort(String s, int radix) - throws NumberFormatException { - int i = Integer.parseInt(s, radix); - if (i < MIN_VALUE || i > MAX_VALUE) - throw new NumberFormatException( - "Value out of range. Value:\"" + s + "\" Radix:" + radix); - return (short)i; - } - - /** - * Parses the string argument as a signed decimal {@code - * short}. The characters in the string must all be decimal - * digits, except that the first character may be an ASCII minus - * sign {@code '-'} ('\u002D') to indicate a - * negative value or an ASCII plus sign {@code '+'} - * ('\u002B') to indicate a positive value. The - * resulting {@code short} value is returned, exactly as if the - * argument and the radix 10 were given as arguments to the {@link - * #parseShort(java.lang.String, int)} method. - * - * @param s a {@code String} containing the {@code short} - * representation to be parsed - * @return the {@code short} value represented by the - * argument in decimal. - * @throws NumberFormatException If the string does not - * contain a parsable {@code short}. - */ - public static short parseShort(String s) throws NumberFormatException { - return parseShort(s, 10); - } - - /** - * Returns a {@code Short} object holding the value - * extracted from the specified {@code String} when parsed - * with the radix given by the second argument. The first argument - * is interpreted as representing a signed {@code short} in - * the radix specified by the second argument, exactly as if the - * argument were given to the {@link #parseShort(java.lang.String, - * int)} method. The result is a {@code Short} object that - * represents the {@code short} value specified by the string. - * - *

In other words, this method returns a {@code Short} object - * equal to the value of: - * - *

- * {@code new Short(Short.parseShort(s, radix))} - *
- * - * @param s the string to be parsed - * @param radix the radix to be used in interpreting {@code s} - * @return a {@code Short} object holding the value - * represented by the string argument in the - * specified radix. - * @throws NumberFormatException If the {@code String} does - * not contain a parsable {@code short}. - */ - public static Short valueOf(String s, int radix) - throws NumberFormatException { - return valueOf(parseShort(s, radix)); - } - - /** - * Returns a {@code Short} object holding the - * value given by the specified {@code String}. The argument - * is interpreted as representing a signed decimal - * {@code short}, exactly as if the argument were given to - * the {@link #parseShort(java.lang.String)} method. The result is - * a {@code Short} object that represents the - * {@code short} value specified by the string. - * - *

In other words, this method returns a {@code Short} object - * equal to the value of: - * - *

- * {@code new Short(Short.parseShort(s))} - *
- * - * @param s the string to be parsed - * @return a {@code Short} object holding the value - * represented by the string argument - * @throws NumberFormatException If the {@code String} does - * not contain a parsable {@code short}. - */ - public static Short valueOf(String s) throws NumberFormatException { - return valueOf(s, 10); - } - - private static class ShortCache { - private ShortCache(){} - - static final Short cache[] = new Short[-(-128) + 127 + 1]; - - static { - for(int i = 0; i < cache.length; i++) - cache[i] = new Short((short)(i - 128)); - } - } - - /** - * Returns a {@code Short} instance representing the specified - * {@code short} value. - * If a new {@code Short} instance is not required, this method - * should generally be used in preference to the constructor - * {@link #Short(short)}, as this method is likely to yield - * significantly better space and time performance by caching - * frequently requested values. - * - * This method will always cache values in the range -128 to 127, - * inclusive, and may cache other values outside of this range. - * - * @param s a short value. - * @return a {@code Short} instance representing {@code s}. - * @since 1.5 - */ - public static Short valueOf(short s) { - final int offset = 128; - int sAsInt = s; - if (sAsInt >= -128 && sAsInt <= 127) { // must cache - return ShortCache.cache[sAsInt + offset]; - } - return new Short(s); - } - - /** - * Decodes a {@code String} into a {@code Short}. - * Accepts decimal, hexadecimal, and octal numbers given by - * the following grammar: - * - *
- *
- *
DecodableString: - *
Signopt DecimalNumeral - *
Signopt {@code 0x} HexDigits - *
Signopt {@code 0X} HexDigits - *
Signopt {@code #} HexDigits - *
Signopt {@code 0} OctalDigits - *

- *

Sign: - *
{@code -} - *
{@code +} - *
- *
- * - * DecimalNumeral, HexDigits, and OctalDigits - * are as defined in section 3.10.1 of - * The Java™ Language Specification, - * except that underscores are not accepted between digits. - * - *

The sequence of characters following an optional - * sign and/or radix specifier ("{@code 0x}", "{@code 0X}", - * "{@code #}", or leading zero) is parsed as by the {@code - * Short.parseShort} method with the indicated radix (10, 16, or - * 8). This sequence of characters must represent a positive - * value or a {@link NumberFormatException} will be thrown. The - * result is negated if first character of the specified {@code - * String} is the minus sign. No whitespace characters are - * permitted in the {@code String}. - * - * @param nm the {@code String} to decode. - * @return a {@code Short} object holding the {@code short} - * value represented by {@code nm} - * @throws NumberFormatException if the {@code String} does not - * contain a parsable {@code short}. - * @see java.lang.Short#parseShort(java.lang.String, int) - */ - public static Short decode(String nm) throws NumberFormatException { - int i = Integer.decode(nm); - if (i < MIN_VALUE || i > MAX_VALUE) - throw new NumberFormatException( - "Value " + i + " out of range from input " + nm); - return valueOf((short)i); - } - - /** - * The value of the {@code Short}. - * - * @serial - */ - private final short value; - - /** - * Constructs a newly allocated {@code Short} object that - * represents the specified {@code short} value. - * - * @param value the value to be represented by the - * {@code Short}. - */ - public Short(short value) { - this.value = value; - } - - /** - * Constructs a newly allocated {@code Short} object that - * represents the {@code short} value indicated by the - * {@code String} parameter. The string is converted to a - * {@code short} value in exactly the manner used by the - * {@code parseShort} method for radix 10. - * - * @param s the {@code String} to be converted to a - * {@code Short} - * @throws NumberFormatException If the {@code String} - * does not contain a parsable {@code short}. - * @see java.lang.Short#parseShort(java.lang.String, int) - */ - public Short(String s) throws NumberFormatException { - this.value = parseShort(s, 10); - } - - /** - * Returns the value of this {@code Short} as a - * {@code byte}. - */ - public byte byteValue() { - return (byte)value; - } - - /** - * Returns the value of this {@code Short} as a - * {@code short}. - */ - public short shortValue() { - return value; - } - - /** - * Returns the value of this {@code Short} as an - * {@code int}. - */ - public int intValue() { - return (int)value; - } - - /** - * Returns the value of this {@code Short} as a - * {@code long}. - */ - public long longValue() { - return (long)value; - } - - /** - * Returns the value of this {@code Short} as a - * {@code float}. - */ - public float floatValue() { - return (float)value; - } - - /** - * Returns the value of this {@code Short} as a - * {@code double}. - */ - public double doubleValue() { - return (double)value; - } - - /** - * Returns a {@code String} object representing this - * {@code Short}'s value. The value is converted to signed - * decimal representation and returned as a string, exactly as if - * the {@code short} value were given as an argument to the - * {@link java.lang.Short#toString(short)} method. - * - * @return a string representation of the value of this object in - * base 10. - */ - public String toString() { - return Integer.toString((int)value); - } - - /** - * Returns a hash code for this {@code Short}; equal to the result - * of invoking {@code intValue()}. - * - * @return a hash code value for this {@code Short} - */ - public int hashCode() { - return (int)value; - } - - /** - * Compares this object to the specified object. The result is - * {@code true} if and only if the argument is not - * {@code null} and is a {@code Short} object that - * contains the same {@code short} value as this object. - * - * @param obj the object to compare with - * @return {@code true} if the objects are the same; - * {@code false} otherwise. - */ - public boolean equals(Object obj) { - if (obj instanceof Short) { - return value == ((Short)obj).shortValue(); - } - return false; - } - - /** - * Compares two {@code Short} objects numerically. - * - * @param anotherShort the {@code Short} to be compared. - * @return the value {@code 0} if this {@code Short} is - * equal to the argument {@code Short}; a value less than - * {@code 0} if this {@code Short} is numerically less - * than the argument {@code Short}; and a value greater than - * {@code 0} if this {@code Short} is numerically - * greater than the argument {@code Short} (signed - * comparison). - * @since 1.2 - */ - public int compareTo(Short anotherShort) { - return compare(this.value, anotherShort.value); - } - - /** - * Compares two {@code short} values numerically. - * The value returned is identical to what would be returned by: - *

-     *    Short.valueOf(x).compareTo(Short.valueOf(y))
-     * 
- * - * @param x the first {@code short} to compare - * @param y the second {@code short} to compare - * @return the value {@code 0} if {@code x == y}; - * a value less than {@code 0} if {@code x < y}; and - * a value greater than {@code 0} if {@code x > y} - * @since 1.7 - */ - public static int compare(short x, short y) { - return x - y; - } - - /** - * The number of bits used to represent a {@code short} value in two's - * complement binary form. - * @since 1.5 - */ - public static final int SIZE = 16; - - /** - * Returns the value obtained by reversing the order of the bytes in the - * two's complement representation of the specified {@code short} value. - * - * @return the value obtained by reversing (or, equivalently, swapping) - * the bytes in the specified {@code short} value. - * @since 1.5 - */ - public static short reverseBytes(short i) { - return (short) (((i & 0xFF00) >> 8) | (i << 8)); - } - - /** use serialVersionUID from JDK 1.1. for interoperability */ - private static final long serialVersionUID = 7515723908773894738L; -}