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: bankConfig
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private BankConfig bankConfig;
test_class.type: BankConfig
test_class.var_name: bankConfig
test_class.declarator: bankPlugin
test_class.modifier: @Inject
  	private
test_class.original_string: @Inject
  	private BankPlugin bankPlugin;
test_class.type: BankPlugin
test_class.var_name: bankPlugin
test_class.file: runelite-client/src/test/java/net/runelite/client/plugins/bank/BankPluginTest.java
test_class.identifier: BankPluginTest
test_case.body: @Test
  	public void testCalculate()
  	{
  		Item coins = new Item(ItemID.COINS_995, Integer.MAX_VALUE);
  
  		Item whip = new Item(ItemID.ABYSSAL_WHIP, 1_000_000_000);
  
  		Item[] items = ImmutableList.of(
  			coins,
  			whip
  		).toArray(new Item[0]);
  
  		ItemComposition whipComp = mock(ItemComposition.class);
  		when(whipComp.getHaPrice())
  			.thenReturn(4); // 4 * 1m overflows
  		when(itemManager.getItemComposition(ItemID.ABYSSAL_WHIP))
  			.thenReturn(whipComp);
  		when(itemManager.getItemPrice(ItemID.ABYSSAL_WHIP))
  			.thenReturn(3); // 1b * 3 overflows
  
  		final ContainerPrices prices = bankPlugin.calculate(items);
  		assertNotNull(prices);
  
  		assertTrue(prices.getHighAlchPrice() > Integer.MAX_VALUE);
  		assertTrue(prices.getGePrice() > Integer.MAX_VALUE);
  	}
test_case.class_method_signature: BankPluginTest.testCalculate()
test_case.full_signature: @Test public void testCalculate()
test_case.identifier: testCalculate
test_case.invocations: toArray of mock thenReturn when getHaPrice thenReturn when getItemComposition thenReturn when getItemPrice calculate assertNotNull assertTrue getHighAlchPrice assertTrue getGePrice
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testCalculate()
focal_class.declarator: DEPOSIT_WORN = "Deposit worn items"
focal_class.modifier: private static final
focal_class.original_string: private static final String DEPOSIT_WORN = "Deposit worn items";
focal_class.type: String
focal_class.var_name: DEPOSIT_WORN
focal_class.declarator: DEPOSIT_INVENTORY = "Deposit inventory"
focal_class.modifier: private static final
focal_class.original_string: private static final String DEPOSIT_INVENTORY = "Deposit inventory";
focal_class.type: String
focal_class.var_name: DEPOSIT_INVENTORY
focal_class.declarator: DEPOSIT_LOOT = "Deposit loot"
focal_class.modifier: private static final
focal_class.original_string: private static final String DEPOSIT_LOOT = "Deposit loot";
focal_class.type: String
focal_class.var_name: DEPOSIT_LOOT
focal_class.declarator: SEED_VAULT_TITLE = "Seed Vault"
focal_class.modifier: private static final
focal_class.original_string: private static final String SEED_VAULT_TITLE = "Seed Vault";
focal_class.type: String
focal_class.var_name: SEED_VAULT_TITLE
focal_class.declarator: NUMBER_REGEX = "[0-9]+(\\.[0-9]+)?[kmb]?"
focal_class.modifier: private static final
focal_class.original_string: private static final String NUMBER_REGEX = "[0-9]+(\\.[0-9]+)?[kmb]?";
focal_class.type: String
focal_class.var_name: NUMBER_REGEX
focal_class.declarator: VALUE_SEARCH_PATTERN = Pattern.compile("^(?<mode>ge|ha|alch)?" +
  		" *(((?<op>[<>=]|>=|<=) *(?<num>" + NUMBER_REGEX + "))|" +
  		"((?<num1>" + NUMBER_REGEX + ") *- *(?<num2>" + NUMBER_REGEX + ")))$", Pattern.CASE_INSENSITIVE)
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern VALUE_SEARCH_PATTERN = Pattern.compile("^(?<mode>ge|ha|alch)?" +
  		" *(((?<op>[<>=]|>=|<=) *(?<num>" + NUMBER_REGEX + "))|" +
  		"((?<num1>" + NUMBER_REGEX + ") *- *(?<num2>" + NUMBER_REGEX + ")))$", Pattern.CASE_INSENSITIVE);
