2000-09-08 21:37:09 +02:00
|
|
|
/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
|
1999-04-07 16:42:40 +02:00
|
|
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
import java.io.Serializable;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @author Warren Levy <warrenl@cygnus.com>
|
|
|
|
* @date September 3, 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 Boolean extends Object implements Serializable
|
|
|
|
{
|
|
|
|
public static final Boolean FALSE = new Boolean(false);
|
|
|
|
public static final Boolean TRUE = new Boolean(true);
|
|
|
|
|
|
|
|
// This initialization is seemingly circular, but it is accepted
|
|
|
|
// by javac, and is handled specially by gcc.
|
|
|
|
public static final Class TYPE = boolean.class;
|
|
|
|
|
|
|
|
/* The boolean value of the instance. */
|
|
|
|
private boolean value;
|
|
|
|
|
2000-09-08 21:37:09 +02:00
|
|
|
private static final long serialVersionUID = -3665804199014368530L;
|
|
|
|
|
1999-04-07 16:42:40 +02:00
|
|
|
public Boolean(boolean boolVal)
|
|
|
|
{
|
|
|
|
value = boolVal;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Boolean(String strVal)
|
|
|
|
{
|
1999-12-17 06:11:28 +01:00
|
|
|
value = (strVal == null ? false : strVal.equalsIgnoreCase("true"));
|
1999-04-07 16:42:40 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public boolean booleanValue()
|
|
|
|
{
|
|
|
|
return value;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean equals(Object obj)
|
|
|
|
{
|
|
|
|
/* Don't need to compare obj to null as instanceof will do this. */
|
|
|
|
if (obj instanceof Boolean)
|
|
|
|
return value == ((Boolean) obj).value;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static boolean getBoolean(String property)
|
|
|
|
{
|
|
|
|
/* TBD: If a security manager exists and it doesn't permit accessing
|
|
|
|
* the property, it will throw an exception. Should we catch it?
|
|
|
|
*/
|
|
|
|
try
|
|
|
|
{
|
|
|
|
String val = System.getProperty(property);
|
|
|
|
return val == null ? false : val.equalsIgnoreCase("true");
|
|
|
|
}
|
|
|
|
catch (SecurityException e)
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public int hashCode()
|
|
|
|
{
|
|
|
|
/* These values are from the Java Lang. Spec. (Sec 20.4.7).
|
|
|
|
* TBD: They could be made private static final fields but they're only
|
|
|
|
* used here (and shouldn't be used anywhere else), though it might be
|
|
|
|
* useful to grep on something like JAVA_HASH_* values for us as
|
|
|
|
* developers.
|
|
|
|
*/
|
|
|
|
return value ? 1231 : 1237;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String toString()
|
|
|
|
{
|
|
|
|
return value ? "true" : "false";
|
|
|
|
}
|
|
|
|
|
|
|
|
public static Boolean valueOf(String str)
|
|
|
|
{
|
1999-12-02 20:59:30 +01:00
|
|
|
if (str == null)
|
|
|
|
return FALSE;
|
|
|
|
else
|
|
|
|
/* This returns a Boolean (big B), not a boolean (little b). */
|
|
|
|
return str.equalsIgnoreCase("true") ? TRUE : FALSE;
|
1999-04-07 16:42:40 +02:00
|
|
|
}
|
|
|
|
}
|