GwtJsonCreator.java :  » GWT » itemscript » org » itemscript » core » gwt » Java Open Source

Java Open Source » GWT » itemscript 
itemscript » org » itemscript » core » gwt » GwtJsonCreator.java
/*
 * Copyright  2010, Data Base Architects, Inc. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 * 
 *     * Redistributions of source code must retain the above copyright notice,
 *       this list of conditions and the following disclaimer.
 *     * Redistributions in binary form must reproduce the above copyright notice,
 *       this list of conditions and the following disclaimer in the documentation
 *       and/or other materials provided with the distribution.
 *     * Neither the names of Kalinda Software, DBA Software, Data Base Architects,
 *       nor the names of its contributors may be used to endorse or promote products derived
 *       from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
 * SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
 * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 * 
 * Author: Jacob Davies
 */

package org.itemscript.core.gwt;

import org.itemscript.core.JsonSystem;
import org.itemscript.core.values.ItemscriptCreator;
import org.itemscript.core.values.JsonValue;

/**
 * A JsonFactory for the GWT environment.
 * <p>
 * It uses an unsafe eval-based parser derived from the GWT-JSON module's JSON parser.
 * 
 * @author Jacob Davies<br/><a href="mailto:jacob@itemscript.org">jacob@itemscript.org</a>
 *
 */
public class GwtJsonCreator extends ItemscriptCreator {
    /**
     * Create a new GwtJsonFactory.
     * 
     * @param system The associated JsonSystem.
     */
    public GwtJsonCreator(JsonSystem system) {
        super(system);
    }

    //@Override
    public JsonValue parse(String json) {
        return GwtJsonParser.parse(system(), json);
    }

    // This code converts GWT JSON values into Itemscript JSON values. It's commented because I only use it during debugging.
    //    private JsonValue convert(JSONValue value) {
    //        if (value.isString() != null) {
    //            return system().createString(value.isString()
    //                    .stringValue());
    //        } else if (value.isBoolean() != null) {
    //            return system().createBoolean(value.isBoolean()
    //                    .booleanValue());
    //        } else if (value.isNull() != null) {
    //            return system().createNull();
    //        } else if (value.isNumber() != null) {
    //            return system().createNumber(value.isNumber()
    //                    .doubleValue());
    //        } else if (value.isArray() != null) {
    //            JSONArray origArray = value.isArray();
    //            JsonArray array = system().createArray();
    //            for (int i = 0; i < origArray.size(); ++i) {
    //                array.add(convert(origArray.get(i)));
    //            }
    //            return array;
    //        } else if (value.isObject() != null) {
    //            JSONObject origObject = value.isObject();
    //            JsonObject object = system().createObject();
    //            for (String key : origObject.keySet()) {
    //                object.put(key, convert(origObject.get(key)));
    //            }
    //            return object;
    //        } else {
    //            // Should never happen
    //            throw new RuntimeException("Uknown value type: " + value);
    //        }
    //    }
    //@Override
    public JsonValue parseReader(Object input) {
        throw new UnsupportedOperationException("error.itemscript.parseReader.not.supported");
    }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.