public class JsonCodec extends Object implements Serializable
Modifier and Type | Class and Description |
---|---|
static interface |
JsonCodec.BeanProperty |
Modifier and Type | Method and Description |
---|---|
static Object |
decodeCustomType(Type targetType,
JsonValue value,
ConnectorTracker connectorTracker) |
static Object |
decodeInternalOrCustomType(Type targetType,
JsonValue value,
ConnectorTracker connectorTracker) |
static Object |
decodeInternalType(Type targetType,
boolean restrictToInternalTypes,
JsonValue encodedJsonValue,
ConnectorTracker connectorTracker)
Decodes a value that is of an internal type.
|
static EncodeResult |
encode(Object value,
JsonValue diffState,
Type valueType,
ConnectorTracker connectorTracker) |
static Collection<JsonCodec.BeanProperty> |
getProperties(Class<?> type) |
static boolean |
isInternalTransportType(String transportType) |
static boolean |
isInternalType(Type type) |
static boolean |
jsonEquals(JsonValue a,
JsonValue b)
Compares two json values for deep equality.
|
static <TYPE> void |
setCustomSerializer(Class<TYPE> clazz,
JSONSerializer<TYPE> jsonSerializer)
Set a custom JSONSerializer for a specific Class.
|
public static boolean isInternalTransportType(String transportType)
public static boolean isInternalType(Type type)
public static Object decodeInternalOrCustomType(Type targetType, JsonValue value, ConnectorTracker connectorTracker)
public static Object decodeCustomType(Type targetType, JsonValue value, ConnectorTracker connectorTracker)
public static Object decodeInternalType(Type targetType, boolean restrictToInternalTypes, JsonValue encodedJsonValue, ConnectorTracker connectorTracker)
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.
targetType
- The type that should be returned by this methodrestrictToInternalTypes
- encodedJsonValue
- connectorTracker
- public static <TYPE> void setCustomSerializer(Class<TYPE> clazz, JSONSerializer<TYPE> jsonSerializer)
To remove a previously set serializer, call this method with the second
parameter set to null
.
Custom serializers should only be added from static initializers or other places that are guaranteed to run only once. Trying to add a serializer to a class that already has one will cause an exception.
Warning: removing existing custom serializers may lead into unexpected behavior in components that expect the customized data. The framework's custom serializers are loaded in the static initializer block of this class.
clazz
- The target class.jsonSerializer
- Custom JSONSerializer to add. If null
, remove custom
serializer from class clazz.IllegalArgumentException
- Thrown if parameter clazz is null.IllegalStateException
- Thrown if serializer for parameter clazz is already
registered and parameter jsonSerializer is not null.DateSerializer
public static EncodeResult encode(Object value, JsonValue diffState, Type valueType, ConnectorTracker connectorTracker)
public static Collection<JsonCodec.BeanProperty> getProperties(Class<?> type) throws IntrospectionException
IntrospectionException
public static boolean jsonEquals(JsonValue a, JsonValue b)
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.a
- the first json value to check, may not be nullb
- the second json value to check, may not be nulltrue
if both json values are the same;
false
otherwiseCopyright © 2020 Vaadin Ltd. All rights reserved.