@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
34 lines • 1.55 kB
JavaScript
import { PolymerEntityInstanceTranslate } from "./PolymerEntityInstanceTranslate";
import { Operator } from "../Helpers/Operator";
import { TagDelimiter } from "@rcsb/rcsb-api-tools/lib/RcsbUtils/TagDelimiter";
export class MultipleEntityInstanceTranslate {
constructor() {
this.entityInstanceTranslateMap = new Map();
}
add(data) {
const entryEntityInstanceMapList = new Map();
data.forEach(d => {
var _a;
const entityId = d.entryId + TagDelimiter.entity + d.entityId;
if (!entryEntityInstanceMapList.has(entityId))
entryEntityInstanceMapList.set(entityId, new Array());
(_a = entryEntityInstanceMapList.get(entityId)) === null || _a === void 0 ? void 0 : _a.push(d);
});
entryEntityInstanceMapList.forEach((v, entityId) => {
this.entityInstanceTranslateMap.set(entityId, new PolymerEntityInstanceTranslate(v));
});
}
getEntity(entityId) {
return this.entityInstanceTranslateMap.get(entityId);
}
getEntities() {
return Array.from(this.entityInstanceTranslateMap.keys());
}
getEntries() {
return Operator.uniqueValues(Array.from(this.entityInstanceTranslateMap.keys()).map(entityId => TagDelimiter.parseEntity(entityId).entryId));
}
getInstances() {
return Operator.uniqueValues(Array.from(this.entityInstanceTranslateMap.values()).map(peit => peit.getData()).flat().map(e => e.asymId));
}
}
//# sourceMappingURL=MultipleEntityInstanceTranslate.js.map