package pluginbase.config.serializers; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import pluginbase.messages.MessageProvider; import java.util.Locale; class LocaleSerializer implements Serializer<Locale> { @Nullable @Override public Object serialize(@Nullable Locale locale, @NotNull SerializerSet serializerSet) { return locale != null ? locale.toString() : MessageProvider.DEFAULT_LOCALE.toString(); } @Nullable @Override public Locale deserialize(@Nullable Object object, @NotNull Class wantedType, @NotNull SerializerSet serializerSet) throws IllegalArgumentException { if (object == null) { return MessageProvider.DEFAULT_LOCALE; } String[] split = object.toString().split("_"); switch (split.length) { case 1: return new Locale(split[0]); case 2: return new Locale(split[0], split[1]); case 3: return new Locale(split[0], split[1], split[2]); default: return new Locale(object.toString()); } } }