Merge pull request #7483 from deathbeam/unify-splitters

Unify Splitter/Joiner usage (move to Text#toCSV and Text#fromCSV)
This commit is contained in:
Tomas Slusny
2019-01-21 12:37:39 +00:00
committed by GitHub
12 changed files with 63 additions and 67 deletions

View File

@@ -26,8 +26,6 @@
*/ */
package net.runelite.client.plugins.banktags; package net.runelite.client.plugins.banktags;
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import com.google.inject.Provides; import com.google.inject.Provides;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelEvent;
@@ -74,6 +72,7 @@ import net.runelite.client.plugins.banktags.tabs.BankSearch;
import net.runelite.client.plugins.banktags.tabs.TabInterface; import net.runelite.client.plugins.banktags.tabs.TabInterface;
import net.runelite.client.plugins.banktags.tabs.TabSprites; import net.runelite.client.plugins.banktags.tabs.TabSprites;
import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin; import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
import net.runelite.client.util.Text;
@PluginDescriptor( @PluginDescriptor(
name = "Bank Tags", name = "Bank Tags",
@@ -83,8 +82,6 @@ import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
@PluginDependency(ClueScrollPlugin.class) @PluginDependency(ClueScrollPlugin.class)
public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyListener public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyListener
{ {
public static final Splitter SPLITTER = Splitter.on(",").omitEmptyStrings().trimResults();
public static final Joiner JOINER = Joiner.on(",").skipNulls();
public static final String CONFIG_GROUP = "banktags"; public static final String CONFIG_GROUP = "banktags";
public static final String TAG_SEARCH = "tag:"; public static final String TAG_SEARCH = "tag:";
private static final String EDIT_TAGS_MENU_OPTION = "Edit-tags"; private static final String EDIT_TAGS_MENU_OPTION = "Edit-tags";
@@ -283,7 +280,7 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
boolean isSearchOpen = client.getVar(VarClientInt.INPUT_TYPE) == InputType.SEARCH.getType(); boolean isSearchOpen = client.getVar(VarClientInt.INPUT_TYPE) == InputType.SEARCH.getType();
String searchText = client.getVar(VarClientStr.INPUT_TEXT); String searchText = client.getVar(VarClientStr.INPUT_TEXT);
String initialValue = JOINER.join(tags); String initialValue = Text.toCSV(tags);
chatboxPanelManager.openTextInput(name + " tags:<br>(append " + VAR_TAG_SUFFIX + " for variation tag)") chatboxPanelManager.openTextInput(name + " tags:<br>(append " + VAR_TAG_SUFFIX + " for variation tag)")
.value(initialValue) .value(initialValue)
@@ -291,7 +288,7 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
clientThread.invoke(() -> clientThread.invoke(() ->
{ {
// Split inputted tags to vartags (ending with *) and regular tags // Split inputted tags to vartags (ending with *) and regular tags
final Collection<String> newTags = new ArrayList<>(SPLITTER.splitToList(newValue.toLowerCase())); final Collection<String> newTags = new ArrayList<>(Text.fromCSV(newValue.toLowerCase()));
final Collection<String> newVarTags = new ArrayList<>(newTags).stream().filter(s -> s.endsWith(VAR_TAG_SUFFIX)).map(s -> final Collection<String> newVarTags = new ArrayList<>(newTags).stream().filter(s -> s.endsWith(VAR_TAG_SUFFIX)).map(s ->
{ {
newTags.remove(s); newTags.remove(s);
@@ -299,13 +296,13 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
}).collect(Collectors.toList()); }).collect(Collectors.toList());
// And save them // And save them
tagManager.setTagString(itemId, JOINER.join(newTags), false); tagManager.setTagString(itemId, Text.toCSV(newTags), false);
tagManager.setTagString(itemId, JOINER.join(newVarTags), true); tagManager.setTagString(itemId, Text.toCSV(newVarTags), true);
// Check both previous and current tags in case the tag got removed in new tags or in case // Check both previous and current tags in case the tag got removed in new tags or in case
// the tag got added in new tags // the tag got added in new tags
tabInterface.updateTabIfActive(SPLITTER.splitToList(initialValue.toLowerCase().replaceAll(Pattern.quote(VAR_TAG_SUFFIX), ""))); tabInterface.updateTabIfActive(Text.fromCSV(initialValue.toLowerCase().replaceAll(Pattern.quote(VAR_TAG_SUFFIX), "")));
tabInterface.updateTabIfActive(SPLITTER.splitToList(newValue.toLowerCase().replaceAll(Pattern.quote(VAR_TAG_SUFFIX), ""))); tabInterface.updateTabIfActive(Text.fromCSV(newValue.toLowerCase().replaceAll(Pattern.quote(VAR_TAG_SUFFIX), "")));
})) }))
.build(); .build();

View File

@@ -37,8 +37,6 @@ import net.runelite.client.config.ConfigManager;
import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemManager;
import net.runelite.client.game.ItemVariationMapping; import net.runelite.client.game.ItemVariationMapping;
import static net.runelite.client.plugins.banktags.BankTagsPlugin.CONFIG_GROUP; import static net.runelite.client.plugins.banktags.BankTagsPlugin.CONFIG_GROUP;
import static net.runelite.client.plugins.banktags.BankTagsPlugin.JOINER;
import static net.runelite.client.plugins.banktags.BankTagsPlugin.SPLITTER;
import net.runelite.client.plugins.cluescrolls.ClueScrollService; import net.runelite.client.plugins.cluescrolls.ClueScrollService;
import net.runelite.client.plugins.cluescrolls.clues.ClueScroll; import net.runelite.client.plugins.cluescrolls.clues.ClueScroll;
import net.runelite.client.plugins.cluescrolls.clues.CoordinateClue; import net.runelite.client.plugins.cluescrolls.clues.CoordinateClue;
@@ -83,7 +81,7 @@ public class TagManager
Collection<String> getTags(int itemId, boolean variation) Collection<String> getTags(int itemId, boolean variation)
{ {
return new LinkedHashSet<>(SPLITTER.splitToList(getTagString(itemId, variation).toLowerCase())); return new LinkedHashSet<>(Text.fromCSV(getTagString(itemId, variation).toLowerCase()));
} }
void setTagString(int itemId, String tags, boolean variation) void setTagString(int itemId, String tags, boolean variation)
@@ -120,7 +118,7 @@ public class TagManager
private void setTags(int itemId, Collection<String> tags, boolean variation) private void setTags(int itemId, Collection<String> tags, boolean variation)
{ {
setTagString(itemId, JOINER.join(tags), variation); setTagString(itemId, Text.toCSV(tags), variation);
} }
boolean findTag(int itemId, String search) boolean findTag(int itemId, String search)

View File

@@ -82,7 +82,6 @@ import net.runelite.client.plugins.banktags.BankTagsConfig;
import net.runelite.client.plugins.banktags.BankTagsPlugin; import net.runelite.client.plugins.banktags.BankTagsPlugin;
import static net.runelite.client.plugins.banktags.BankTagsPlugin.CONFIG_GROUP; import static net.runelite.client.plugins.banktags.BankTagsPlugin.CONFIG_GROUP;
import static net.runelite.client.plugins.banktags.BankTagsPlugin.ICON_SEARCH; import static net.runelite.client.plugins.banktags.BankTagsPlugin.ICON_SEARCH;
import static net.runelite.client.plugins.banktags.BankTagsPlugin.SPLITTER;
import static net.runelite.client.plugins.banktags.BankTagsPlugin.TAG_SEARCH; import static net.runelite.client.plugins.banktags.BankTagsPlugin.TAG_SEARCH;
import static net.runelite.client.plugins.banktags.BankTagsPlugin.VAR_TAG_SUFFIX; import static net.runelite.client.plugins.banktags.BankTagsPlugin.VAR_TAG_SUFFIX;
import net.runelite.client.plugins.banktags.TagManager; import net.runelite.client.plugins.banktags.TagManager;
@@ -250,7 +249,7 @@ public class TabInterface
.onDone((newTags) -> .onDone((newTags) ->
clientThread.invoke(() -> clientThread.invoke(() ->
{ {
final List<String> tags = SPLITTER.splitToList(newTags.toLowerCase()); final List<String> tags = Text.fromCSV(newTags.toLowerCase());
for (Integer item : items) for (Integer item : items)
{ {
@@ -290,7 +289,7 @@ public class TabInterface
.toString() .toString()
.trim(); .trim();
final Iterator<String> dataIter = BankTagsPlugin.SPLITTER.split(dataString).iterator(); final Iterator<String> dataIter = Text.fromCSV(dataString).iterator();
final String name = dataIter.next(); final String name = dataIter.next();
final String icon = dataIter.next(); final String icon = dataIter.next();
configManager.setConfiguration(CONFIG_GROUP, ICON_SEARCH + name, icon); configManager.setConfiguration(CONFIG_GROUP, ICON_SEARCH + name, icon);
@@ -370,7 +369,7 @@ public class TabInterface
data.add(String.valueOf(item)); data.add(String.valueOf(item));
} }
final StringSelection stringSelection = new StringSelection(BankTagsPlugin.JOINER.join(data)); final StringSelection stringSelection = new StringSelection(Text.toCSV(data));
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
notifier.notify("Tag tab " + tagTab.getTag() + " has been copied to your clipboard!"); notifier.notify("Tag tab " + tagTab.getTag() + " has been copied to your clipboard!");
break; break;

View File

@@ -38,8 +38,6 @@ import net.runelite.api.ItemID;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import static net.runelite.client.plugins.banktags.BankTagsPlugin.CONFIG_GROUP; import static net.runelite.client.plugins.banktags.BankTagsPlugin.CONFIG_GROUP;
import static net.runelite.client.plugins.banktags.BankTagsPlugin.ICON_SEARCH; import static net.runelite.client.plugins.banktags.BankTagsPlugin.ICON_SEARCH;
import static net.runelite.client.plugins.banktags.BankTagsPlugin.JOINER;
import static net.runelite.client.plugins.banktags.BankTagsPlugin.SPLITTER;
import net.runelite.client.util.Text; import net.runelite.client.util.Text;
import org.apache.commons.lang3.math.NumberUtils; import org.apache.commons.lang3.math.NumberUtils;
@@ -80,7 +78,7 @@ class TabManager
List<String> getAllTabs() List<String> getAllTabs()
{ {
return SPLITTER.splitToList(MoreObjects.firstNonNull(configManager.getConfiguration(CONFIG_GROUP, TAG_TABS_CONFIG), "")); return Text.fromCSV(MoreObjects.firstNonNull(configManager.getConfiguration(CONFIG_GROUP, TAG_TABS_CONFIG), ""));
} }
TagTab load(String tag) TagTab load(String tag)
@@ -122,7 +120,7 @@ class TabManager
void save() void save()
{ {
String tags = JOINER.join(tabs.stream().map(TagTab::getTag).collect(Collectors.toList())); String tags = Text.toCSV(tabs.stream().map(TagTab::getTag).collect(Collectors.toList()));
configManager.setConfiguration(CONFIG_GROUP, TAG_TABS_CONFIG, tags); configManager.setConfiguration(CONFIG_GROUP, TAG_TABS_CONFIG, tags);
} }

View File

@@ -25,7 +25,6 @@
*/ */
package net.runelite.client.plugins.chatnotifications; package net.runelite.client.plugins.chatnotifications;
import com.google.common.base.Splitter;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.google.inject.Provides; import com.google.inject.Provides;
import java.util.List; import java.util.List;
@@ -57,8 +56,6 @@ import net.runelite.client.util.Text;
) )
public class ChatNotificationsPlugin extends Plugin public class ChatNotificationsPlugin extends Plugin
{ {
private static final Splitter SPLITTER = Splitter.on(",").trimResults().omitEmptyStrings();
@Inject @Inject
private Client client; private Client client;
@@ -118,7 +115,7 @@ public class ChatNotificationsPlugin extends Plugin
if (!config.highlightWordsString().trim().equals("")) if (!config.highlightWordsString().trim().equals(""))
{ {
List<String> items = SPLITTER.splitToList(config.highlightWordsString()); List<String> items = Text.fromCSV(config.highlightWordsString());
String joined = items.stream() String joined = items.stream()
.map(Pattern::quote) .map(Pattern::quote)
.collect(Collectors.joining("|")); .collect(Collectors.joining("|"));

View File

@@ -24,8 +24,6 @@
*/ */
package net.runelite.client.plugins.clanchat; package net.runelite.client.plugins.clanchat;
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.inject.Provides; import com.google.inject.Provides;
@@ -61,8 +59,6 @@ public class ClanChatPlugin extends Plugin
private static final int MAX_CHATS = 10; private static final int MAX_CHATS = 10;
private static final String CLAN_CHAT_TITLE = "Clan Chat"; private static final String CLAN_CHAT_TITLE = "Clan Chat";
private static final String RECENT_TITLE = "Recent Clan Chats"; private static final String RECENT_TITLE = "Recent Clan Chats";
private static final Joiner JOINER = Joiner.on(',').skipNulls();
private static final Splitter SPLITTER = Splitter.on(',').trimResults().omitEmptyStrings();
@Inject @Inject
private Client client; private Client client;
@@ -84,7 +80,7 @@ public class ClanChatPlugin extends Plugin
@Override @Override
public void startUp() public void startUp()
{ {
chats = new ArrayList<>(SPLITTER.splitToList(config.chatsData())); chats = new ArrayList<>(Text.fromCSV(config.chatsData()));
} }
@Override @Override
@@ -225,6 +221,6 @@ public class ClanChatPlugin extends Plugin
chats.remove(0); chats.remove(0);
} }
config.chatsData(JOINER.join(chats)); config.chatsData(Text.toCSV(chats));
} }
} }

View File

@@ -24,7 +24,6 @@
*/ */
package net.runelite.client.plugins.config; package net.runelite.client.plugins.config;
import com.google.common.base.Splitter;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.google.common.primitives.Ints; import com.google.common.primitives.Ints;
import java.awt.BorderLayout; import java.awt.BorderLayout;
@@ -92,6 +91,7 @@ import net.runelite.client.ui.components.ComboBoxListRenderer;
import net.runelite.client.ui.components.IconButton; import net.runelite.client.ui.components.IconButton;
import net.runelite.client.ui.components.IconTextField; import net.runelite.client.ui.components.IconTextField;
import net.runelite.client.util.ImageUtil; import net.runelite.client.util.ImageUtil;
import net.runelite.client.util.Text;
@Slf4j @Slf4j
public class ConfigPanel extends PluginPanel public class ConfigPanel extends PluginPanel
@@ -106,7 +106,6 @@ public class ConfigPanel extends PluginPanel
private static final String PINNED_PLUGINS_CONFIG_KEY = "pinnedPlugins"; private static final String PINNED_PLUGINS_CONFIG_KEY = "pinnedPlugins";
private static final String RUNELITE_PLUGIN = "RuneLite"; private static final String RUNELITE_PLUGIN = "RuneLite";
private static final String CHAT_COLOR_PLUGIN = "Chat Color"; private static final String CHAT_COLOR_PLUGIN = "Chat Color";
private static final Splitter COMMA_SPLITTER = Splitter.on(',');
private final PluginManager pluginManager; private final PluginManager pluginManager;
private final ConfigManager configManager; private final ConfigManager configManager;
@@ -653,7 +652,7 @@ public class ConfigPanel extends PluginPanel
return Collections.emptyList(); return Collections.emptyList();
} }
return COMMA_SPLITTER.splitToList(config); return Text.fromCSV(config);
} }
void savePinnedPlugins() void savePinnedPlugins()

View File

@@ -25,8 +25,6 @@
*/ */
package net.runelite.client.plugins.grounditems; package net.runelite.client.plugins.grounditems;
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheBuilder;
import com.google.common.cache.LoadingCache; import com.google.common.cache.LoadingCache;
import com.google.inject.Provides; import com.google.inject.Provides;
@@ -87,6 +85,7 @@ import static net.runelite.client.plugins.grounditems.config.MenuHighlightMode.O
import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.util.ColorUtil; import net.runelite.client.util.ColorUtil;
import net.runelite.client.util.StackFormatter; import net.runelite.client.util.StackFormatter;
import net.runelite.client.util.Text;
@PluginDescriptor( @PluginDescriptor(
name = "Ground Items", name = "Ground Items",
@@ -95,12 +94,6 @@ import net.runelite.client.util.StackFormatter;
) )
public class GroundItemsPlugin extends Plugin public class GroundItemsPlugin extends Plugin
{ {
private static final Splitter COMMA_SPLITTER = Splitter
.on(",")
.omitEmptyStrings()
.trimResults();
private static final Joiner COMMA_JOINER = Joiner.on(",").skipNulls();
// Used when getting High Alchemy value - multiplied by general store price. // Used when getting High Alchemy value - multiplied by general store price.
private static final float HIGH_ALCHEMY_CONSTANT = 0.6f; private static final float HIGH_ALCHEMY_CONSTANT = 0.6f;
// ItemID for coins // ItemID for coins
@@ -406,10 +399,10 @@ public class GroundItemsPlugin extends Plugin
private void reset() private void reset()
{ {
// gets the hidden items from the text box in the config // gets the hidden items from the text box in the config
hiddenItemList = COMMA_SPLITTER.splitToList(config.getHiddenItems()); hiddenItemList = Text.fromCSV(config.getHiddenItems());
// gets the highlighted items from the text box in the config // gets the highlighted items from the text box in the config
highlightedItemsList = COMMA_SPLITTER.splitToList(config.getHighlightItems()); highlightedItemsList = Text.fromCSV(config.getHighlightItems());
highlightedItems = CacheBuilder.newBuilder() highlightedItems = CacheBuilder.newBuilder()
.maximumSize(512L) .maximumSize(512L)
@@ -540,8 +533,8 @@ public class GroundItemsPlugin extends Plugin
items.add(item); items.add(item);
} }
config.setHiddenItems(COMMA_JOINER.join(hiddenItemSet)); config.setHiddenItems(Text.toCSV(hiddenItemSet));
config.setHighlightedItem(COMMA_JOINER.join(highlightedItemSet)); config.setHighlightedItem(Text.toCSV(highlightedItemSet));
} }
Color getHighlighted(String item, int gePrice, int haPrice) Color getHighlighted(String item, int gePrice, int haPrice)

View File

@@ -25,8 +25,6 @@
*/ */
package net.runelite.client.plugins.loottracker; package net.runelite.client.plugins.loottracker;
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import com.google.inject.Provides; import com.google.inject.Provides;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.IOException; import java.io.IOException;
@@ -94,13 +92,6 @@ public class LootTrackerPlugin extends Plugin
private static final Pattern CLUE_SCROLL_PATTERN = Pattern.compile("You have completed [0-9]+ ([a-z]+) Treasure Trails."); private static final Pattern CLUE_SCROLL_PATTERN = Pattern.compile("You have completed [0-9]+ ([a-z]+) Treasure Trails.");
private static final int THEATRE_OF_BLOOD_REGION = 12867; private static final int THEATRE_OF_BLOOD_REGION = 12867;
private static final Splitter COMMA_SPLITTER = Splitter
.on(",")
.omitEmptyStrings()
.trimResults();
private static final Joiner COMMA_JOINER = Joiner.on(",").skipNulls();
@Inject @Inject
private ClientToolbar clientToolbar; private ClientToolbar clientToolbar;
@@ -194,7 +185,7 @@ public class LootTrackerPlugin extends Plugin
{ {
if (event.getGroup().equals("loottracker")) if (event.getGroup().equals("loottracker"))
{ {
ignoredItems = COMMA_SPLITTER.splitToList(config.getIgnoredItems()); ignoredItems = Text.fromCSV(config.getIgnoredItems());
panel.updateIgnoredRecords(); panel.updateIgnoredRecords();
} }
} }
@@ -202,7 +193,7 @@ public class LootTrackerPlugin extends Plugin
@Override @Override
protected void startUp() throws Exception protected void startUp() throws Exception
{ {
ignoredItems = COMMA_SPLITTER.splitToList(config.getIgnoredItems()); ignoredItems = Text.fromCSV(config.getIgnoredItems());
panel = new LootTrackerPanel(this, itemManager); panel = new LootTrackerPanel(this, itemManager);
spriteManager.getSpriteAsync(SpriteID.TAB_INVENTORY, 0, panel::loadHeaderIcon); spriteManager.getSpriteAsync(SpriteID.TAB_INVENTORY, 0, panel::loadHeaderIcon);
@@ -411,7 +402,7 @@ public class LootTrackerPlugin extends Plugin
ignoredItemSet.remove(name); ignoredItemSet.remove(name);
} }
config.setIgnoredItems(COMMA_JOINER.join(ignoredItemSet)); config.setIgnoredItems(Text.toCSV(ignoredItemSet));
panel.updateIgnoredRecords(); panel.updateIgnoredRecords();
} }

