package org.handwerkszeug.riak.transport.rest.internal;
import java.io.IOException;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.JsonToken;
import org.codehaus.jackson.map.DeserializationContext;
import org.codehaus.jackson.map.JsonDeserializer;
import org.handwerkszeug.riak.model.Quorum;
/**
* @author taichi
*/
public class QuorumJsonDeserializer extends JsonDeserializer<Quorum> {
@Override
public Quorum deserialize(JsonParser jp, DeserializationContext ctxt)
throws IOException, JsonProcessingException {
JsonToken jt = jp.getCurrentToken();
switch (jt) {
case VALUE_STRING: {
return Quorum.of(jp.getText());
}
case VALUE_NUMBER_INT: {
return Quorum.of(jp.getIntValue());
}
case VALUE_NULL: {
return null;
}
default:
break;
}
throw ctxt.mappingException(Quorum.class);
}
}