package com.cattong.commons.util;
import java.lang.reflect.Type;
import com.cattong.entity.TaskType;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonNull;
import com.google.gson.JsonParseException;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
public class TaskTypeGsonAdapter implements JsonDeserializer<TaskType>,
JsonSerializer<TaskType> {
@Override
public TaskType deserialize(JsonElement json, final Type type,
JsonDeserializationContext context) throws JsonParseException {
if (json.isJsonNull()) {
return null;
}
if (!json.isJsonPrimitive()) {
throw new JsonParseException("it' not json primitive");
}
final JsonPrimitive primitive = (JsonPrimitive)json;
int taskTypeNo = primitive.getAsInt();
return TaskType.getTaskType(taskTypeNo);
}
@Override
public JsonElement serialize(TaskType src, Type typeOfSrc,
JsonSerializationContext context) {
if (src == null) {
return new JsonNull();
}
return new JsonPrimitive(src.getTaskTypeNo());
}
}