package com.supaham.commons.relatives;
import com.google.common.base.Preconditions;
import com.supaham.commons.utils.StringUtils;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import pluginbase.config.serializers.Serializer;
import pluginbase.config.serializers.SerializerSet;
public class RelativeDurationSerializer implements Serializer<RelativeDuration> {
@Nullable @Override public Object serialize(@Nullable RelativeDuration object, @Nonnull SerializerSet serializerSet)
throws IllegalArgumentException {
if (object == null) {
return null;
}
return object.toString();
}
@Nullable @Override public RelativeDuration deserialize(@Nullable Object serialized, @Nonnull Class wantedType,
@Nonnull SerializerSet serializerSet)
throws IllegalArgumentException {
if (serialized == null) {
return null;
}
Preconditions.checkArgument(StringUtils.isStringOrNumber(serialized),
"RelativeDuration may only be in the form of a String.");
return RelativeDuration.fromString(serialized.toString());
}
}