Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 59x 59x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 4x 4x 4x 1x 1x 9x 9x 9x 1x 1x 1x 1x 1x 1x 1x 19x 19x 19x 1x 1x 1x 1x 21x 13x 13x 8x 8x 8x 8x 8x 8x 8x 21x 3x 3x 5x 21x 21x 21x 5x 1x 1x 4x 4x 5x 5x 5x 5x 1x | import {IFile} from "../files/_ifile";
import {xmlToArray} from "../xml_utils";
import {AbstractObject} from "./_abstract_object";
import {IAllowedNaming} from "./_iobject";
export class WebMIME extends AbstractObject {
private parsedXML: {
description?: string,
params: {[key: string]: string},
} | undefined;
public getType(): string {
return "W3MI";
}
public getAllowedNaming(): IAllowedNaming {
return {
maxLength: 40,
allowNamespace: true,
customRegex: new RegExp(/^[A-Z_-\d/<> ]+$/i),
};
}
public getDescription(): string | undefined {
this.parse();
return this.parsedXML?.description;
}
public getParameter(name: string): string | undefined {
this.parse();
return this.parsedXML?.params[name.toLowerCase()];
}
public getParameters(): {[key: string]: string} {
this.parse();
return this.parsedXML?.params ?? {};
}
public setDirty(): void {
this.parsedXML = undefined;
super.setDirty();
}
public getDataFile(): IFile | undefined {
for (const f of this.getFiles()) {
if (f.getFilename().includes(".data.")) {
return f;
}
}
return undefined;
}
public parse() {
if (this.parsedXML) {
return {updated: false, runtime: 0};
}
const start = Date.now();
this.parsedXML = {params: {}};
const parsed = super.parseRaw2();
if (parsed === undefined
|| parsed.abapGit === undefined
|| parsed.abapGit?.["asx:abap"]?.["asx:values"] === undefined) {
return {updated: false, runtime: 0};
}
this.parsedXML.description = parsed.abapGit?.["asx:abap"]?.["asx:values"]?.TEXT;
for (const param of xmlToArray(parsed.abapGit?.["asx:abap"]?.["asx:values"]?.PARAMS?.WWWPARAMS)) {
if (typeof param?.NAME !== "string") {
continue;
}
this.parsedXML.params[param.NAME.toLowerCase()] = param.VALUE;
}
const end = Date.now();
return {updated: true, runtime: end - start};
}
}
|