com.vaadin.server
Class JsonCodec

java.lang.Object
  extended by com.vaadin.server.JsonCodec
All Implemented Interfaces:
java.io.Serializable

public class JsonCodec
extends java.lang.Object
implements java.io.Serializable

Decoder for converting RPC parameters and other values from JSON in transfer between the client and the server and vice versa.

Since:
7.0
See Also:
Serialized Form

Nested Class Summary
static interface JsonCodec.BeanProperty
           
 
Constructor Summary
JsonCodec()
           
 
Method Summary
static java.lang.Object decodeCustomType(java.lang.reflect.Type targetType, elemental.json.JsonValue value, ConnectorTracker connectorTracker)
           
static java.lang.Object decodeInternalOrCustomType(java.lang.reflect.Type targetType, elemental.json.JsonValue value, ConnectorTracker connectorTracker)
           
static java.lang.Object decodeInternalType(java.lang.reflect.Type targetType, boolean restrictToInternalTypes, elemental.json.JsonValue encodedJsonValue, ConnectorTracker connectorTracker)
          Decodes a value that is of an internal type.
static EncodeResult encode(java.lang.Object value, elemental.json.JsonValue diffState, java.lang.reflect.Type valueType, ConnectorTracker connectorTracker)
           
static java.util.Collection<JsonCodec.BeanProperty> getProperties(java.lang.Class<?> type)
           
static boolean isInternalTransportType(java.lang.String transportType)
           
static boolean isInternalType(java.lang.reflect.Type type)
           
static boolean jsonEquals(elemental.json.JsonValue a, elemental.json.JsonValue b)
          Compares two json values for deep equality.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JsonCodec

public JsonCodec()
Method Detail

isInternalTransportType

public static boolean isInternalTransportType(java.lang.String transportType)

isInternalType

public static boolean isInternalType(java.lang.reflect.Type type)

decodeInternalOrCustomType

public static java.lang.Object decodeInternalOrCustomType(java.lang.reflect.Type targetType,
                                                          elemental.json.JsonValue value,
                                                          ConnectorTracker connectorTracker)

decodeCustomType

public static java.lang.Object decodeCustomType(java.lang.reflect.Type targetType,
                                                elemental.json.JsonValue value,
                                                ConnectorTracker connectorTracker)

decodeInternalType

public static java.lang.Object decodeInternalType(java.lang.reflect.Type targetType,
                                                  boolean restrictToInternalTypes,
                                                  elemental.json.JsonValue encodedJsonValue,
                                                  ConnectorTracker connectorTracker)
Decodes a value that is of an internal type.

Ensures the encoded value is of the same type as target type.

Allows restricting collections so that they must be declared using generics. If this is used then all objects in the collection are encoded using the declared type. Otherwise only internal types are allowed in collections.

Parameters:
targetType - The type that should be returned by this method
valueAndType - The encoded value and type array
application - A reference to the application
enforceGenericsInCollections - true if generics should be enforce, false to only allow internal types in collections
Returns:

encode

public static EncodeResult encode(java.lang.Object value,
                                  elemental.json.JsonValue diffState,
                                  java.lang.reflect.Type valueType,
                                  ConnectorTracker connectorTracker)

getProperties

public static java.util.Collection<JsonCodec.BeanProperty> getProperties(java.lang.Class<?> type)
                                                                  throws java.beans.IntrospectionException
Throws:
java.beans.IntrospectionException

jsonEquals

public static boolean jsonEquals(elemental.json.JsonValue a,
                                 elemental.json.JsonValue b)
Compares two json values for deep equality. This is a helper for overcoming the fact that JsonValue#equals(Object) only does an identity check and JsonValue.jsEquals(JsonValue) is defined to use JavaScript semantics where arrays and objects are equals only based on identity.

Parameters:
a - the first json value to check, may not be null
b - the second json value to check, may not be null
Returns:
true if both json values are the same; false otherwise
Since:
7.4


Copyright © 2000-2014 Vaadin Ltd. All Rights Reserved.