/* Copyright (c) Microsoft Open Technologies, Inc. All Rights Reserved See License.txt in the project root for license information. */ package microsoft.aspnet.signalr.client; import java.lang.reflect.Type; import java.util.Calendar; import java.util.Date; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonDeserializer; import com.google.gson.JsonElement; import com.google.gson.JsonParseException; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; public class CalendarSerializer implements JsonSerializer<Calendar>, JsonDeserializer<Calendar> { private static final DateSerializer mInternalSerializer = new DateSerializer(); @Override public Calendar deserialize(JsonElement element, Type type, JsonDeserializationContext ctx) throws JsonParseException { Date date = mInternalSerializer.deserialize(element, Date.class, ctx); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar; } @Override public JsonElement serialize(Calendar calendar, Type type, JsonSerializationContext ctx) { return mInternalSerializer.serialize(calendar.getTime(), Date.class, ctx); } }