2b2e17fb9f89c1ad2156cfcf8ef0d159dbf16308
[ccsdk/cds.git] /
1 import { Parser } from './Parser';
2
3 export class VtlParser implements Parser {
4     getVariables(fileContent: string): string[] {
5         const variables: string[] = [];
6         const stringsSlittedByBraces = fileContent.split('${');
7         const stringsDefaultByDollarSignOnly = fileContent.split('"$');
8
9         for (let i = 1; i < stringsSlittedByBraces.length; i++) {
10             const element = stringsSlittedByBraces[i];
11             if (element) {
12                 const firstElement = element.split('}')[0];
13                 if (!variables.includes(firstElement)) {
14                     variables.push(firstElement);
15                 } else {
16                     console.log(firstElement);
17                 }
18             }
19         }
20
21         for (let i = 1; i < stringsDefaultByDollarSignOnly.length; i++) {
22             const element = stringsDefaultByDollarSignOnly[i];
23             if (element && !element.includes('$')) {
24                 const firstElement = element.split('"')[0]
25                     .replace('{', '')
26                     .replace('}', '').trim();
27                 if (!variables.includes(firstElement)) {
28                     variables.push(firstElement);
29                 }
30             }
31         }
32         return variables;
33     }
34
35 }
36
37 /*
38
39 <vlb-business-vnf-onap-plugin xmlns="urn:opendaylight:params:xml:ns:yang:vlb-business-vnf-onap-plugin">
40     <vdns-instances>
41         <vdns-instance>
42             <ip-addr>$vdns_int_private_ip_0</ip-addr>
43             <oam-ip-addr>$vdns_onap_private_ip_0</oam-ip-addr>
44             <tag>aaaa</tag>
45             <enabled>false</enabled>
46             <tag>dddd</tag>
47         </vdns-instance>
48     </vdns-instances>
49 </vlb-business-vnf-onap-plugin>
50
51 */