Added default locale (PMD)

This commit is contained in:
Erik C. Thauvin 2019-04-27 02:50:47 -07:00
parent bd9bb8d47e
commit 1d7f8eb86b
7 changed files with 63 additions and 48 deletions

View file

@ -32,6 +32,8 @@
package net.thauvin.erik.mobibot; package net.thauvin.erik.mobibot;
import java.util.Locale;
/** /**
* The <code>Constants</code> class. * The <code>Constants</code> class.
* *
@ -55,6 +57,11 @@ public final class Constants {
*/ */
public static final String TWITTER_HANDLE_PROP = "twitter-handle"; public static final String TWITTER_HANDLE_PROP = "twitter-handle";
/**
* Default locale.
*/
public static final Locale LOCALE = Locale.getDefault();
/** /**
* Disables the default constructor. * Disables the default constructor.
*/ */

View file

@ -585,8 +585,8 @@ public class Mobibot extends PircBot {
for (final char c : getNick().toCharArray()) { for (final char c : getNick().toCharArray()) {
if (Character.isLetter(c)) { if (Character.isLetter(c)) {
buff.append('[') buff.append('[')
.append(String.valueOf(c).toLowerCase()) .append(String.valueOf(c).toLowerCase(Constants.LOCALE))
.append(String.valueOf(c).toUpperCase()) .append(String.valueOf(c).toUpperCase(Constants.LOCALE))
.append(']'); .append(']');
} else { } else {
buff.append(c); buff.append(c);
@ -651,7 +651,7 @@ public class Mobibot extends PircBot {
* @param topic The help topic, if any. * @param topic The help topic, if any.
*/ */
private void helpResponse(final String sender, final String topic) { private void helpResponse(final String sender, final String topic) {
final String lcTopic = topic.toLowerCase().trim(); final String lcTopic = topic.toLowerCase(Constants.LOCALE).trim();
if (Commands.HELP_POSTING_KEYWORD.equals(lcTopic)) { if (Commands.HELP_POSTING_KEYWORD.equals(lcTopic)) {
send(sender, Utils.bold("Post a URL, by saying it on a line on its own:")); send(sender, Utils.bold("Post a URL, by saying it on a line on its own:"));

View file

@ -84,7 +84,7 @@ public final class Utils {
* @return The capitalized string. * @return The capitalized string.
*/ */
public static String capitalize(final String s) { public static String capitalize(final String s) {
return s.substring(0, 1).toUpperCase() + s.substring(1); return s.substring(0, 1).toUpperCase(Constants.LOCALE) + s.substring(1);
} }
/** /**

View file

@ -35,6 +35,7 @@ package net.thauvin.erik.mobibot.entries;
import com.rometools.rome.feed.synd.SyndCategory; import com.rometools.rome.feed.synd.SyndCategory;
import com.rometools.rome.feed.synd.SyndCategoryImpl; import com.rometools.rome.feed.synd.SyndCategoryImpl;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import net.thauvin.erik.mobibot.Constants;
import java.io.Serializable; import java.io.Serializable;
import java.util.Calendar; import java.util.Calendar;
@ -307,7 +308,7 @@ public class EntryLink implements Serializable {
if (part.length() >= 2) { if (part.length() >= 2) {
tag = new SyndCategoryImpl(); tag = new SyndCategoryImpl();
tag.setName(part.substring(1).toLowerCase()); tag.setName(part.substring(1).toLowerCase(Constants.LOCALE));
mod = part.charAt(0); mod = part.charAt(0);
@ -321,7 +322,7 @@ public class EntryLink implements Serializable {
this.tags.add(tag); this.tags.add(tag);
} }
} else { } else {
tag.setName(part.trim().toLowerCase()); tag.setName(part.trim().toLowerCase(Constants.LOCALE));
if (!this.tags.contains(tag)) { if (!this.tags.contains(tag)) {
this.tags.add(tag); this.tags.add(tag);
@ -395,6 +396,7 @@ public class EntryLink implements Serializable {
* *
* @return A string representation of the object. * @return A string representation of the object.
*/ */
@Override
public final String toString() { public final String toString() {
return super.toString() + "[ channel -> '" + channel + '\'' + ", comments -> " + comments + ", date -> " + date return super.toString() + "[ channel -> '" + channel + '\'' + ", comments -> " + comments + ", date -> " + date

View file

@ -33,6 +33,7 @@
package net.thauvin.erik.mobibot.modules; package net.thauvin.erik.mobibot.modules;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import net.thauvin.erik.mobibot.Constants;
import net.thauvin.erik.mobibot.Mobibot; import net.thauvin.erik.mobibot.Mobibot;
import net.thauvin.erik.mobibot.Utils; import net.thauvin.erik.mobibot.Utils;
import net.thauvin.erik.mobibot.msg.ErrorMessage; import net.thauvin.erik.mobibot.msg.ErrorMessage;
@ -80,9 +81,48 @@ public final class CurrencyConverter extends ThreadedModule {
* Creates a new {@link CurrencyConverter} instance. * Creates a new {@link CurrencyConverter} instance.
*/ */
public CurrencyConverter() { public CurrencyConverter() {
super();
commands.add(CURRENCY_CMD); commands.add(CURRENCY_CMD);
} }
/**
* {@inheritDoc}
*/
@Override
public void commandResponse(final Mobibot bot, final String sender, final String args, final boolean isPrivate) {
synchronized (this) {
if (!pubDate.equals(Utils.today())) {
EXCHANGE_RATES.clear();
}
}
super.commandResponse(bot, sender, args, isPrivate);
}
/**
* Converts the specified currencies.
*/
@SuppressFBWarnings("REDOS")
@Override
void run(final Mobibot bot, final String sender, final String query) {
if (Utils.isValidString(sender) && Utils.isValidString(query)) {
if (query.matches("\\d+([,\\d]+)?(\\.\\d+)? [a-zA-Z]{3}+ to [a-zA-Z]{3}+")) {
try {
final Message msg = convertCurrency(query);
if (msg.isError()) {
helpResponse(bot, sender, CURRENCY_CMD + ' ' + query, false);
}
bot.send(sender, msg);
} catch (ModuleException e) {
bot.getLogger().warn(e.getDebugMessage(), e);
bot.send(sender, e.getMessage());
}
} else {
helpResponse(bot, sender, CURRENCY_CMD + ' ' + query, true);
}
}
}
/** /**
* Converts from a currency to another. * Converts from a currency to another.
* *
@ -136,19 +176,20 @@ public final class CurrencyConverter extends ThreadedModule {
} else { } else {
try { try {
final double amt = Double.parseDouble(cmds[0].replaceAll(",", "")); final double amt = Double.parseDouble(cmds[0].replaceAll(",", ""));
final double from = Double.parseDouble(EXCHANGE_RATES.get(cmds[1].toUpperCase())); final double from = Double.parseDouble(EXCHANGE_RATES.get(cmds[1]
final double to = Double.parseDouble(EXCHANGE_RATES.get(cmds[3].toUpperCase())); .toUpperCase(Constants.LOCALE)));
final double to = Double.parseDouble(EXCHANGE_RATES.get(cmds[3].toUpperCase(Constants.LOCALE)));
return new PublicMessage( return new PublicMessage(
NumberFormat.getCurrencyInstance(Locale.US).format(amt).substring(1) NumberFormat.getCurrencyInstance(Locale.US).format(amt).substring(1)
+ ' ' + ' '
+ cmds[1].toUpperCase() + cmds[1].toUpperCase(Constants.LOCALE)
+ " = " + " = "
+ NumberFormat.getCurrencyInstance(Locale.US) + NumberFormat.getCurrencyInstance(Locale.US)
.format((amt * to) / from) .format((amt * to) / from)
.substring(1) .substring(1)
+ ' ' + ' '
+ cmds[3].toUpperCase()); + cmds[3].toUpperCase(Constants.LOCALE));
} catch (Exception e) { } catch (Exception e) {
throw new ModuleException("convertCurrency(" + query + ')', throw new ModuleException("convertCurrency(" + query + ')',
"The supported currencies are: " + EXCHANGE_RATES.keySet(), e); "The supported currencies are: " + EXCHANGE_RATES.keySet(), e);
@ -173,43 +214,6 @@ public final class CurrencyConverter extends ThreadedModule {
return new ErrorMessage("The supported currencies are: " + EXCHANGE_RATES.keySet()); return new ErrorMessage("The supported currencies are: " + EXCHANGE_RATES.keySet());
} }
/**
* {@inheritDoc}
*/
@Override
public void commandResponse(final Mobibot bot, final String sender, final String args, final boolean isPrivate) {
synchronized (this) {
if (!pubDate.equals(Utils.today())) {
EXCHANGE_RATES.clear();
}
}
super.commandResponse(bot, sender, args, isPrivate);
}
/**
* Converts the specified currencies.
*/
@SuppressFBWarnings(value = "REDOS")
void run(final Mobibot bot, final String sender, final String query) {
if (Utils.isValidString(sender) && Utils.isValidString(query)) {
if (query.matches("\\d+([,\\d]+)?(\\.\\d+)? [a-zA-Z]{3}+ to [a-zA-Z]{3}+")) {
try {
final Message msg = convertCurrency(query);
if (msg.isError()) {
helpResponse(bot, sender, CURRENCY_CMD + ' ' + query, false);
}
bot.send(sender, msg);
} catch (ModuleException e) {
bot.getLogger().warn(e.getDebugMessage(), e);
bot.send(sender, e.getMessage());
}
} else {
helpResponse(bot, sender, CURRENCY_CMD + ' ' + query, true);
}
}
}
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */

View file

@ -33,6 +33,7 @@
package net.thauvin.erik.mobibot.modules; package net.thauvin.erik.mobibot.modules;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import net.thauvin.erik.mobibot.Constants;
import net.thauvin.erik.mobibot.Mobibot; import net.thauvin.erik.mobibot.Mobibot;
import net.thauvin.erik.mobibot.msg.ErrorMessage; import net.thauvin.erik.mobibot.msg.ErrorMessage;
import net.thauvin.erik.mobibot.msg.Message; import net.thauvin.erik.mobibot.msg.Message;

View file

@ -32,6 +32,7 @@
package net.thauvin.erik.mobibot.modules; package net.thauvin.erik.mobibot.modules;
import net.thauvin.erik.mobibot.Constants;
import org.testng.annotations.BeforeSuite; import org.testng.annotations.BeforeSuite;
import java.io.IOException; import java.io.IOException;
@ -64,7 +65,7 @@ class LocalProperties {
} }
private static String keyToEnv(final String key) { private static String keyToEnv(final String key) {
return key.replaceAll("-", "_").toUpperCase(); return key.replaceAll("-", "_").toUpperCase(Constants.LOCALE);
} }
@BeforeSuite(alwaysRun = true) @BeforeSuite(alwaysRun = true)