| /* |
| * Copyright 2008 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| package com.google.gwt.json.client; |
| |
| import com.google.gwt.core.client.JavaScriptObject; |
| |
| /** |
| * Represents a JSON boolean value. |
| */ |
| public class JSONBoolean extends JSONValue { |
| |
| private static final JSONBoolean FALSE = new JSONBoolean(false); |
| private static final JSONBoolean TRUE = new JSONBoolean(true); |
| |
| /** |
| * Gets a reference to the singleton instance representing either |
| * <code>true</code> or <code>false</code>. |
| * |
| * @param b controls which value to get |
| * @return if <code>true</code>, the JSONBoolean instance representing |
| * <code>true</code> is returned; otherwise, the JSONBoolean |
| * instance representing <code>false</code> is returned |
| */ |
| public static JSONBoolean getInstance(boolean b) { |
| if (b) { |
| return TRUE; |
| } else { |
| return FALSE; |
| } |
| } |
| |
| /** |
| * Called from {@link #getUnwrapper()}. |
| */ |
| private static boolean unwrap(JSONBoolean value) { |
| return value.value; |
| } |
| |
| private final boolean value; |
| |
| /* |
| * This private constructor is used to build true and false. |
| */ |
| private JSONBoolean(boolean value) { |
| this.value = value; |
| } |
| |
| /** |
| * Returns <code>true</code> if this is the instance representing "true", |
| * <code>false</code> otherwise. |
| */ |
| public boolean booleanValue() { |
| return value; |
| } |
| |
| /** |
| * Returns <code>this</code>, as this is a JSONBoolean. |
| */ |
| @Override |
| public JSONBoolean isBoolean() { |
| return this; |
| } |
| |
| /** |
| * Returns "true" for the true value, and "false" for the false value. |
| */ |
| @Override |
| public String toString() { |
| return Boolean.toString(value); |
| } |
| |
| @Override |
| native JavaScriptObject getUnwrapper() /*-{ |
| return @com.google.gwt.json.client.JSONBoolean::unwrap(Lcom/google/gwt/json/client/JSONBoolean;); |
| }-*/; |
| } |