package org.mongojack.internal;
import java.io.IOException;
import java.util.UUID;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
/**
* A simple deserializer for Java UUIDs which prevents the regular Java
* data type from being converted to an inefficient string.
*
* @author Jared Tiala
* @since 2.6.2
*/
public class UUIDDeserializer extends JsonDeserializer<UUID> {
@Override
public UUID deserialize(JsonParser jp, DeserializationContext ctxt)
throws IOException {
JsonToken token = jp.getCurrentToken();
if (token == JsonToken.VALUE_EMBEDDED_OBJECT) {
Object object = jp.getEmbeddedObject();
if (object instanceof UUID) {
return (UUID) object;
}
}
throw ctxt.mappingException(UUID.class);
}
}