package org.ovirt.engine.core.utils.serialization.json;
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.deser.std.EnumDeserializer;
import org.codehaus.jackson.map.util.EnumResolver;
/**
* Custom enum deserializer.
* Uses the EnumDeserializer and in case of exception.
* ignore it and return null (in order to avoid cases of unknown literal
* value).
*/
public class JsonEnumDeserializer extends EnumDeserializer {
public JsonEnumDeserializer() {
super(null);
}
public JsonEnumDeserializer(EnumResolver<?> res) {
super(res);
}
@Override
public Enum<?> deserialize(JsonParser jp, DeserializationContext ctxt)
throws IOException, JsonProcessingException {
try {
return super.deserialize(jp, ctxt);
} catch (Exception ex) {
return null;
}
}
}