UNPKG

@abaplint/core

Version:
87 lines 3.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MaintenanceAndTransportObject = void 0; const basic_1 = require("../abap/types/basic"); const ddic_1 = require("../ddic"); const _abstract_object_1 = require("./_abstract_object"); class MaintenanceAndTransportObject extends _abstract_object_1.AbstractObject { setDirty() { super.setDirty(); this.parsedXML = undefined; } getType() { return "TOBJ"; } getDescription() { // todo return undefined; } getAllowedNaming() { return { maxLength: 31, allowNamespace: true, }; } getArea() { var _a; this.parse(); return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.area; } getObjectName() { var _a; this.parse(); return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.objectName; } getObjectType() { var _a; this.parse(); return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.objectType; } parseType(reg) { var _a, _b, _c; this.parse(); const references = []; const ddic = new ddic_1.DDIC(reg); if (((_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.objectName) && this.parsedXML.objectType === "S") { const found = ddic.lookupTableOrView2(this.parsedXML.objectName); if (found) { references.push({ object: found }); reg.getDDICReferences().setUsing(this, references); return found.parseType(reg); } else if (ddic.inErrorNamespace(this.parsedXML.objectName)) { return new basic_1.UnknownType(this.parsedXML.objectName + " not found"); } else { return basic_1.VoidType.get(this.parsedXML.objectName); } } else if (((_b = this.parsedXML) === null || _b === void 0 ? void 0 : _b.objectType) !== "S" && ((_c = this.parsedXML) === null || _c === void 0 ? void 0 : _c.objectName)) { return basic_1.VoidType.get(this.parsedXML.objectName); } else { return new basic_1.UnknownType("Parsing error"); } } parse() { var _a, _b, _c, _d; if (this.parsedXML) { return { updated: false, runtime: 0 }; } const start = Date.now(); this.parsedXML = {}; const parsed = super.parseRaw2(); if (parsed === undefined || parsed.abapGit === undefined || parsed.abapGit["asx:abap"]["asx:values"] === undefined) { return { updated: false, runtime: 0 }; } this.parsedXML.area = (_b = (_a = parsed.abapGit["asx:abap"]["asx:values"].TOBJ) === null || _a === void 0 ? void 0 : _a.TVDIR) === null || _b === void 0 ? void 0 : _b.AREA; this.parsedXML.objectName = (_c = parsed.abapGit["asx:abap"]["asx:values"].OBJH) === null || _c === void 0 ? void 0 : _c.OBJECTNAME; this.parsedXML.objectType = (_d = parsed.abapGit["asx:abap"]["asx:values"].OBJH) === null || _d === void 0 ? void 0 : _d.OBJECTTYPE; const end = Date.now(); return { updated: true, runtime: end - start }; } } exports.MaintenanceAndTransportObject = MaintenanceAndTransportObject; //# sourceMappingURL=maintenance_and_transport_object.js.map