package de.rwth.idsg.bikeman.psinterface;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.joda.time.DateTime;
import java.io.IOException;
/**
* Problem description:
*
* The PS API defines all timestamps as "Unix timestamps". Normal understanding of a "timestamp"
* in Java is in milliseconds, but Unix timestamps are in seconds!
*
* @author Sevket Goekay <goekay@dbis.rwth-aachen.de>
* @since 05.02.2016
*/
public class UnixTimestampSerializer extends JsonSerializer<DateTime> {
@Override
public void serialize(DateTime value, JsonGenerator jgen, SerializerProvider provider)
throws IOException, JsonProcessingException {
// TODO: not sure about null handling
if (value == null) {
provider.defaultSerializeNull(jgen);
} else {
long millis = value.getMillis();
long seconds = Utils.toSeconds(millis);
jgen.writeNumber(seconds);
}
}
}