All files / common agvid-map.js

100% Statements 27/27
100% Branches 8/8
100% Functions 8/8
100% Lines 26/26

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51    7x 7x     21x     8x 8x 8x     3946x 3946x 2049x   1897x     119x 119x 86x 86x   119x     74x 74x 1x   73x 73x 71x       11x     13x 8x 9x         7x  
"use strict";
/*! Copyright (c) 2021 Siemens AG. Licensed under the MIT License. */
Object.defineProperty(exports, "__esModule", { value: true });
exports.AgvIdMap = void 0;
class AgvIdMap {
    constructor() {
        this._map = new Map();
    }
    get size() {
        let size = 0;
        this._map.forEach(map => size += map.size);
        return size;
    }
    get(agvId) {
        const map = this._map.get(agvId.manufacturer);
        if (!map) {
            return undefined;
        }
        return map.get(agvId.serialNumber);
    }
    set(agvId, value) {
        let map = this._map.get(agvId.manufacturer);
        if (!map) {
            map = new Map();
            this._map.set(agvId.manufacturer, map);
        }
        map.set(agvId.serialNumber, value);
    }
    delete(agvId) {
        const map = this._map.get(agvId.manufacturer);
        if (!map) {
            return;
        }
        map.delete(agvId.serialNumber);
        if (map.size === 0) {
            this._map.delete(agvId.manufacturer);
        }
    }
    clear() {
        this._map.clear();
    }
    *[Symbol.iterator]() {
        for (const [manufacturer, map] of this._map) {
            for (const [serialNumber, value] of map) {
                yield [{ manufacturer, serialNumber }, value];
            }
        }
    }
}
exports.AgvIdMap = AgvIdMap;