fix NPE and codec issues

This commit is contained in:
Taah
2022-05-28 19:12:18 -07:00
parent d0b1d09f38
commit 9f19bd14ca
5 changed files with 74 additions and 24 deletions

View File

@ -0,0 +1,39 @@
package dev.plex.storage.codec;
import org.bson.BsonReader;
import org.bson.BsonWriter;
import org.bson.codecs.Codec;
import org.bson.codecs.DecoderContext;
import org.bson.codecs.EncoderContext;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import static dev.plex.util.TimeUtils.TIMEZONE;
/**
* @author Taah
* @project Plex
* @since 6:53 PM [28-05-2022]
*/
public class ZonedDateTimeCodec implements Codec<ZonedDateTime>
{
@Override
public ZonedDateTime decode(BsonReader reader, DecoderContext decoderContext)
{
return ZonedDateTime.ofInstant(Instant.ofEpochMilli(reader.readDateTime()), ZoneId.of(TIMEZONE));
}
@Override
public void encode(BsonWriter writer, ZonedDateTime value, EncoderContext encoderContext)
{
writer.writeDateTime(value.toInstant().toEpochMilli());
}
@Override
public Class<ZonedDateTime> getEncoderClass()
{
return ZonedDateTime.class;
}
}