All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pugwoo.dbhelper.json.MultiLocalDateDeserializer Maven / Gradle / Ivy

There is a newer version: 1.6.8
Show newest version
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());
		}
	}
	
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy