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;
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import com.google.inject.Provides;
import java.awt.event.KeyEvent;
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.TabSprites;
import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
import net.runelite.client.util.Text;
@PluginDescriptor(
name = "Bank Tags",
@@ -83,8 +82,6 @@ import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
@PluginDependency(ClueScrollPlugin.class)
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 TAG_SEARCH = "tag:";
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();
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)")
.value(initialValue)
@@ -291,7 +288,7 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
clientThread.invoke(() ->
{
// 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 ->
{
newTags.remove(s);
@@ -299,13 +296,13 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
}).collect(Collectors.toList());
// And save them
tagManager.setTagString(itemId, JOINER.join(newTags), false);
tagManager.setTagString(itemId, JOINER.join(newVarTags), true);
tagManager.setTagString(itemId, Text.toCSV(newTags), false);
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
// the tag got added in new tags
tabInterface.updateTabIfActive(SPLITTER.splitToList(initialValue.toLowerCase().replaceAll(Pattern.quote(VAR_TAG_SUFFIX), "")));
tabInterface.updateTabIfActive(SPLITTER.splitToList(newValue.toLowerCase().replaceAll(Pattern.quote(VAR_TAG_SUFFIX), "")));
tabInterface.updateTabIfActive(Text.fromCSV(initialValue.toLowerCase().replaceAll(Pattern.quote(VAR_TAG_SUFFIX), "")));
tabInterface.updateTabIfActive(Text.fromCSV(newValue.toLowerCase().replaceAll(Pattern.quote(VAR_TAG_SUFFIX), "")));
}))
.build();

View File

@@ -37,8 +37,6 @@ import net.runelite.client.config.ConfigManager;
import net.runelite.client.game.ItemManager;
import net.runelite.client.game.ItemVariationMapping;
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.clues.ClueScroll;
import net.runelite.client.plugins.cluescrolls.clues.CoordinateClue;
@@ -83,7 +81,7 @@ public class TagManager
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)
@@ -120,7 +118,7 @@ public class TagManager
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)

View File

@@ -82,7 +82,6 @@ import net.runelite.client.plugins.banktags.BankTagsConfig;
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.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.VAR_TAG_SUFFIX;
import net.runelite.client.plugins.banktags.TagManager;
@@ -250,7 +249,7 @@ public class TabInterface
.onDone((newTags) ->
clientThread.invoke(() ->
{
final List<String> tags = SPLITTER.splitToList(newTags.toLowerCase());
final List<String> tags = Text.fromCSV(newTags.toLowerCase());
for (Integer item : items)
{
@@ -290,7 +289,7 @@ public class TabInterface
.toString()
.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 icon = dataIter.next();
configManager.setConfiguration(CONFIG_GROUP, ICON_SEARCH + name, icon);
@@ -370,7 +369,7 @@ public class TabInterface
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);
notifier.notify("Tag tab " + tagTab.getTag() + " has been copied to your clipboard!");
break;

View File

@@ -38,8 +38,6 @@ import net.runelite.api.ItemID;
import net.runelite.client.config.ConfigManager;
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.JOINER;
import static net.runelite.client.plugins.banktags.BankTagsPlugin.SPLITTER;
import net.runelite.client.util.Text;
import org.apache.commons.lang3.math.NumberUtils;
@@ -80,7 +78,7 @@ class TabManager
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)
@@ -122,7 +120,7 @@ class TabManager
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);
}

View File

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

View File

@@ -24,8 +24,6 @@
*/
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.collect.Lists;
import com.google.inject.Provides;
@@ -61,8 +59,6 @@ public class ClanChatPlugin extends Plugin
private static final int MAX_CHATS = 10;
private static final String CLAN_CHAT_TITLE = "Clan Chat";
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
private Client client;
@@ -84,7 +80,7 @@ public class ClanChatPlugin extends Plugin
@Override
public void startUp()
{
chats = new ArrayList<>(SPLITTER.splitToList(config.chatsData()));
chats = new ArrayList<>(Text.fromCSV(config.chatsData()));
}
@Override
@@ -225,6 +221,6 @@ public class ClanChatPlugin extends Plugin
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;
import com.google.common.base.Splitter;
import com.google.common.base.Strings;
import com.google.common.primitives.Ints;
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.IconTextField;
import net.runelite.client.util.ImageUtil;
import net.runelite.client.util.Text;
@Slf4j
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 RUNELITE_PLUGIN = "RuneLite";
private static final String CHAT_COLOR_PLUGIN = "Chat Color";
private static final Splitter COMMA_SPLITTER = Splitter.on(',');
private final PluginManager pluginManager;
private final ConfigManager configManager;
@@ -653,7 +652,7 @@ public class ConfigPanel extends PluginPanel
return Collections.emptyList();
}
return COMMA_SPLITTER.splitToList(config);
return Text.fromCSV(config);
}
void savePinnedPlugins()

