test_class.declarator: client
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private Client client;
test_class.type: Client
test_class.var_name: client
test_class.declarator: itemManager
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private ItemManager itemManager;
test_class.type: ItemManager
test_class.var_name: itemManager
test_class.declarator: bankTagsConfig
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private BankTagsConfig bankTagsConfig;
test_class.type: BankTagsConfig
test_class.var_name: bankTagsConfig
test_class.declarator: runeLiteConfig
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private RuneLiteConfig runeLiteConfig;
test_class.type: RuneLiteConfig
test_class.var_name: runeLiteConfig
test_class.declarator: tabInterface
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private TabInterface tabInterface;
test_class.type: TabInterface
test_class.var_name: tabInterface
test_class.declarator: clueScrollService
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private ClueScrollService clueScrollService;
test_class.type: ClueScrollService
test_class.var_name: clueScrollService
test_class.declarator: configManager
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private ConfigManager configManager;
test_class.type: ConfigManager
test_class.var_name: configManager
test_class.declarator: tagManager
test_class.modifier: @Inject
  	private
test_class.original_string: @Inject
  	private TagManager tagManager;
test_class.type: TagManager
test_class.var_name: tagManager
test_class.declarator: bankTagsPlugin
test_class.modifier: @Inject
  	private
test_class.original_string: @Inject
  	private BankTagsPlugin bankTagsPlugin;
test_class.type: BankTagsPlugin
test_class.var_name: bankTagsPlugin
test_class.declarator: EVENT = new ScriptCallbackEvent()
test_class.modifier: private final
test_class.original_string: private final ScriptCallbackEvent EVENT = new ScriptCallbackEvent();
test_class.type: ScriptCallbackEvent
test_class.var_name: EVENT
test_class.file: runelite-client/src/test/java/net/runelite/client/plugins/banktags/BankTagsPluginTest.java
test_class.identifier: BankTagsPluginTest
test_case.body: @Test
  	public void testFallThrough()
  	{
  		when(client.getIntStack()).thenReturn(new int[]{1, ABYSSAL_WHIP});
  		when(client.getStringStack()).thenReturn(new String[]{"whip"});
  
  		when(configManager.getConfiguration(BankTagsPlugin.CONFIG_GROUP,
  			TagManager.ITEM_KEY_PREFIX + ABYSSAL_WHIP)).thenReturn("herb,bossing");
  
  		assertFalse(tagManager.findTag(ABYSSAL_WHIP, "whip"));
  		bankTagsPlugin.onScriptCallbackEvent(EVENT);
  		assertEquals(1, client.getIntStack()[0]);
  	}
test_case.class_method_signature: BankTagsPluginTest.testFallThrough()
test_case.full_signature: @Test public void testFallThrough()
test_case.identifier: testFallThrough
test_case.invocations: thenReturn when getIntStack thenReturn when getStringStack thenReturn when getConfiguration assertFalse findTag onScriptCallbackEvent assertEquals getIntStack
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testFallThrough()
focal_class.declarator: CONFIG_GROUP = "banktags"
focal_class.modifier: public static final
focal_class.original_string: public static final String CONFIG_GROUP = "banktags";
focal_class.type: String
focal_class.var_name: CONFIG_GROUP
focal_class.declarator: TAG_SEARCH = "tag:"
focal_class.modifier: public static final
focal_class.original_string: public static final String TAG_SEARCH = "tag:";
focal_class.type: String
focal_class.var_name: TAG_SEARCH
focal_class.declarator: EDIT_TAGS_MENU_OPTION = "Edit-tags"
focal_class.modifier: private static final
focal_class.original_string: private static final String EDIT_TAGS_MENU_OPTION = "Edit-tags";
focal_class.type: String
focal_class.var_name: EDIT_TAGS_MENU_OPTION
focal_class.declarator: ICON_SEARCH = "icon_"
focal_class.modifier: public static final
focal_class.original_string: public static final String ICON_SEARCH = "icon_";
focal_class.type: String
focal_class.var_name: ICON_SEARCH
focal_class.declarator: TAG_TABS_CONFIG = "tagtabs"
focal_class.modifier: public static final
focal_class.original_string: public static final String TAG_TABS_CONFIG = "tagtabs";
focal_class.type: String
focal_class.var_name: TAG_TABS_CONFIG
focal_class.declarator: VAR_TAG_SUFFIX = "*"
focal_class.modifier: public static final
focal_class.original_string: public static final String VAR_TAG_SUFFIX = "*";
focal_class.type: String
focal_class.var_name: VAR_TAG_SUFFIX
focal_class.declarator: ITEMS_PER_ROW = 8
focal_class.modifier: private static final
focal_class.original_string: private static final int ITEMS_PER_ROW = 8;
focal_class.type: int
focal_class.var_name: ITEMS_PER_ROW
focal_class.declarator: ITEM_VERTICAL_SPACING = 36
focal_class.modifier: private static final
focal_class.original_string: private static final int ITEM_VERTICAL_SPACING = 36;
focal_class.type: int
focal_class.var_name: ITEM_VERTICAL_SPACING
focal_class.declarator: ITEM_HORIZONTAL_SPACING = 48
focal_class.modifier: private static final
focal_class.original_string: private static final int ITEM_HORIZONTAL_SPACING = 48;
focal_class.type: int
focal_class.var_name: ITEM_HORIZONTAL_SPACING
focal_class.declarator: ITEM_ROW_START = 51
focal_class.modifier: private static final
focal_class.original_string: private static final int ITEM_ROW_START = 51;
focal_class.type: int
focal_class.var_name: ITEM_ROW_START
focal_class.declarator: MAX_RESULT_COUNT = 250
focal_class.modifier: private static final
focal_class.original_string: private static final int MAX_RESULT_COUNT = 250;
focal_class.type: int
focal_class.var_name: MAX_RESULT_COUNT
focal_class.declarator: SEARCH_BANK_INPUT_TEXT =
  		"Show items whose names or tags contain the following text:<br>" +
  			"(To show only tagged items, start your search with 'tag:')"
focal_class.modifier: private static final
focal_class.original_string: private static final String SEARCH_BANK_INPUT_TEXT =
  		"Show items whose names or tags contain the following text:<br>" +
  			"(To show only tagged items, start your search with 'tag:')";
focal_class.type: String
focal_class.var_name: SEARCH_BANK_INPUT_TEXT
focal_class.declarator: SEARCH_BANK_INPUT_TEXT_FOUND =
  		"Show items whose names or tags contain the following text: (%d found)<br>" +
  			"(To show only tagged items, start your search with 'tag:')"
focal_class.modifier: private static final
focal_class.original_string: private static final String SEARCH_BANK_INPUT_TEXT_FOUND =
  		"Show items whose names or tags contain the following text: (%d found)<br>" +
  			"(To show only tagged items, start your search with 'tag:')";
focal_class.type: String
focal_class.var_name: SEARCH_BANK_INPUT_TEXT_FOUND
focal_class.declarator: itemManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ItemManager itemManager;
focal_class.type: ItemManager
focal_class.var_name: itemManager
focal_class.declarator: client
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private Client client;
focal_class.type: Client
focal_class.var_name: client
focal_class.declarator: clientThread
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ClientThread clientThread;
focal_class.type: ClientThread
focal_class.var_name: clientThread
focal_class.declarator: chatboxPanelManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ChatboxPanelManager chatboxPanelManager;
focal_class.type: ChatboxPanelManager
focal_class.var_name: chatboxPanelManager
focal_class.declarator: mouseManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private MouseManager mouseManager;
focal_class.type: MouseManager
focal_class.var_name: mouseManager
focal_class.declarator: config
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private BankTagsConfig config;
focal_class.type: BankTagsConfig
focal_class.var_name: config
focal_class.declarator: tagManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private TagManager tagManager;
focal_class.type: TagManager
focal_class.var_name: tagManager
focal_class.declarator: tabInterface
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private TabInterface tabInterface;
focal_class.type: TabInterface
focal_class.var_name: tabInterface
focal_class.declarator: bankSearch
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private BankSearch bankSearch;
focal_class.type: BankSearch
focal_class.var_name: bankSearch
focal_class.declarator: keyManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private KeyManager keyManager;
focal_class.type: KeyManager
focal_class.var_name: keyManager
focal_class.declarator: spriteManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private SpriteManager spriteManager;
focal_class.type: SpriteManager
focal_class.var_name: spriteManager
focal_class.declarator: configManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ConfigManager configManager;
focal_class.type: ConfigManager
focal_class.var_name: configManager
focal_class.file: runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java
focal_class.identifier: BankTagsPlugin
focal_class.interfaces: implements MouseWheelListener
focal_class.class_method_signature: BankTagsPlugin.getConfig(ConfigManager configManager)
focal_class.full_signature: @Provides BankTagsConfig getConfig(ConfigManager configManager)
focal_class.identifier: getConfig
focal_class.modifiers: @Provides
focal_class.parameters: (ConfigManager configManager)
focal_class.return: BankTagsConfig
focal_class.signature: BankTagsConfig getConfig(ConfigManager configManager)
focal_class.class_method_signature: BankTagsPlugin.resetConfiguration()
focal_class.full_signature: @Override public void resetConfiguration()
focal_class.identifier: resetConfiguration
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void resetConfiguration()
focal_class.class_method_signature: BankTagsPlugin.startUp()
focal_class.full_signature: @Override public void startUp()
focal_class.identifier: startUp
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void startUp()
focal_class.class_method_signature: BankTagsPlugin.cleanConfig()
focal_class.full_signature: @Deprecated private void cleanConfig()
focal_class.identifier: cleanConfig
focal_class.modifiers: @Deprecated private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void cleanConfig()
focal_class.class_method_signature: BankTagsPlugin.removeInvalidTags(final String key)
focal_class.full_signature: @Deprecated private void removeInvalidTags(final String key)
focal_class.identifier: removeInvalidTags
focal_class.modifiers: @Deprecated private
focal_class.parameters: (final String key)
focal_class.return: void
focal_class.signature: void removeInvalidTags(final String key)
focal_class.class_method_signature: BankTagsPlugin.shutDown()
focal_class.full_signature: @Override public void shutDown()
focal_class.identifier: shutDown
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void shutDown()
focal_class.class_method_signature: BankTagsPlugin.onGrandExchangeSearched(GrandExchangeSearched event)
focal_class.full_signature: @Subscribe public void onGrandExchangeSearched(GrandExchangeSearched event)
focal_class.identifier: onGrandExchangeSearched
focal_class.modifiers: @Subscribe public
focal_class.parameters: (GrandExchangeSearched event)
focal_class.return: void
focal_class.signature: void onGrandExchangeSearched(GrandExchangeSearched event)
focal_class.class_method_signature: BankTagsPlugin.onScriptCallbackEvent(ScriptCallbackEvent event)
focal_class.full_signature: @Subscribe public void onScriptCallbackEvent(ScriptCallbackEvent event)
focal_class.identifier: onScriptCallbackEvent
focal_class.modifiers: @Subscribe public
focal_class.parameters: (ScriptCallbackEvent event)
focal_class.return: void
focal_class.signature: void onScriptCallbackEvent(ScriptCallbackEvent event)
focal_class.class_method_signature: BankTagsPlugin.onMenuEntryAdded(MenuEntryAdded event)
focal_class.full_signature: @Subscribe public void onMenuEntryAdded(MenuEntryAdded event)
focal_class.identifier: onMenuEntryAdded
focal_class.modifiers: @Subscribe public
focal_class.parameters: (MenuEntryAdded event)
focal_class.return: void
focal_class.signature: void onMenuEntryAdded(MenuEntryAdded event)
focal_class.class_method_signature: BankTagsPlugin.onMenuOptionClicked(MenuOptionClicked event)
focal_class.full_signature: @Subscribe public void onMenuOptionClicked(MenuOptionClicked event)
focal_class.identifier: onMenuOptionClicked
focal_class.modifiers: @Subscribe public
focal_class.parameters: (MenuOptionClicked event)
focal_class.return: void
focal_class.signature: void onMenuOptionClicked(MenuOptionClicked event)
focal_class.class_method_signature: BankTagsPlugin.onConfigChanged(ConfigChanged configChanged)
focal_class.full_signature: @Subscribe public void onConfigChanged(ConfigChanged configChanged)
focal_class.identifier: onConfigChanged
focal_class.modifiers: @Subscribe public
focal_class.parameters: (ConfigChanged configChanged)
focal_class.return: void
focal_class.signature: void onConfigChanged(ConfigChanged configChanged)
focal_class.class_method_signature: BankTagsPlugin.onScriptPreFired(ScriptPreFired event)
focal_class.full_signature: @Subscribe public void onScriptPreFired(ScriptPreFired event)
focal_class.identifier: onScriptPreFired
focal_class.modifiers: @Subscribe public
focal_class.parameters: (ScriptPreFired event)
focal_class.return: void
focal_class.signature: void onScriptPreFired(ScriptPreFired event)
focal_class.class_method_signature: BankTagsPlugin.onScriptPostFired(ScriptPostFired event)
focal_class.full_signature: @Subscribe public void onScriptPostFired(ScriptPostFired event)
focal_class.identifier: onScriptPostFired
focal_class.modifiers: @Subscribe public
focal_class.parameters: (ScriptPostFired event)
focal_class.return: void
focal_class.signature: void onScriptPostFired(ScriptPostFired event)
focal_class.class_method_signature: BankTagsPlugin.onGameTick(GameTick event)
focal_class.full_signature: @Subscribe public void onGameTick(GameTick event)
focal_class.identifier: onGameTick
focal_class.modifiers: @Subscribe public
focal_class.parameters: (GameTick event)
focal_class.return: void
focal_class.signature: void onGameTick(GameTick event)
focal_class.class_method_signature: BankTagsPlugin.onDraggingWidgetChanged(DraggingWidgetChanged event)
focal_class.full_signature: @Subscribe public void onDraggingWidgetChanged(DraggingWidgetChanged event)
focal_class.identifier: onDraggingWidgetChanged
focal_class.modifiers: @Subscribe public
focal_class.parameters: (DraggingWidgetChanged event)
focal_class.return: void
focal_class.signature: void onDraggingWidgetChanged(DraggingWidgetChanged event)
focal_class.class_method_signature: BankTagsPlugin.onWidgetLoaded(WidgetLoaded event)
focal_class.full_signature: @Subscribe public void onWidgetLoaded(WidgetLoaded event)
focal_class.identifier: onWidgetLoaded
focal_class.modifiers: @Subscribe public
focal_class.parameters: (WidgetLoaded event)
focal_class.return: void
focal_class.signature: void onWidgetLoaded(WidgetLoaded event)
focal_class.class_method_signature: BankTagsPlugin.mouseWheelMoved(MouseWheelEvent event)
focal_class.full_signature: @Override public MouseWheelEvent mouseWheelMoved(MouseWheelEvent event)
focal_class.identifier: mouseWheelMoved
focal_class.modifiers: @Override public
focal_class.parameters: (MouseWheelEvent event)
focal_class.return: MouseWheelEvent
focal_class.signature: MouseWheelEvent mouseWheelMoved(MouseWheelEvent event)
focal_class.superclass: extends Plugin
focal_method.body: @Subscribe
  	public void onScriptCallbackEvent(ScriptCallbackEvent event)
  	{
  		String eventName = event.getEventName();
  
  		int[] intStack = client.getIntStack();
  		String[] stringStack = client.getStringStack();
  		int intStackSize = client.getIntStackSize();
  		int stringStackSize = client.getStringStackSize();
  
  		tabInterface.handleScriptEvent(event);
  
  		switch (eventName)
  		{
  			case "setSearchBankInputText":
  				stringStack[stringStackSize - 1] = SEARCH_BANK_INPUT_TEXT;
  				break;
  			case "setSearchBankInputTextFound":
  			{
  				int matches = intStack[intStackSize - 1];
  				stringStack[stringStackSize - 1] = String.format(SEARCH_BANK_INPUT_TEXT_FOUND, matches);
  				break;
  			}
  			case "bankSearchFilter":
  				final int itemId = intStack[intStackSize - 1];
  				final String searchfilter = stringStack[stringStackSize - 1];
  
  				// This event only fires when the bank is in search mode. It will fire even if there is no search
  				// input. We prevent having a tag tab open while also performing a normal search, so if a tag tab
  				// is active here it must mean we have placed the bank into search mode. See onScriptPostFired().
  				TagTab activeTab = tabInterface.getActiveTab();
  				String search = activeTab != null ? TAG_SEARCH + activeTab.getTag() : searchfilter;
  
  				if (search.isEmpty())
  				{
  					return;
  				}
  
  				boolean tagSearch = search.startsWith(TAG_SEARCH);
  				if (tagSearch)
  				{
  					search = search.substring(TAG_SEARCH.length()).trim();
  				}
  
  				if (tagManager.findTag(itemId, search))
  				{
  					// return true
  					intStack[intStackSize - 2] = 1;
  				}
  				else if (tagSearch)
  				{
  					// if the item isn't tagged we return false to prevent the item matching if the item name happens
  					// to contain the tag name.
  					intStack[intStackSize - 2] = 0;
  				}
  				break;
  			case "getSearchingTagTab":
  				intStack[intStackSize - 1] = tabInterface.isActive() ? 1 : 0;
  				break;
  		}
  	}
focal_method.class_method_signature: BankTagsPlugin.onScriptCallbackEvent(ScriptCallbackEvent event)
focal_method.full_signature: @Subscribe public void onScriptCallbackEvent(ScriptCallbackEvent event)
focal_method.identifier: onScriptCallbackEvent
focal_method.invocations: getEventName getIntStack getStringStack getIntStackSize getStringStackSize handleScriptEvent format getActiveTab getTag isEmpty startsWith trim substring length findTag isActive
focal_method.modifiers: @Subscribe public
focal_method.parameters: (ScriptCallbackEvent event)
focal_method.return: void
focal_method.signature: void onScriptCallbackEvent(ScriptCallbackEvent event)