@abaplint/core
Version:
abaplint - Core API
48 lines • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CDSMetadataExtension = void 0;
const cds_parser_1 = require("../cds/cds_parser");
const _abstract_object_1 = require("./_abstract_object");
class CDSMetadataExtension extends _abstract_object_1.AbstractObject {
constructor() {
super(...arguments);
this.parserError = undefined;
this.parsedData = undefined;
}
getType() {
return "DDLX";
}
getAllowedNaming() {
return {
maxLength: 40,
allowNamespace: true,
};
}
hasParserError() {
return this.parserError;
}
parse() {
if (this.isDirty() === false) {
return { updated: false, runtime: 0 };
}
const start = Date.now();
this.parsedData = {
tree: undefined,
};
this.parsedData.tree = new cds_parser_1.CDSParser().parse(this.findSourceFile());
if (this.parsedData.tree === undefined) {
this.parserError = true;
}
this.dirty = false;
return { updated: true, runtime: Date.now() - start };
}
getDescription() {
// todo
return undefined;
}
findSourceFile() {
return this.getFiles().find(f => f.getFilename().endsWith(".asddlxs") || f.getFilename().endsWith(".acds"));
}
}
exports.CDSMetadataExtension = CDSMetadataExtension;
//# sourceMappingURL=cds_metadata_extension.js.map