/* * Copyright 2000-2016 Vaadin Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.vaadin.client.communication; import com.vaadin.client.ApplicationConnection; import com.vaadin.client.metadata.Type; import elemental.json.JsonValue; /** * 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. *
* The {@link #serialize(Object, ApplicationConnection)} and * {@link #deserialize(Type, JsonValue, ApplicationConnection)} 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 Type#findSerializer()}. *
* This is the client side interface, see
* com.vaadin.server.communication.JSONSerializer for the server side interface.
*
* @since 7.0
*/
public interface JSONSerializer