package com.comandante.stickypunch.http.resource.jackson; import com.comandante.stickypunch.http.model.jackson.WebPushLog; import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.JsonParser; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.ObjectCodec; import org.codehaus.jackson.map.DeserializationContext; import org.codehaus.jackson.map.JsonDeserializer; import java.io.IOException; import java.util.ArrayList; public class LogDeserializer extends JsonDeserializer<WebPushLog> { public static final LogDeserializer INSTANCE = new LogDeserializer(); @Override public WebPushLog deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { ObjectCodec oc = jsonParser.getCodec(); ArrayList<String> logMsgs = new ArrayList<String>(); for (JsonNode node: oc.readTree(jsonParser).get("logs")) { logMsgs.add(node.getTextValue()); } return new WebPushLog(logMsgs); } }