@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
31 lines • 920 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TwoLayerCollector = void 0;
/** two layer map abstraction */
class TwoLayerCollector {
store = new Map();
add(layer1, layer2, value) {
let layer2Map = this.store.get(layer1);
if (layer2Map === undefined) {
layer2Map = new Map();
this.store.set(layer1, layer2Map);
}
let values = layer2Map.get(layer2);
if (values === undefined) {
values = [];
layer2Map.set(layer2, values);
}
values.push(value);
}
get(layer1, layer2) {
return this.store.get(layer1)?.get(layer2);
}
outerKeys() {
return this.store.keys();
}
innerKeys(layer1) {
return this.store.get(layer1)?.keys() ?? [];
}
}
exports.TwoLayerCollector = TwoLayerCollector;
//# sourceMappingURL=two-layer-collector.js.map