UNPKG

ui5plugin-parser

Version:
45 lines (44 loc) 1.98 kB
"use strict"; 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;