1 package pl.matsuo.core.web.mvc; 2 3 import com.fasterxml.jackson.core.JsonParseException; 4 import com.fasterxml.jackson.core.JsonParser; 5 import com.fasterxml.jackson.core.JsonProcessingException; 6 import com.fasterxml.jackson.databind.DeserializationContext; 7 import com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer; 8 9 import java.io.IOException; 10 import java.sql.Time; 11 import java.text.DateFormat; 12 import java.text.ParseException; 13 import java.text.SimpleDateFormat; 14 15 16 public class TimeDeserializer extends StdScalarDeserializer<Time> { 17 private static final long serialVersionUID = 1L; 18 19 20 private final DateFormat dateFormat = new SimpleDateFormat("HH:mm"); 21 22 23 public TimeDeserializer() { 24 super(Time.class); 25 } 26 27 28 @Override 29 public Time deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, 30 JsonProcessingException { 31 try { 32 return new Time(dateFormat.parse(jp.getText()).getTime()); 33 } catch (ParseException e) { 34 throw new JsonParseException("Unhandled date " + jp.getText(), jp.getCurrentLocation(), e); 35 } 36 } 37 } 38