UNPKG

@oaklean/profiler-core

Version:

Part of the @oaklean suite. It provides all basic functions to work with the `.oak` file format. It allows parsing the `.oak` file format as well as tools for analyzing the measurement values. It also provides all necessary capabilities required for prec

82 lines 8.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SourceNodeIndex = void 0; const BaseModel_1 = require("../BaseModel"); const ModelMap_1 = require("../ModelMap"); const GlobalIdentifier_1 = require("../../system/GlobalIdentifier"); // Types const types_1 = require("../../types"); class SourceNodeIndex extends BaseModel_1.BaseModel { constructor(identifier, pathIndex, type, id) { super(); // make selfAssignId only available for instances of type SourceNodeIndex<SourceNodeIndexType.SourceNode> this.selfAssignId = (() => { if (!this.isSourceNode()) { throw new Error('SourceNodeIndex.selfAssignId: can only be called on a SourceNodeIndex of type SourceNode'); } const self = this; self._id = this.pathIndex.moduleIndex.globalIndex.newId(this, 'sourceNode'); self.pathIndex.addToSourceNodeMap(this); return this._id; }); this.identifier = identifier; this.pathIndex = pathIndex; this.type = type; this._id = (this.isSourceNode() ? ((id === undefined) ? this.selfAssignId() : id) : undefined); } get presentInOriginalSourceCode() { return this._notPresentInOriginalSourceCode === undefined ? true : false; } set presentInOriginalSourceCode(v) { this._notPresentInOriginalSourceCode = v === true ? undefined : true; } insertToOtherIndex(globalIndex) { const newPathIndex = this.pathIndex.insertToOtherIndex(globalIndex); return newPathIndex.getSourceNodeIndex('upsert', this.identifier); } toBuffer() { throw new Error('SourceNodeIndex.toBuffer: not yet implemented'); } isSourceNode() { return this.type === types_1.SourceNodeIndexType.SourceNode; } get id() { return this._id; } toJSON() { var _a; const presentInOriginalSourceCode = this.presentInOriginalSourceCode ? {} : { npiosc: true }; return Object.assign(Object.assign({ id: this.id }, presentInOriginalSourceCode), { children: (_a = this.children) === null || _a === void 0 ? void 0 : _a.toJSON() }); } static fromJSON(json, sourceNodeParts, pathIndex, type) { let data; if (typeof json === 'string') { data = JSON.parse(json); } else { data = json; } const result = new SourceNodeIndex(sourceNodeParts.join('.'), pathIndex, type, data.id); result.presentInOriginalSourceCode = data.npiosc === undefined ? true : false; if (result.isSourceNode()) { result.pathIndex.addToSourceNodeMap(result); result.pathIndex.moduleIndex.globalIndex.setReverseIndex(result.id, result, 'sourceNode'); } if (data.children) { result.children = new ModelMap_1.ModelMap('string'); for (const key of Object.keys(data.children)) { result.children.set(key, SourceNodeIndex.fromJSON(data.children[key], [...sourceNodeParts, key], pathIndex, data.children[key].id !== undefined ? types_1.SourceNodeIndexType.SourceNode : types_1.SourceNodeIndexType.Intermediate)); } } return result; } globalIdentifier() { const isLangInternal = this.pathIndex.moduleIndex === this.pathIndex.moduleIndex.globalIndex.getLangInternalIndex('get'); return new GlobalIdentifier_1.GlobalIdentifier(this.pathIndex.identifier, this.identifier, isLangInternal ? this.pathIndex.moduleIndex.globalIndex.engineModule : this.pathIndex.moduleIndex.nodeModule()); } } exports.SourceNodeIndex = SourceNodeIndex; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU291cmNlTm9kZUluZGV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21vZGVsL2luZGV4L1NvdXJjZU5vZGVJbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSw0Q0FBd0M7QUFDeEMsMENBQXNDO0FBQ3RDLG9FQUFnRTtBQUNoRSxRQUFRO0FBQ1IsdUNBUW9CO0FBRXBCLE1BQWEsZUFBK0MsU0FBUSxxQkFBUztJQVM1RSxZQUNDLFVBQWlGLEVBQ2pGLFNBQW9CLEVBQ3BCLElBQU8sRUFDUCxFQUF5QjtRQUV6QixLQUFLLEVBQUUsQ0FBQTtRQStCUix5R0FBeUc7UUFDekcsaUJBQVksR0FDNEIsQ0FBQyxHQUFHLEVBQUU7WUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO2dCQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLDBGQUEwRixDQUFDLENBQUE7WUFDNUcsQ0FBQztZQUNELE1BQU0sSUFBSSxHQUFHLElBQXVELENBQUE7WUFDcEUsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUN0RCxJQUF1RCxFQUN2RCxZQUFZLENBQ1csQ0FBQTtZQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLEdBQTJCLENBQUE7UUFDeEMsQ0FBQyxDQUFRLENBQUE7UUEzQ1QsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUE7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUNWLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsQ0FB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