focal_class.type: Pattern
focal_class.var_name: VALUE_SEARCH_PATTERN
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: 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: config
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private BankConfig config;
focal_class.type: BankConfig
focal_class.var_name: config
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: forceRightClickFlag
focal_class.modifier: private
focal_class.original_string: private boolean forceRightClickFlag;
focal_class.type: boolean
focal_class.var_name: forceRightClickFlag
focal_class.declarator: itemQuantities
focal_class.modifier: private
focal_class.original_string: private Multiset<Integer> itemQuantities;
focal_class.type: Multiset<Integer>
focal_class.var_name: itemQuantities
focal_class.declarator: searchString
focal_class.modifier: private
focal_class.original_string: private String searchString;
focal_class.type: String
focal_class.var_name: searchString
focal_class.file: runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java
focal_class.identifier: BankPlugin
focal_class.class_method_signature: BankPlugin.getConfig(ConfigManager configManager)
focal_class.full_signature: @Provides BankConfig getConfig(ConfigManager configManager)
focal_class.identifier: getConfig
focal_class.modifiers: @Provides
focal_class.parameters: (ConfigManager configManager)
focal_class.return: BankConfig
focal_class.signature: BankConfig getConfig(ConfigManager configManager)
focal_class.class_method_signature: BankPlugin.shutDown()
focal_class.full_signature: @Override protected void shutDown()
focal_class.identifier: shutDown
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void shutDown()
focal_class.class_method_signature: BankPlugin.onMenuShouldLeftClick(MenuShouldLeftClick event)
focal_class.full_signature: @Subscribe public void onMenuShouldLeftClick(MenuShouldLeftClick event)
focal_class.identifier: onMenuShouldLeftClick
focal_class.modifiers: @Subscribe public
focal_class.parameters: (MenuShouldLeftClick event)
focal_class.return: void
focal_class.signature: void onMenuShouldLeftClick(MenuShouldLeftClick event)
focal_class.class_method_signature: BankPlugin.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: BankPlugin.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: BankPlugin.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: BankPlugin.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: BankPlugin.onItemContainerChanged(ItemContainerChanged event)
focal_class.full_signature: @Subscribe public void onItemContainerChanged(ItemContainerChanged event)
focal_class.identifier: onItemContainerChanged
focal_class.modifiers: @Subscribe public
focal_class.parameters: (ItemContainerChanged event)
focal_class.return: void
focal_class.signature: void onItemContainerChanged(ItemContainerChanged event)
focal_class.class_method_signature: BankPlugin.createValueText(long gePrice, long haPrice)
focal_class.full_signature: private String createValueText(long gePrice, long haPrice)
focal_class.identifier: createValueText
focal_class.modifiers: private
focal_class.parameters: (long gePrice, long haPrice)
focal_class.return: String
focal_class.signature: String createValueText(long gePrice, long haPrice)
focal_class.class_method_signature: BankPlugin.updateSeedVaultTotal()
focal_class.full_signature: private void updateSeedVaultTotal()
focal_class.identifier: updateSeedVaultTotal
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void updateSeedVaultTotal()
focal_class.class_method_signature: BankPlugin.getSeedVaultItems()
focal_class.full_signature: private Item[] getSeedVaultItems()
focal_class.identifier: getSeedVaultItems
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: Item[]
focal_class.signature: Item[] getSeedVaultItems()
focal_class.class_method_signature: BankPlugin.valueSearch(final int itemId, final String str)
focal_class.full_signature: @VisibleForTesting boolean valueSearch(final int itemId, final String str)
focal_class.identifier: valueSearch
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: (final int itemId, final String str)
focal_class.return: boolean
focal_class.signature: boolean valueSearch(final int itemId, final String str)
focal_class.class_method_signature: BankPlugin.getBankItemSet()
focal_class.full_signature: private Multiset<Integer> getBankItemSet()
focal_class.identifier: getBankItemSet
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: Multiset<Integer>
focal_class.signature: Multiset<Integer> getBankItemSet()
focal_class.class_method_signature: BankPlugin.calculate(@Nullable Item[] items)
focal_class.full_signature: @Nullable ContainerPrices calculate(@Nullable Item[] items)
focal_class.identifier: calculate
focal_class.modifiers: @Nullable
focal_class.parameters: (@Nullable Item[] items)
focal_class.return: ContainerPrices
focal_class.signature: ContainerPrices calculate(@Nullable Item[] items)
focal_class.class_method_signature: BankPlugin.getHaPrice(int itemId)
focal_class.full_signature: private int getHaPrice(int itemId)
focal_class.identifier: getHaPrice
focal_class.modifiers: private
focal_class.parameters: (int itemId)
focal_class.return: int
focal_class.signature: int getHaPrice(int itemId)
focal_class.superclass: extends Plugin
focal_method.body: @Nullable
  	ContainerPrices calculate(@Nullable Item[] items)
  	{
  		if (items == null)
  		{
  			return null;
  		}
  
  		long ge = 0;
  		long alch = 0;
  
  		for (final Item item : items)
  		{
  			final int qty = item.getQuantity();
  			final int id = item.getId();
  
  			if (id <= 0 || qty == 0)
  			{
  				continue;
  			}
  
  			alch += (long) getHaPrice(id) * qty;
  			ge += (long) itemManager.getItemPrice(id) * qty;
  		}
  
  		return new ContainerPrices(ge, alch);
  	}
focal_method.class_method_signature: BankPlugin.calculate(@Nullable Item[] items)
focal_method.full_signature: @Nullable ContainerPrices calculate(@Nullable Item[] items)
focal_method.identifier: calculate
focal_method.invocations: getQuantity getId getHaPrice getItemPrice
focal_method.modifiers: @Nullable
focal_method.parameters: (@Nullable Item[] items)
focal_method.return: ContainerPrices
focal_method.signature: ContainerPrices calculate(@Nullable Item[] items)