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