package com.supaham.commons.serializers; import com.supaham.commons.utils.TimeUtils; import java.time.Duration; import java.time.LocalTime; import javax.annotation.Nonnull; import javax.annotation.Nullable; import pluginbase.config.serializers.Serializer; import pluginbase.config.serializers.SerializerSet; /** * A {@link Duration} serializer that simply calls {@link TimeUtils#localTimeToString(LocalTime)}, with boolean * as true, in return. * * @since 0.5.2 */ public class LocalTimeSerializer implements Serializer<LocalTime> { @Override @Nullable public Object serialize(@Nullable final LocalTime localTime, @Nonnull SerializerSet serializerSet) { if (localTime == null) { return null; } return TimeUtils.localTimeToString(localTime); } @Override @Nullable public LocalTime deserialize(@Nullable Object serialized, @Nonnull Class wantedType, @Nonnull SerializerSet serializerSet) throws IllegalArgumentException { if (serialized == null || !(serialized instanceof String)) { return null; } return TimeUtils.parseTime(serialized.toString()); } }