ui5plugin-parser
Version:
45 lines (44 loc) • 1.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TextDocumentTransformer = void 0;
const AbstractCustomClass_1 = require("../../ui5class/AbstractCustomClass");
class TextDocumentTransformer {
constructor(parser) {
this._parser = parser;
}
toXMLFile(document, forceRefresh = false) {
const className = this._parser.fileReader.getClassNameFromPath(document.fileName);
if (className) {
const xmlType = document.fileName.endsWith(".fragment.xml") ? "fragment" : "view";
const XMLFile = this._parser.fileReader.getXMLFile(className, xmlType);
if (XMLFile && !XMLFile.XMLParserData) {
this._parser.xmlParser.fillXMLParsedData(XMLFile);
}
if (XMLFile && (XMLFile.content.length !== document.getText().length || forceRefresh)) {
if (xmlType === "view") {
this._parser.fileReader.setNewViewContentToCache(document.getText(), document.fileName);
}
else if (xmlType === "fragment") {
this._parser.fileReader.setNewFragmentContentToCache(document.getText(), document.fileName);
}
}
return XMLFile;
}
}
toUIClass(document) {
const className = this._parser.fileReader.getClassNameFromPath(document.fileName);
return className ? this._parser.classFactory.getUIClass(className) : undefined;
}
toCustomUIClass(document) {
let customUIClass;
const className = this._parser.fileReader.getClassNameFromPath(document.fileName);
if (className) {
const UIClass = this._parser.classFactory.getUIClass(className);
if (UIClass instanceof AbstractCustomClass_1.AbstractCustomClass) {
customUIClass = UIClass;
}
}
return customUIClass;
}
}
exports.TextDocumentTransformer = TextDocumentTransformer;