Sha256: 8058055a47ea540106f14cbd2d45ef71d0a25926bfe57b19a723de186a3c0d01
Contents?: true
Size: 1.96 KB
Versions: 104
Compression:
Stored size: 1.96 KB
Contents
package org.embulk.spi.time; import java.io.IOException; import org.joda.time.DateTimeZone; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import com.fasterxml.jackson.module.guice.ObjectMapperModule; public class DateTimeZoneSerDe { public static void configure(ObjectMapperModule mapper) { SimpleModule module = new SimpleModule(); module.addSerializer(DateTimeZone.class, new DateTimeZoneSerializer()); module.addDeserializer(DateTimeZone.class, new DateTimeZoneDeserializer()); mapper.registerModule(module); } public static class DateTimeZoneSerializer extends JsonSerializer<DateTimeZone> { @Override public void serialize(DateTimeZone value, JsonGenerator jgen, SerializerProvider provider) throws IOException { jgen.writeString(value.getID()); } } public static class DateTimeZoneDeserializer extends FromStringDeserializer<DateTimeZone> { public DateTimeZoneDeserializer() { super(DateTimeZone.class); } @Override protected DateTimeZone _deserialize(String value, DeserializationContext context) throws JsonMappingException { DateTimeZone parsed = TimestampFormat.parseDateTimeZone(value); if (parsed == null) { // TODO include link to a document to the message for the list of supported time zones throw new JsonMappingException(String.format("Unknown time zone name '%s'", value)); } return parsed; } } }
Version data entries
104 entries across 104 versions & 1 rubygems