From c32b049e18de9fac91636aaca5485caf24bf26a8 Mon Sep 17 00:00:00 2001 From: Jack Franklin Date: Mon, 20 Apr 2020 11:37:27 +0100 Subject: [PATCH] chore: delete `src/MultiMap` (#5690) Went to migrate to TypeScript but a grep of the codebase for `MultiMap` reveals that nothing requires it :) --- src/Multimap.js | 136 ------------------------------------------------ 1 file changed, 136 deletions(-) delete mode 100644 src/Multimap.js diff --git a/src/Multimap.js b/src/Multimap.js deleted file mode 100644 index 28a419c02108d..0000000000000 --- a/src/Multimap.js +++ /dev/null @@ -1,136 +0,0 @@ -/** - * Copyright 2017 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * @template T - * @template V - */ -class Multimap { - constructor() { - this._map = new Map(); - } - - /** - * @param {T} key - * @param {V} value - */ - set(key, value) { - let set = this._map.get(key); - if (!set) { - set = new Set(); - this._map.set(key, set); - } - set.add(value); - } - - /** - * @param {T} key - * @return {!Set} - */ - get(key) { - let result = this._map.get(key); - if (!result) - result = new Set(); - return result; - } - - /** - * @param {T} key - * @return {boolean} - */ - has(key) { - return this._map.has(key); - } - - /** - * @param {T} key - * @param {V} value - * @return {boolean} - */ - hasValue(key, value) { - const set = this._map.get(key); - if (!set) - return false; - return set.has(value); - } - - /** - * @return {number} - */ - get size() { - return this._map.size; - } - - /** - * @param {T} key - * @param {V} value - * @return {boolean} - */ - delete(key, value) { - const values = this.get(key); - const result = values.delete(value); - if (!values.size) - this._map.delete(key); - return result; - } - - /** - * @param {T} key - */ - deleteAll(key) { - this._map.delete(key); - } - - /** - * @param {T} key - * @return {V} - */ - firstValue(key) { - const set = this._map.get(key); - if (!set) - return null; - return set.values().next().value; - } - - /** - * @return {T} - */ - firstKey() { - return this._map.keys().next().value; - } - - /** - * @return {!Array} - */ - valuesArray() { - const result = []; - for (const key of this._map.keys()) - result.push(...Array.from(this._map.get(key).values())); - return result; - } - - /** - * @return {!Array} - */ - keysArray() { - return Array.from(this._map.keys()); - } - - clear() { - this._map.clear(); - } -} - -module.exports = Multimap;