@abaplint/core
Version:
abaplint - Core API
87 lines • 3.45 kB
JavaScript
"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