package ru.qatools.gridrouter.sessions; import java.util.HashMap; import java.util.Map; import java.util.Optional; /** * @author Innokenty Shuvalov innokenty@yandex-team.ru */ public class BrowsersCountMap extends HashMap<String, Map<String, Integer>> implements GridRouterUserStats { public void increment(String browser, String version) { putIfAbsent(browser, new HashMap<>()); get(browser).compute(version, (v, count) -> Optional.ofNullable(count).orElse(0) + 1); } public void decrement(BrowserVersion browser) { decrement(browser.getBrowser(), browser.getVersion()); } public void decrement(String browser, String version) { if (!containsKey(browser)) { return; } Map<String, Integer> versions = get(browser); if (!versions.containsKey(version)) { return; } int count = versions.get(version) - 1; if (count > 0) { versions.put(version, count); } else { versions.remove(version); } if (versions.isEmpty()) { remove(browser); } } }