/* * 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;); }-*/; }