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 RelativeNumberSerializer implements Serializer<RelativeNumber> {
@Nullable @Override public Object serialize(@Nullable RelativeNumber object, @Nonnull SerializerSet serializerSet)
throws IllegalArgumentException {
if (object == null) {
return null;
}
return object.toString();
}
@Nullable @Override public RelativeNumber deserialize(@Nullable Object serialized, @Nonnull Class wantedType,
@Nonnull SerializerSet serializerSet)
throws IllegalArgumentException {
if (serialized == null) {
return null;
}
Preconditions.checkArgument(StringUtils.isStringOrNumber(serialized),
"RelativeNumber may only be in the form of a String.");
return RelativeNumber.fromString(serialized.toString());
}
}