From 1ba412d1f0ebfa8ef141808b8f5b56190b5dcbba Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 27 Apr 2019 02:53:30 -0700 Subject: [PATCH] Added call to super() in constructor (PMD) --- .../thauvin/erik/mobibot/modules/Calc.java | 1 + .../thauvin/erik/mobibot/modules/Dice.java | 1 + .../erik/mobibot/modules/GoogleSearch.java | 74 +++++++-------- .../thauvin/erik/mobibot/modules/Joke.java | 2 + .../thauvin/erik/mobibot/modules/Lookup.java | 1 + .../thauvin/erik/mobibot/modules/Ping.java | 10 +-- .../erik/mobibot/modules/StockQuote.java | 1 + .../thauvin/erik/mobibot/modules/Twitter.java | 1 + .../net/thauvin/erik/mobibot/modules/War.java | 1 + .../erik/mobibot/modules/Weather2.java | 11 +-- .../erik/mobibot/modules/WorldTime.java | 90 ++++++++++--------- .../erik/mobibot/msg/ErrorMessage.java | 2 + .../erik/mobibot/msg/NoticeMessage.java | 2 + .../erik/mobibot/msg/PrivateMessage.java | 8 ++ .../erik/mobibot/msg/PublicMessage.java | 8 ++ 15 files changed, 125 insertions(+), 88 deletions(-) diff --git a/src/main/java/net/thauvin/erik/mobibot/modules/Calc.java b/src/main/java/net/thauvin/erik/mobibot/modules/Calc.java index 931fc65..b68cc4d 100644 --- a/src/main/java/net/thauvin/erik/mobibot/modules/Calc.java +++ b/src/main/java/net/thauvin/erik/mobibot/modules/Calc.java @@ -54,6 +54,7 @@ public class Calc extends AbstractModule { * The default constructor. */ public Calc() { + super(); commands.add(CALC_CMD); } diff --git a/src/main/java/net/thauvin/erik/mobibot/modules/Dice.java b/src/main/java/net/thauvin/erik/mobibot/modules/Dice.java index 8c45f48..1e69b10 100644 --- a/src/main/java/net/thauvin/erik/mobibot/modules/Dice.java +++ b/src/main/java/net/thauvin/erik/mobibot/modules/Dice.java @@ -52,6 +52,7 @@ public final class Dice extends AbstractModule { * The default constructor. */ public Dice() { + super(); commands.add(DICE_CMD); } diff --git a/src/main/java/net/thauvin/erik/mobibot/modules/GoogleSearch.java b/src/main/java/net/thauvin/erik/mobibot/modules/GoogleSearch.java index 866def3..ed26c4a 100644 --- a/src/main/java/net/thauvin/erik/mobibot/modules/GoogleSearch.java +++ b/src/main/java/net/thauvin/erik/mobibot/modules/GoogleSearch.java @@ -49,6 +49,7 @@ import java.net.URLConnection; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.ArrayList; +import java.util.List; /** * The GoogleSearch module. @@ -71,11 +72,46 @@ public final class GoogleSearch extends ThreadedModule { * Creates a new {@link GoogleSearch} instance. */ public GoogleSearch() { + super(); commands.add(GOOGLE_CMD); properties.put(GOOGLE_API_KEY_PROP, ""); properties.put(GOOGLE_CSE_KEY_PROP, ""); } + /** + * {@inheritDoc} + */ + @Override + public void helpResponse(final Mobibot bot, final String sender, final String args, final boolean isPrivate) { + if (isEnabled()) { + bot.send(sender, "To search Google:"); + bot.send(sender, bot.helpIndent(bot.getNick() + ": " + GOOGLE_CMD + " ")); + } else { + bot.send(sender, "The Google search module is disabled."); + } + } + + /** + * Searches Google. + */ + @Override + void run(final Mobibot bot, final String sender, final String query) { + if (Utils.isValidString(query)) { + try { + final List results = searchGoogle(query, properties.get(GOOGLE_API_KEY_PROP), + properties.get(GOOGLE_CSE_KEY_PROP)); + for (final Message msg : results) { + bot.send(sender, msg); + } + } catch (ModuleException e) { + bot.getLogger().warn(e.getDebugMessage(), e); + bot.send(sender, e.getMessage()); + } + } else { + helpResponse(bot, sender, query, true); + } + } + /** * Performs a search on Google. * @@ -85,8 +121,9 @@ public final class GoogleSearch extends ThreadedModule { * @return The {@link Message} array containing the search results. * @throws ModuleException If an error occurs while searching. */ - @SuppressFBWarnings(value = {"URLCONNECTION_SSRF_FD", "REC_CATCH_EXCEPTION"}) - static ArrayList searchGoogle(final String query, final String apiKey, final String cseKey) + @SuppressFBWarnings({"URLCONNECTION_SSRF_FD", "REC_CATCH_EXCEPTION"}) + @SuppressWarnings(("PMD.AvoidInstantiatingObjectsInLoops")) + static List searchGoogle(final String query, final String apiKey, final String cseKey) throws ModuleException { if (!Utils.isValidString(apiKey) || !Utils.isValidString(cseKey)) { throw new ModuleException(Utils.capitalize(GOOGLE_CMD) + " is disabled. The API keys are missing."); @@ -134,37 +171,4 @@ public final class GoogleSearch extends ThreadedModule { throw new ModuleException("Invalid query."); } } - - /** - * {@inheritDoc} - */ - @Override - public void helpResponse(final Mobibot bot, final String sender, final String args, final boolean isPrivate) { - if (isEnabled()) { - bot.send(sender, "To search Google:"); - bot.send(sender, bot.helpIndent(bot.getNick() + ": " + GOOGLE_CMD + " ")); - } else { - bot.send(sender, "The Google search module is disabled."); - } - } - - /** - * Searches Google. - */ - void run(final Mobibot bot, final String sender, final String query) { - if (Utils.isValidString(query)) { - try { - final ArrayList results = searchGoogle(query, properties.get(GOOGLE_API_KEY_PROP), - properties.get(GOOGLE_CSE_KEY_PROP)); - for (final Message msg : results) { - bot.send(sender, msg); - } - } catch (ModuleException e) { - bot.getLogger().warn(e.getDebugMessage(), e); - bot.send(sender, e.getMessage()); - } - } else { - helpResponse(bot, sender, query, true); - } - } } diff --git a/src/main/java/net/thauvin/erik/mobibot/modules/Joke.java b/src/main/java/net/thauvin/erik/mobibot/modules/Joke.java index 07cbdf9..cfd5dad 100644 --- a/src/main/java/net/thauvin/erik/mobibot/modules/Joke.java +++ b/src/main/java/net/thauvin/erik/mobibot/modules/Joke.java @@ -62,6 +62,7 @@ public final class Joke extends ThreadedModule { * Creates a new {@link Joke} instance. */ public Joke() { + super(); commands.add(JOKE_CMD); } @@ -107,6 +108,7 @@ public final class Joke extends ThreadedModule { /** * Returns a random joke from The Internet Chuck Norris Database. */ + @Override void run(final Mobibot bot, final String sender, final String arg) { try { bot.send(Utils.cyan(randomJoke().getMessage())); diff --git a/src/main/java/net/thauvin/erik/mobibot/modules/Lookup.java b/src/main/java/net/thauvin/erik/mobibot/modules/Lookup.java index 78ed028..f9df1af 100644 --- a/src/main/java/net/thauvin/erik/mobibot/modules/Lookup.java +++ b/src/main/java/net/thauvin/erik/mobibot/modules/Lookup.java @@ -60,6 +60,7 @@ public final class Lookup extends AbstractModule { * The default constructor. */ public Lookup() { + super(); commands.add(LOOKUP_CMD); } diff --git a/src/main/java/net/thauvin/erik/mobibot/modules/Ping.java b/src/main/java/net/thauvin/erik/mobibot/modules/Ping.java index 03b7945..07254bd 100644 --- a/src/main/java/net/thauvin/erik/mobibot/modules/Ping.java +++ b/src/main/java/net/thauvin/erik/mobibot/modules/Ping.java @@ -46,11 +46,6 @@ import java.util.List; * @since 1.0 */ public class Ping extends AbstractModule { - /** - * The ping command. - */ - private static final String PING_CMD = "ping"; - /** * The ping responses. */ @@ -68,11 +63,16 @@ public class Ping extends AbstractModule { "is hibernating.", "is saving energy: apathetic mode activated.", "is busy. Go away!"); + /** + * The ping command. + */ + private static final String PING_CMD = "ping"; /** * The default constructor. */ public Ping() { + super(); commands.add(PING_CMD); } diff --git a/src/main/java/net/thauvin/erik/mobibot/modules/StockQuote.java b/src/main/java/net/thauvin/erik/mobibot/modules/StockQuote.java index 9e09bef..2053d88 100644 --- a/src/main/java/net/thauvin/erik/mobibot/modules/StockQuote.java +++ b/src/main/java/net/thauvin/erik/mobibot/modules/StockQuote.java @@ -70,6 +70,7 @@ public final class StockQuote extends ThreadedModule { * Creates a new {@link StockQuote} instance. */ public StockQuote() { + super(); commands.add(STOCK_CMD); properties.put(ALPHAVANTAGE_API_KEY_PROP, ""); } diff --git a/src/main/java/net/thauvin/erik/mobibot/modules/Twitter.java b/src/main/java/net/thauvin/erik/mobibot/modules/Twitter.java index f28fd31..aaf6a1d 100644 --- a/src/main/java/net/thauvin/erik/mobibot/modules/Twitter.java +++ b/src/main/java/net/thauvin/erik/mobibot/modules/Twitter.java @@ -60,6 +60,7 @@ public final class Twitter extends ThreadedModule { * Creates a new {@link Twitter} instance. */ public Twitter() { + super(); commands.add(TWITTER_CMD); properties.put(CONSUMER_SECRET_PROP, ""); properties.put(CONSUMER_KEY_PROP, ""); diff --git a/src/main/java/net/thauvin/erik/mobibot/modules/War.java b/src/main/java/net/thauvin/erik/mobibot/modules/War.java index b6c3442..9267c0f 100644 --- a/src/main/java/net/thauvin/erik/mobibot/modules/War.java +++ b/src/main/java/net/thauvin/erik/mobibot/modules/War.java @@ -57,6 +57,7 @@ public final class War extends AbstractModule { * The default constructor. */ public War() { + super(); commands.add(WAR_CMD); } diff --git a/src/main/java/net/thauvin/erik/mobibot/modules/Weather2.java b/src/main/java/net/thauvin/erik/mobibot/modules/Weather2.java index 92804eb..4f2adac 100644 --- a/src/main/java/net/thauvin/erik/mobibot/modules/Weather2.java +++ b/src/main/java/net/thauvin/erik/mobibot/modules/Weather2.java @@ -69,6 +69,7 @@ public class Weather2 extends ThreadedModule { * Creates a new {@link Weather2} instance. */ public Weather2() { + super(); commands.add(WEATHER_CMD); properties.put(OWM_API_KEY_PROP, ""); } @@ -183,11 +184,6 @@ public class Weather2 extends ThreadedModule { return messages; } - private static String wind(final Double w) { - final double kmh = w * 1.60934; - return Math.round(w) + " mph, " + Math.round(kmh) + " km/h"; - } - /** * {@inheritDoc} */ @@ -224,4 +220,9 @@ public class Weather2 extends ThreadedModule { helpResponse(bot, sender, args, true); } } + + private static String wind(final Double w) { + final double kmh = w * 1.60934; + return Math.round(w) + " mph, " + Math.round(kmh) + " km/h"; + } } diff --git a/src/main/java/net/thauvin/erik/mobibot/modules/WorldTime.java b/src/main/java/net/thauvin/erik/mobibot/modules/WorldTime.java index ab267f9..6000a91 100644 --- a/src/main/java/net/thauvin/erik/mobibot/modules/WorldTime.java +++ b/src/main/java/net/thauvin/erik/mobibot/modules/WorldTime.java @@ -54,12 +54,14 @@ import java.util.TreeMap; * @created 2014-04-27 * @since 1.0 */ +@SuppressWarnings("PMD.UseConcurrentHashMap") public final class WorldTime extends AbstractModule { // The beats (Internet Time) keyword. private static final String BEATS_KEYWORD = ".beats"; // The supported countries. private static final Map COUNTRIES_MAP; + /** * The time command. */ @@ -155,52 +157,10 @@ public final class WorldTime extends AbstractModule { * Creates a new {@link WorldTime} instance. */ public WorldTime() { + super(); commands.add(TIME_CMD); } - /** - * Returns the current Internet (beat) Time. - * - * @return The Internet Time string. - */ - private static String internetTime() { - final ZonedDateTime zdt = ZonedDateTime.now(ZoneId.of("UTC+01:00")); - final int beats = (int) ((zdt.get(ChronoField.SECOND_OF_MINUTE) + (zdt.get(ChronoField.MINUTE_OF_HOUR) * 60) - + (zdt.get(ChronoField.HOUR_OF_DAY) * 3600)) / 86.4); - return String.format("%c%03d", '@', beats); - } - - /** - * Returns the world time. - * - *
    - *
  • PST
  • - *
  • BEATS
  • - *
- * - * @param query The query. - * @return The {@link Message} containing the world time. - */ - @SuppressFBWarnings(value = "STT_STRING_PARSING_A_FIELD") - static Message worldTime(final String query) { - final String tz = (COUNTRIES_MAP.get((query.substring(query.indexOf(' ') + 1).trim().toUpperCase()))); - final String response; - - if (tz != null) { - if (BEATS_KEYWORD.equals(tz)) { - response = ("The current Internet Time is: " + internetTime() + ' ' + BEATS_KEYWORD); - } else { - response = ZonedDateTime.now().withZoneSameInstant(ZoneId.of(tz)).format( - DateTimeFormatter.ofPattern("'The time is 'HH:mm' on 'EEEE, d MMMM yyyy' in '")) - + tz.substring(tz.indexOf('/') + 1).replace('_', ' '); - } - } else { - return new ErrorMessage("The supported countries/zones are: " + COUNTRIES_MAP.keySet()); - } - - return new PublicMessage(response); - } - /** * Responds with the current time in the specified timezone/country. * @@ -243,4 +203,48 @@ public final class WorldTime extends AbstractModule { public boolean isPrivateMsgEnabled() { return true; } + + /** + * Returns the current Internet (beat) Time. + * + * @return The Internet Time string. + */ + private static String internetTime() { + final ZonedDateTime zdt = ZonedDateTime.now(ZoneId.of("UTC+01:00")); + final int beats = (int) ((zdt.get(ChronoField.SECOND_OF_MINUTE) + (zdt.get(ChronoField.MINUTE_OF_HOUR) * 60) + + (zdt.get(ChronoField.HOUR_OF_DAY) * 3600)) / 86.4); + return String.format("%c%03d", '@', beats); + } + + /** + * Returns the world time. + * + *
    + *
  • PST
  • + *
  • BEATS
  • + *
+ * + * @param query The query. + * @return The {@link Message} containing the world time. + */ + @SuppressFBWarnings("STT_STRING_PARSING_A_FIELD") + static Message worldTime(final String query) { + final String tz = (COUNTRIES_MAP.get((query.substring(query.indexOf(' ') + 1).trim() + .toUpperCase(Constants.LOCALE)))); + final String response; + + if (tz != null) { + if (BEATS_KEYWORD.equals(tz)) { + response = ("The current Internet Time is: " + internetTime() + ' ' + BEATS_KEYWORD); + } else { + response = ZonedDateTime.now().withZoneSameInstant(ZoneId.of(tz)).format( + DateTimeFormatter.ofPattern("'The time is 'HH:mm' on 'EEEE, d MMMM yyyy' in '")) + + tz.substring(tz.indexOf('/') + 1).replace('_', ' '); + } + } else { + return new ErrorMessage("The supported countries/zones are: " + COUNTRIES_MAP.keySet()); + } + + return new PublicMessage(response); + } } diff --git a/src/main/java/net/thauvin/erik/mobibot/msg/ErrorMessage.java b/src/main/java/net/thauvin/erik/mobibot/msg/ErrorMessage.java index 8e6ff2f..dea79a6 100644 --- a/src/main/java/net/thauvin/erik/mobibot/msg/ErrorMessage.java +++ b/src/main/java/net/thauvin/erik/mobibot/msg/ErrorMessage.java @@ -46,6 +46,7 @@ public class ErrorMessage extends Message { * @param message The error message. */ public ErrorMessage(final String message) { + super(); this.setMessage(message); this.setError(true); this.setNotice(true); @@ -59,6 +60,7 @@ public class ErrorMessage extends Message { */ @SuppressWarnings("unused") public ErrorMessage(final String message, final String color) { + super(); this.setMessage(message); this.setError(true); this.setNotice(true); diff --git a/src/main/java/net/thauvin/erik/mobibot/msg/NoticeMessage.java b/src/main/java/net/thauvin/erik/mobibot/msg/NoticeMessage.java index 9abcf09..258d947 100644 --- a/src/main/java/net/thauvin/erik/mobibot/msg/NoticeMessage.java +++ b/src/main/java/net/thauvin/erik/mobibot/msg/NoticeMessage.java @@ -46,6 +46,7 @@ public class NoticeMessage extends Message { * @param message The notice's message. */ public NoticeMessage(final String message) { + super(); this.setMessage(message); this.setNotice(true); } @@ -57,6 +58,7 @@ public class NoticeMessage extends Message { * @param color The color. */ public NoticeMessage(final String message, final String color) { + super(); this.setMessage(message); this.setNotice(true); this.setColor(color); diff --git a/src/main/java/net/thauvin/erik/mobibot/msg/PrivateMessage.java b/src/main/java/net/thauvin/erik/mobibot/msg/PrivateMessage.java index e1a48cf..1079a4d 100644 --- a/src/main/java/net/thauvin/erik/mobibot/msg/PrivateMessage.java +++ b/src/main/java/net/thauvin/erik/mobibot/msg/PrivateMessage.java @@ -42,10 +42,18 @@ package net.thauvin.erik.mobibot.msg; @SuppressWarnings("unused") public class PrivateMessage extends Message { public PrivateMessage(final String message) { + super(); this.setMessage(message); } + /** + * Creates a new private message. + * + * @param message The message. + * @param color The message color. + */ public PrivateMessage(final String message, final String color) { + super(); this.setMessage(message); this.setColor(color); } diff --git a/src/main/java/net/thauvin/erik/mobibot/msg/PublicMessage.java b/src/main/java/net/thauvin/erik/mobibot/msg/PublicMessage.java index 702f0a3..3c4e924 100644 --- a/src/main/java/net/thauvin/erik/mobibot/msg/PublicMessage.java +++ b/src/main/java/net/thauvin/erik/mobibot/msg/PublicMessage.java @@ -41,11 +41,19 @@ package net.thauvin.erik.mobibot.msg; */ public class PublicMessage extends Message { public PublicMessage(final String message) { + super(); this.setMessage(message); } + /** + * Creates a new public message. + * + * @param message The message. + * @param color The message color. + */ @SuppressWarnings("unused") public PublicMessage(final String message, final String color) { + super(); this.setMessage(message); this.setColor(color); }