View File

@@ -25,8 +25,6 @@
*/
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.LoadingCache;
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.util.ColorUtil;
import net.runelite.client.util.StackFormatter;
import net.runelite.client.util.Text;
@PluginDescriptor(
name = "Ground Items",
@@ -95,12 +94,6 @@ import net.runelite.client.util.StackFormatter;
)
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.
private static final float HIGH_ALCHEMY_CONSTANT = 0.6f;
// ItemID for coins
@@ -406,10 +399,10 @@ public class GroundItemsPlugin extends Plugin
private void reset()
{
// 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
highlightedItemsList = COMMA_SPLITTER.splitToList(config.getHighlightItems());
highlightedItemsList = Text.fromCSV(config.getHighlightItems());
highlightedItems = CacheBuilder.newBuilder()
.maximumSize(512L)
@@ -540,8 +533,8 @@ public class GroundItemsPlugin extends Plugin
items.add(item);
}
config.setHiddenItems(COMMA_JOINER.join(hiddenItemSet));
config.setHighlightedItem(COMMA_JOINER.join(highlightedItemSet));
config.setHiddenItems(Text.toCSV(hiddenItemSet));
config.setHighlightedItem(Text.toCSV(highlightedItemSet));
}
Color getHighlighted(String item, int gePrice, int haPrice)

View File

@@ -25,8 +25,6 @@
*/
package net.runelite.client.plugins.loottracker;
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import com.google.inject.Provides;
import java.awt.image.BufferedImage;
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 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
private ClientToolbar clientToolbar;
@@ -194,7 +185,7 @@ public class LootTrackerPlugin extends Plugin
{
if (event.getGroup().equals("loottracker"))
{
ignoredItems = COMMA_SPLITTER.splitToList(config.getIgnoredItems());
ignoredItems = Text.fromCSV(config.getIgnoredItems());
panel.updateIgnoredRecords();
}
}
@@ -202,7 +193,7 @@ public class LootTrackerPlugin extends Plugin
@Override
protected void startUp() throws Exception
{
ignoredItems = COMMA_SPLITTER.splitToList(config.getIgnoredItems());
ignoredItems = Text.fromCSV(config.getIgnoredItems());
panel = new LootTrackerPanel(this, itemManager);
spriteManager.getSpriteAsync(SpriteID.TAB_INVENTORY, 0, panel::loadHeaderIcon);
@@ -411,7 +402,7 @@ public class LootTrackerPlugin extends Plugin
ignoredItemSet.remove(name);
}
config.setIgnoredItems(COMMA_JOINER.join(ignoredItemSet));
config.setIgnoredItems(Text.toCSV(ignoredItemSet));
panel.updateIgnoredRecords();
}

View File

@@ -26,7 +26,6 @@
package net.runelite.client.plugins.npchighlight;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableList;
import com.google.inject.Provides;
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.PluginDescriptor;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.util.Text;
import net.runelite.client.util.WildcardMatcher;
@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,
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
private Client client;
@@ -431,7 +428,7 @@ public class NpcIndicatorsPlugin extends Plugin
return Collections.emptyList();
}
return COMMA_SPLITTER.splitToList(configNpcs);
return Text.fromCSV(configNpcs);
}
private void rebuildAllNpcs()

View File

@@ -26,6 +26,10 @@
package net.runelite.client.util;
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;
/**
@@ -34,6 +38,34 @@ import java.util.regex.Pattern;
public class Text
{
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.

View File

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