/******************************************************************************* * Copyright (c) 2011, 2015 EclipseSource and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * EclipseSource - initial API and implementation ******************************************************************************/ package org.eclipse.rap.rwt.internal.protocol; import static org.eclipse.rap.rwt.remote.JsonMapping.toJson; import java.util.Map; import org.eclipse.rap.json.JsonArray; import org.eclipse.rap.json.JsonObject; import org.eclipse.rap.json.JsonValue; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.Image; public final class JsonUtil { /** * @deprecated */ @Deprecated public static JsonValue createJsonValue( Object value ) { JsonValue result; if( value == null ) { result = JsonValue.NULL; } else if( value instanceof String ) { result = JsonValue.valueOf( ( String )value ); } else if( value instanceof Byte ) { result = JsonValue.valueOf( ( ( Byte )value ).intValue() ); } else if( value instanceof Short ) { result = JsonValue.valueOf( ( ( Short )value ).intValue() ); } else if( value instanceof Integer ) { result = JsonValue.valueOf( ( ( Integer )value ).intValue() ); } else if( value instanceof Long ) { result = JsonValue.valueOf( ( ( Long )value ).longValue() ); } else if( value instanceof Double ) { result = JsonValue.valueOf( ( ( Double )value ).doubleValue() ); } else if( value instanceof Float ) { result = JsonValue.valueOf( ( ( Float )value ).floatValue() ); } else if( value instanceof Boolean ) { result = JsonValue.valueOf( ( ( Boolean )value ).booleanValue() ); } else if( value instanceof int[] ) { result = createJsonArray( ( int[] )value ); } else if( value instanceof boolean[] ) { result = createJsonArray( ( boolean[] )value ); } else if( value instanceof Object[] ) { result = createJsonArray( ( Object[] )value ); } else if( value instanceof Map ) { result = createJsonObject( ( Map<?, ?> )value ); } else if( value instanceof JsonValue ) { result = ( JsonValue )value; } else { String message = "Parameter object can not be converted to JSON value: " + value; throw new IllegalArgumentException( message ); } return result; } public static JsonValue createJsonObject( Map<?, ?> properties ) { JsonValue result; if( properties != null ) { JsonObject object = new JsonObject(); Object[] keys = properties.keySet().toArray(); for( int i = 0; i < keys.length; i++ ) { String key = ( String )keys[ i ]; object.add( key, createJsonValue( properties.get( key ) ) ); } result = object; } else { result = JsonValue.NULL; } return result; } public static JsonArray createJsonArray( int... values ) { JsonArray array = new JsonArray(); for( int i = 0; i < values.length; i++ ) { array.add( values[ i ] ); } return array; } public static JsonArray createJsonArray( float... values ) { JsonArray array = new JsonArray(); for( int i = 0; i < values.length; i++ ) { array.add( values[ i ] ); } return array; } public static JsonArray createJsonArray( boolean... values ) { JsonArray array = new JsonArray(); for( int i = 0; i < values.length; i++ ) { array.add( values[ i ] ); } return array; } public static JsonArray createJsonArray( String... values ) { JsonArray array = new JsonArray(); for( int i = 0; i < values.length; i++ ) { array.add( values[ i ] ); } return array; } public static JsonArray createJsonArray( Color... values ) { JsonArray array = new JsonArray(); for( int i = 0; i < values.length; i++ ) { array.add( toJson( values[ i ] ) ); } return array; } public static JsonArray createJsonArray( Font... values ) { JsonArray array = new JsonArray(); for( int i = 0; i < values.length; i++ ) { array.add( toJson( values[ i ] ) ); } return array; } public static JsonArray createJsonArray( Image... values ) { JsonArray array = new JsonArray(); for( int i = 0; i < values.length; i++ ) { array.add( toJson( values[ i ] ) ); } return array; } private static JsonValue createJsonArray( Object[] values ) { JsonValue result; if( values != null ) { JsonArray array = new JsonArray(); for( int i = 0; i < values.length; i++ ) { array.add( createJsonValue( values[ i ] ) ); } result = array; } else { result = JsonValue.NULL; } return result; } }