mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-20 00:09:34 +08:00
bc6ccd3316
* java/beans/PropertyChangeEvent.java (serialVersionUID): Added. * java/beans/PropertyVetoException.java (serialVersionUID): Added. * java/io/File.java (writeObject): Added. (readObject): Added. (serialVersionUID): Added. * java/io/ObjectOutputStream.java (writeObject): Initialized fieldsAlreadyWritten before recursion rather than after. * java/io/ObjectStreamClass.java (serialVersionUID): Added. * java/io/OptionalDataException.java (serialVersionUID): Added. (OptionalDataException): Made package private. * java/io/SyncFailedException.java (SyncFailedException): Removed default constructor to match spec. * java/lang/Boolean.java (serialVersionUID): Added. * java/lang/Byte.java (serialVersionUID): Added. * java/lang/Character.java (serialVersionUID): Added. * java/lang/Double.java (serialVersionUID): Added. * java/lang/Float.java (serialVersionUID): Added. * java/lang/Integer.java (serialVersionUID): Added. * java/lang/Long.java (serialVersionUID): Added. * java/lang/Number.java (serialVersionUID): Added. * java/lang/Short.java (serialVersionUID): Added. * java/lang/String.java (serialVersionUID): Added. * java/lang/ThreadDeath.java (ThreadDeath): Removed constructor to match spec. * java/lang/reflect/InvocationTargetException.java (serialVersionUID): Added. * java/net/URL.java (handler): Made transient. (hashCode): Added field for serialization, per spec. and use cached value if available. (serialVersionUID): Added. (URL): Initialize hashCode. (set): Adjust hashCode. (readObject): New Method to initialize the protocol handler when deserializing. (writeObject): New method. * java/text/BreakIterator.java: Removed 'implements Serializable'. * java/text/Collator.java: Removed 'implements Serializable'. * java/util/GregorianCalendar.java (serialVersionUID): Added. * java/util/Properties.java (serialVersionUID): Added. * java/util/Random.java (serialVersionUID): Added. (seed): Made private. (nextNextGaussian): Made private. (haveNextNextGaussian): Made private. * java/util/Stack.java (serialVersionUID): Added. * java/util/TimeZone.java (serialVersionUID): Added. * java/util/Vector.java (serialVersionUID): Added. Serialization mods. From-SVN: r36272
152 lines
3.1 KiB
Java
152 lines
3.1 KiB
Java
/* Copyright (C) 1998, 1999, 2000 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 Andrew Haley <aph@cygnus.com>
|
|
* @date September 25, 1998.
|
|
*/
|
|
/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
|
|
* "The Java Language Specification", ISBN 0-201-63451-1
|
|
* plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
|
|
* Status: Believed complete and correct.
|
|
*/
|
|
|
|
public final class Double extends Number
|
|
{
|
|
public static final double MIN_VALUE = 5e-324;
|
|
public static final double MAX_VALUE = 1.7976931348623157e+308;
|
|
public static final double NEGATIVE_INFINITY = -1.0d/0.0d;
|
|
public static final double POSITIVE_INFINITY = 1.0d/0.0d;
|
|
public static final double NaN = 0.0d/0.0d;
|
|
|
|
// This initialization is seemingly circular, but it is accepted
|
|
// by javac, and is handled specially by gcc.
|
|
public static final Class TYPE = double.class;
|
|
|
|
private double value;
|
|
|
|
private static final long serialVersionUID = -9172774392245257468L;
|
|
|
|
public native static double parseDouble (String s)
|
|
throws NumberFormatException;
|
|
|
|
public Double (double v)
|
|
{
|
|
value = v;
|
|
}
|
|
|
|
public Double (String s) throws NumberFormatException
|
|
{
|
|
value = valueOf (s).doubleValue ();
|
|
}
|
|
|
|
public String toString ()
|
|
{
|
|
return toString (value);
|
|
}
|
|
|
|
public boolean equals (Object obj)
|
|
{
|
|
if (obj == null)
|
|
return false;
|
|
|
|
if (!(obj instanceof Double))
|
|
return false;
|
|
|
|
Double d = (Double) obj;
|
|
|
|
return doubleToLongBits (value) == doubleToLongBits (d.doubleValue ());
|
|
}
|
|
|
|
public int hashCode ()
|
|
{
|
|
long v = doubleToLongBits (value);
|
|
return (int) (v ^ (v >>> 32));
|
|
}
|
|
|
|
public int intValue ()
|
|
{
|
|
return (int) value;
|
|
}
|
|
|
|
public long longValue ()
|
|
{
|
|
return (long) value;
|
|
}
|
|
|
|
public float floatValue ()
|
|
{
|
|
return (float) value;
|
|
}
|
|
|
|
public double doubleValue ()
|
|
{
|
|
return value;
|
|
}
|
|
|
|
public byte byteValue ()
|
|
{
|
|
return (byte) value;
|
|
}
|
|
|
|
public short shortValue ()
|
|
{
|
|
return (short) value;
|
|
}
|
|
|
|
native static String toString (double v, boolean isFloat);
|
|
|
|
public static String toString (double v)
|
|
{
|
|
return toString (v, false);
|
|
}
|
|
|
|
public static Double valueOf (String s) throws NullPointerException,
|
|
NumberFormatException
|
|
{
|
|
if (s == null)
|
|
throw new NullPointerException ();
|
|
|
|
return new Double (parseDouble (s));
|
|
}
|
|
|
|
public boolean isNaN ()
|
|
{
|
|
return isNaN (value);
|
|
}
|
|
|
|
public static boolean isNaN (double v)
|
|
{
|
|
long bits = doubleToLongBits (v);
|
|
long e = bits & 0x7ff0000000000000L;
|
|
long f = bits & 0x000fffffffffffffL;
|
|
|
|
return e == 0x7ff0000000000000L && f != 0L;
|
|
}
|
|
|
|
public boolean isInfinite ()
|
|
{
|
|
return isInfinite (value);
|
|
}
|
|
|
|
public static boolean isInfinite (double v)
|
|
{
|
|
long bits = doubleToLongBits (v);
|
|
long f = bits & 0x7fffffffffffffffL;
|
|
|
|
return f == 0x7ff0000000000000L;
|
|
}
|
|
|
|
public static native long doubleToLongBits (double value);
|
|
|
|
public static native double longBitsToDouble (long bits);
|
|
}
|
|
|