View File

@@ -26,7 +26,6 @@
package net.runelite.client.plugins.npchighlight; package net.runelite.client.plugins.npchighlight;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.inject.Provides; import com.google.inject.Provides;
import java.time.Instant; import java.time.Instant;
@@ -64,6 +63,7 @@ import net.runelite.client.menus.MenuManager;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.util.Text;
import net.runelite.client.util.WildcardMatcher; import net.runelite.client.util.WildcardMatcher;
@PluginDescriptor( @PluginDescriptor(
@@ -82,9 +82,6 @@ public class NpcIndicatorsPlugin extends Plugin
private static final List<MenuAction> NPC_MENU_ACTIONS = ImmutableList.of(MenuAction.NPC_FIRST_OPTION, MenuAction.NPC_SECOND_OPTION, private static final List<MenuAction> NPC_MENU_ACTIONS = ImmutableList.of(MenuAction.NPC_FIRST_OPTION, MenuAction.NPC_SECOND_OPTION,
MenuAction.NPC_THIRD_OPTION, MenuAction.NPC_FOURTH_OPTION, MenuAction.NPC_FIFTH_OPTION); MenuAction.NPC_THIRD_OPTION, MenuAction.NPC_FOURTH_OPTION, MenuAction.NPC_FIFTH_OPTION);
// Regex for splitting the hidden items in the config.
private static final Splitter COMMA_SPLITTER = Splitter.on(",").omitEmptyStrings().trimResults();
@Inject @Inject
private Client client; private Client client;
@@ -431,7 +428,7 @@ public class NpcIndicatorsPlugin extends Plugin
return Collections.emptyList(); return Collections.emptyList();
} }
return COMMA_SPLITTER.splitToList(configNpcs); return Text.fromCSV(configNpcs);
} }
private void rebuildAllNpcs() private void rebuildAllNpcs()

