mirror of
https://github.com/plexusorg/Plex.git
synced 2025-06-29 14:56:43 +00:00
fix NPE and codec issues
This commit is contained in:
@ -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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user