6cc62758ed2d6350fb771935c752fa933dea9971
[ccsdk/cds.git] /
1
2 import { XmlParser } from './XmlParser';
3 import { Parser } from './Parser';
4 import { VtlParser } from './VtlParser';
5 import { FileExtension } from '../TemplateType';
6 import { JinjaXMLParser } from './JinjaXML';
7
8 export class ParserFactory {
9
10     getParser(fileContent: string, fileExtension: string): Parser {
11         let parser: Parser;
12         console.log('file extension =' + fileExtension);
13         if (fileExtension === FileExtension.Velocity) {
14             if (this.isXML(fileContent)) {
15                 parser = new XmlParser();
16             } else {
17                 parser = new VtlParser();
18             }
19         } else if (fileExtension === FileExtension.Jinja) {
20             if (this.isXML(fileContent)) {
21                 parser = new JinjaXMLParser();
22             }
23         } else if (fileExtension === FileExtension.XML) {
24             parser = new XmlParser();
25         }
26         return parser;
27     }
28
29     private isXML(fileContent: string): boolean {
30         return fileContent.includes('<?xml version="1.0" encoding="UTF-8"?>');
31     }
32 }