package org.koshinuke.jackson; import java.io.IOException; import org.codehaus.jackson.JsonParser; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.map.DeserializationContext; import org.codehaus.jackson.map.JsonDeserializer; import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.util.StringUtils; /** * @author taichi */ public class ObjectIdDeserializer extends JsonDeserializer<ObjectId> { @Override public ObjectId deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { String value = jp.getText(); if (StringUtils.isEmptyOrNull(value) == false && value.length() == Constants.OBJECT_ID_STRING_LENGTH) { return ObjectId.fromString(value); } return ObjectId.zeroId(); } @Override public ObjectId getNullValue() { return ObjectId.zeroId(); } }