@@ -5,19 +5,23 @@ | |||
package com.vaadin.terminal.gwt.client.communication; | |||
import com.google.gwt.json.client.JSONObject; | |||
import com.google.gwt.json.client.JSONValue; | |||
import com.vaadin.terminal.gwt.client.ConnectorMap; | |||
import com.vaadin.terminal.gwt.server.JsonCodec; | |||
/** | |||
* Serializer that can deserialize custom objects received from the server. | |||
* Implementors of this interface knows how to serialize an Object of a given | |||
* type to JSON and how to deserialize the JSON back into an object. | |||
* | |||
* Each serializer can handle objects of a single type - see | |||
* {@link SerializerMap}. | |||
* The {@link #serialize(Object, ConnectorMap)} and | |||
* {@link #deserialize(JSONObject, ConnectorMap)} methods must be symmetric so | |||
* they can be chained and produce the original result (or an equal result). | |||
* | |||
* Each {@link JSONSerializer} implementation can handle an object of a single | |||
* type - see {@link SerializerMap}. | |||
* | |||
* @since 7.0 | |||
*/ | |||
public interface VaadinSerializer { | |||
public interface JSONSerializer { | |||
/** | |||
* Creates and deserializes an object received from the server. Must be |
@@ -80,7 +80,7 @@ public class JsonDecoder { | |||
val = idMapper.getConnector(String.valueOf(value)); | |||
} else { | |||
// object, class name as type | |||
VaadinSerializer serializer = serializerMap | |||
JSONSerializer serializer = serializerMap | |||
.getSerializer(variableType); | |||
// TODO handle case with no serializer found | |||
Object object = serializer |
@@ -100,7 +100,7 @@ public class JsonEncoder { | |||
// Try to find a generated serializer object, class name is the | |||
// type | |||
String type = value.getClass().getName(); | |||
VaadinSerializer serializer = JsonDecoder.serializerMap | |||
JSONSerializer serializer = JsonDecoder.serializerMap | |||
.getSerializer(type); | |||
// TODO handle case with no serializer found |
@@ -8,7 +8,7 @@ import com.vaadin.terminal.gwt.widgetsetutils.SerializerMapGenerator; | |||
/** | |||
* Provide a mapping from a type (communicated between the server and the | |||
* client) and a {@link VaadinSerializer} instance. | |||
* client) and a {@link JSONSerializer} instance. | |||
* | |||
* An implementation of this class is created at GWT compilation time by | |||
* {@link SerializerMapGenerator}, so this interface can be instantiated with | |||
@@ -29,6 +29,6 @@ public interface SerializerMap { | |||
* if no serializer is found | |||
*/ | |||
// TODO better error handling in javadoc and in generator | |||
public VaadinSerializer getSerializer(String type); | |||
public JSONSerializer getSerializer(String type); | |||
} |
@@ -28,7 +28,7 @@ import com.vaadin.terminal.gwt.client.ConnectorMap; | |||
import com.vaadin.terminal.gwt.client.communication.JsonDecoder; | |||
import com.vaadin.terminal.gwt.client.communication.JsonEncoder; | |||
import com.vaadin.terminal.gwt.client.communication.SerializerMap; | |||
import com.vaadin.terminal.gwt.client.communication.VaadinSerializer; | |||
import com.vaadin.terminal.gwt.client.communication.JSONSerializer; | |||
/** | |||
* GWT generator for creating serializer classes for custom classes sent from | |||
@@ -105,7 +105,7 @@ public class SerializerGenerator extends Generator { | |||
composer.addImport(JsonDecoder.class.getName()); | |||
// composer.addImport(VaadinSerializer.class.getName()); | |||
composer.addImplementedInterface(VaadinSerializer.class.getName()); | |||
composer.addImplementedInterface(JSONSerializer.class.getName()); | |||
SourceWriter sourceWriter = composer.createSourceWriter(context, | |||
printWriter); |
@@ -25,7 +25,7 @@ import com.vaadin.terminal.gwt.client.communication.ClientRpc; | |||
import com.vaadin.terminal.gwt.client.communication.SerializerMap; | |||
import com.vaadin.terminal.gwt.client.communication.ServerRpc; | |||
import com.vaadin.terminal.gwt.client.communication.SharedState; | |||
import com.vaadin.terminal.gwt.client.communication.VaadinSerializer; | |||
import com.vaadin.terminal.gwt.client.communication.JSONSerializer; | |||
/** | |||
* GWT generator that creates a {@link SerializerMap} implementation (mapper | |||
@@ -98,7 +98,7 @@ public class SerializerMapGenerator extends Generator { | |||
printWriter); | |||
sourceWriter.indent(); | |||
sourceWriter.println("public " + VaadinSerializer.class.getName() | |||
sourceWriter.println("public " + JSONSerializer.class.getName() | |||
+ " getSerializer(String type) {"); | |||
sourceWriter.indent(); | |||