package io.rtr.alchemy.db.mongo.util; import org.joda.time.DateTime; import org.mongodb.morphia.converters.SimpleValueConverter; import org.mongodb.morphia.converters.TypeConverter; import org.mongodb.morphia.mapping.MappedField; /** * A morphia converter for Joda Time */ public class DateTimeConverter extends TypeConverter implements SimpleValueConverter { protected DateTimeConverter() { super(DateTime.class); } @Override public Object decode(Class clazz, Object o, MappedField mappedField) { final Long instant = (Long) o; if (instant == null) { return null; } return new DateTime(instant); } @Override public Object encode(Object value, MappedField optionalExtraInfo) { final DateTime dateTime = (DateTime) value; if (dateTime == null) { return null; } return dateTime.getMillis(); } }