diff options
Diffstat (limited to 'libjava/java/lang/Boolean.java')
-rw-r--r-- | libjava/java/lang/Boolean.java | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/libjava/java/lang/Boolean.java b/libjava/java/lang/Boolean.java new file mode 100644 index 0000000..78ab77f --- /dev/null +++ b/libjava/java/lang/Boolean.java @@ -0,0 +1,95 @@ +/* Copyright (C) 1998, 1999 Cygnus Solutions + + 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; + + public Boolean(boolean boolVal) + { + value = boolVal; + } + + public Boolean(String strVal) + { + value = strVal.equalsIgnoreCase("true"); + } + + 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) + { + /* This returns a Boolean (big B), not a boolean (little b). */ + return str.equalsIgnoreCase("true") ? TRUE : FALSE; + } +} |