@abaplint/core
Version:
abaplint - Core API
59 lines • 1.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ICFService = void 0;
const _abstract_object_1 = require("./_abstract_object");
const xml_utils_1 = require("../xml_utils");
class ICFService extends _abstract_object_1.AbstractObject {
getType() {
return "SICF";
}
getAllowedNaming() {
return {
maxLength: 100,
allowNamespace: true,
};
}
setDirty() {
this.parsedXML = undefined;
super.setDirty();
}
getDescription() {
// todo
return undefined;
}
getURL() {
var _a;
this.parse();
return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.url;
}
getHandlerList() {
var _a;
this.parse();
return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.handlers;
}
parse() {
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 };
}
const table = parsed.abapGit["asx:abap"]["asx:values"].ICFHANDLER_TABLE;
this.parsedXML.handlers = [];
for (const h of (0, xml_utils_1.xmlToArray)(table)) {
if (h.ICFHANDLER !== undefined) {
this.parsedXML.handlers.push(h.ICFHANDLER.ICFHANDLER);
}
}
this.parsedXML.url = parsed.abapGit["asx:abap"]["asx:values"].URL;
const end = Date.now();
return { updated: true, runtime: end - start };
}
}
exports.ICFService = ICFService;
//# sourceMappingURL=icf_service.js.map