com.google.gwt.json.client.JSONBoolean.java Source code

Java tutorial

Introduction

Here is the source code for com.google.gwt.json.client.JSONBoolean.java

Source

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