/** * */ package com.ebay.cloud.cms.typsafe.entity; import java.io.IOException; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.JsonParser; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.map.DeserializationContext; import org.codehaus.jackson.map.JsonDeserializer; import org.codehaus.jackson.map.JsonSerializer; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.SerializerProvider; import com.ebay.cloud.cms.typsafe.entity.ICMSEntity._StatusEnum; /** * @author liasu * */ public class StatusEnumConverter { private static final ObjectMapper mapper = new ObjectMapper(); public static class StatusEnumSerializer extends JsonSerializer<_StatusEnum> { @Override public void serialize(_StatusEnum value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeObject(value.toString()); } } public static class StatusEnumDeserializer extends JsonDeserializer<_StatusEnum> { @Override public _StatusEnum deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { String enumVal = mapper.readValue(jp, String.class); for (_StatusEnum se : _StatusEnum.values()) { if (se.toString().equals(enumVal)) { return se; } } throw new RuntimeException("status enum not found"); } } }