com.pugwoo.dbhelper.json.MultiLocalDateDeserializer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of nimble-orm Show documentation
Show all versions of nimble-orm Show documentation
nimble-orm an ORM based on Spring jdbcTemplate.
package com.pugwoo.dbhelper.json;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import java.io.IOException;
import java.time.LocalDate;
public class MultiLocalDateDeserializer extends StdDeserializer {
private static final long serialVersionUID = 1L;
public MultiLocalDateDeserializer() {
this(null);
}
public MultiLocalDateDeserializer(Class> vc) {
super(vc);
}
@Override
public LocalDate deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
JsonNode node = jp.getCodec().readTree(jp);
String date = node.asText();
try {
LocalDate localDate = NimbleOrmDateUtils.parseLocalDate(date);
if (localDate == null) {
throw new JsonParseException(jp,
"Unparseable localDate: \"" + date + "\". Supported formats: "
+ NimbleOrmDateUtils.DATE_FORMAT_REGEXPS.values());
}
return localDate;
} catch (Exception e) {
throw new JsonParseException(jp,
"Unparseable localDate: \"" + date + "\". Supported formats: "
+ NimbleOrmDateUtils.DATE_FORMAT_REGEXPS.values());
}
}
}