1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/*
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  Licensed to the Apache Software Foundation (ASF) under one or more
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  contributor license agreements.  See the NOTICE file distributed with
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  this work for additional information regarding copyright ownership.
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  The ASF licenses this file to You under the Apache License, Version 2.0
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  (the "License"); you may not use this file except in compliance with
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  the License.  You may obtain a copy of the License at
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *     http://www.apache.org/licenses/LICENSE-2.0
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  See the License for the specific language governing permissions and
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  limitations under the License.
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage java.lang;
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.Serializable;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/**
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The wrapper for the primitive type {@code boolean}.
24f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson *
25f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @since 1.0
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic final class Boolean implements Serializable, Comparable<Boolean> {
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private static final long serialVersionUID = -3665804199014368530L;
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * The boolean value of the receiver.
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private final boolean value;
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * The {@link Class} object that represents the primitive type {@code
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * boolean}.
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings("unchecked")
41726ac583d69b37db03c6279af5b36df7b837ede1Joshua Bloch    public static final Class<Boolean> TYPE
42726ac583d69b37db03c6279af5b36df7b837ede1Joshua Bloch             = (Class<Boolean>) boolean[].class.getComponentType();
43e26ba79900d471d02d656f686926918ef7dc751fElliott Hughes    // Note: Boolean.TYPE can't be set to "boolean.class", since *that* is
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    // defined to be "java.lang.Boolean.TYPE";
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * The {@code Boolean} object that represents the primitive value
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * {@code true}.
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public static final Boolean TRUE = new Boolean(true);
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * The {@code Boolean} object that represents the primitive value
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * {@code false}.
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public static final Boolean FALSE = new Boolean(false);
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Constructs a new {@code Boolean} with its boolean value specified by
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * {@code string}. If {@code string} is not {@code null} and is equal to
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * "true" using a non-case sensitive comparison, the result will be a
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Boolean representing the primitive value {@code true}, otherwise it will
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * be a Boolean representing the primitive value {@code false}.
64f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson     *
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param string
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the string representing a boolean value.
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public Boolean(String string) {
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        this(parseBoolean(string));
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Constructs a new {@code Boolean} with the specified primitive boolean
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * value.
75f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson     *
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param value
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the primitive boolean value, {@code true} or {@code false}.
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public Boolean(boolean value) {
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        this.value = value;
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Gets the primitive value of this boolean, either {@code true} or
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * {@code false}.
86f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson     *
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return this object's primitive value, {@code true} or {@code false}.
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public boolean booleanValue() {
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return value;
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Compares this instance with the specified object and indicates if they
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * are equal. In order to be equal, {@code o} must be an instance of
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * {@code Boolean} and have the same boolean value as this object.
97f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson     *
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param o
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the object to compare this boolean with.
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return {@code true} if the specified object is equal to this
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         {@code Boolean}; {@code false} otherwise.
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @Override
1040d4daefcf389b6433a0af481ef44a84a2546541aElliott Hughes    @FindBugsSuppressWarnings("RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN")
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public boolean equals(Object o) {
1060d4daefcf389b6433a0af481ef44a84a2546541aElliott Hughes        return (o == this) || ((o instanceof Boolean) && (((Boolean) o).value == value));
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Compares this object to the specified boolean object to determine their
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * relative order.
112f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson     *
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param that
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the boolean object to compare this object to.
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return 0 if the value of this boolean and the value of {@code that} are
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         equal; a positive value if the value of this boolean is
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         {@code true} and the value of {@code that} is {@code false}; a
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         negative value if the value if this boolean is {@code false} and
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         the value of {@code that} is {@code true}.
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see java.lang.Comparable
121f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson     * @since 1.5
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public int compareTo(Boolean that) {
124c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes        return compare(value, that.value);
125c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes    }
126c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes
127c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes    /**
128c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes     * Compares two {@code boolean} values.
129c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes     * @return 0 if lhs = rhs, less than 0 if lhs &lt; rhs, and greater than 0 if lhs &gt; rhs.
130c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes     *         (Where true &gt; false.)
131c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes     * @since 1.7
132c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes     */
133c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes    public static int compare(boolean lhs, boolean rhs) {
134c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes        return lhs == rhs ? 0 : lhs ? 1 : -1;
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Returns an integer hash code for this boolean.
139f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson     *
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return this boolean's hash code, which is {@code 1231} for {@code true}
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         values and {@code 1237} for {@code false} values.
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @Override
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public int hashCode() {
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return value ? 1231 : 1237;
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Returns a string containing a concise, human-readable description of this
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * boolean.
151f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson     *
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return "true" if the value of this boolean is {@code true}, "false"
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         otherwise.
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @Override
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public String toString() {
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return String.valueOf(value);
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Returns the {@code boolean} value of the system property identified by
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * {@code string}.
163f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson     *
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param string
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the name of the requested system property.
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return {@code true} if the system property named by {@code string}
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         exists and it is equal to "true" using case insensitive
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         comparison, {@code false} otherwise.
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see System#getProperty(String)
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public static boolean getBoolean(String string) {
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (string == null || string.length() == 0) {
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return false;
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return (parseBoolean(System.getProperty(string)));
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Parses the specified string as a {@code boolean}.
180f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson     *
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param s
182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the string representation of a boolean value.
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return {@code true} if {@code s} is not {@code null} and is equal to
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         {@code "true"} using case insensitive comparison, {@code false}
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         otherwise.
186f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson     * @since 1.5
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public static boolean parseBoolean(String s) {
189f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        return "true".equalsIgnoreCase(s);
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
193f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson     * Converts the specified boolean to its string representation.
194f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson     *
195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param value
196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the boolean to convert.
197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return "true" if {@code value} is {@code true}, "false" otherwise.
198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public static String toString(boolean value) {
200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return String.valueOf(value);
201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Parses the specified string as a boolean value.
205f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson     *
206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param string
207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the string representation of a boolean value.
208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return {@code Boolean.TRUE} if {@code string} is equal to "true" using
209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         case insensitive comparison, {@code Boolean.FALSE} otherwise.
210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see #parseBoolean(String)
211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public static Boolean valueOf(String string) {
213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return parseBoolean(string) ? Boolean.TRUE : Boolean.FALSE;
214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Returns a {@code Boolean} instance for the specified boolean value.
218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>
219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * If it is not necessary to get a new {@code Boolean} instance, it is
220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * recommended to use this method instead of the constructor, since it
221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * returns its static instances, which results in better performance.
222f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson     *
223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param b
224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the boolean to convert to a {@code Boolean}.
225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return {@code Boolean.TRUE} if {@code b} is equal to {@code true},
226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         {@code Boolean.FALSE} otherwise.
227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public static Boolean valueOf(boolean b) {
229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return b ? Boolean.TRUE : Boolean.FALSE;
230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
232