View File

@@ -26,6 +26,10 @@
package net.runelite.client.util; package net.runelite.client.util;
import com.google.common.base.CharMatcher; import com.google.common.base.CharMatcher;
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import java.util.Collection;
import java.util.List;
import java.util.regex.Pattern; import java.util.regex.Pattern;
/** /**
@@ -34,6 +38,34 @@ import java.util.regex.Pattern;
public class Text public class Text
{ {
private static final Pattern TAG_REGEXP = Pattern.compile("<[^>]*>"); private static final Pattern TAG_REGEXP = Pattern.compile("<[^>]*>");
private static final Splitter COMMA_SPLITTER = Splitter
.on(",")
.omitEmptyStrings()
.trimResults();
private static final Joiner COMMA_JOINER = Joiner.on(",").skipNulls();
/**
* Splits comma separated values to list of strings
*
* @param input input
* @return list of values
*/
public static List<String> fromCSV(final String input)
{
return COMMA_SPLITTER.splitToList(input);
}
/**
* Joins collection of strings as comma separated values
*
* @param input collection
* @return comma separated value string
*/
public static String toCSV(final Collection<String> input)
{
return COMMA_JOINER.join(input);
}
/** /**
* Removes all tags from the given string. * Removes all tags from the given string.

View File

@@ -24,7 +24,6 @@
*/ */
package net.runelite.client.plugins.chatnotifications; package net.runelite.client.plugins.chatnotifications;
import com.google.common.base.Splitter;
import com.google.inject.Guice; import com.google.inject.Guice;
import com.google.inject.testing.fieldbinder.Bind; import com.google.inject.testing.fieldbinder.Bind;
import com.google.inject.testing.fieldbinder.BoundFieldModule; import com.google.inject.testing.fieldbinder.BoundFieldModule;
@@ -37,6 +36,7 @@ import net.runelite.api.MessageNode;
import net.runelite.api.events.SetMessage; import net.runelite.api.events.SetMessage;
import net.runelite.client.Notifier; import net.runelite.client.Notifier;
import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.ChatMessageManager;
import net.runelite.client.util.Text;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -97,8 +97,7 @@ public class ChatNotificationsPluginTest
public void highlightListTest() public void highlightListTest()
{ {
when(config.highlightWordsString()).thenReturn("this,is, a , test, "); when(config.highlightWordsString()).thenReturn("this,is, a , test, ");
final Splitter splitter = Splitter.on(",").trimResults().omitEmptyStrings(); final List<String> higlights = Text.fromCSV(config.highlightWordsString());
final List<String> higlights = splitter.splitToList(config.highlightWordsString());
assertEquals(4, higlights.size()); assertEquals(4, higlights.size());
final Iterator<String> iterator = higlights.iterator(); final Iterator<String> iterator = higlights.iterator();