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 | 1x 1x 1x 1x 1x 1x 22372x 22372x 1x 1x 208095x 208095x 1x 1x 23240x 23240x 23240x 23240x 23240x 23240x 23240x 23240x 23240x 23240x 23240x 23240x 23240x 23240x 1x 1x 11620x 11620x 11620x 1x 1x 11620x 11620x 11620x 11620x 11620x 11620x 11620x 11620x 11620x 11620x 11620x 11620x 11620x 1x 1x 1x 1x | import {IFile} from "./_ifile";
export abstract class AbstractFile implements IFile {
private readonly filename: string;
public constructor(filename: string) {
this.filename = filename;
}
public getFilename(): string {
return this.filename;
}
private baseName(): string {
let name = this.getFilename();
let index = name.lastIndexOf("\\");
if (index) {
index = index + 1;
}
name = name.substring(index);
index = name.lastIndexOf("/");
if (index) {
index = index + 1;
}
return name.substring(index);
}
public getObjectType(): string | undefined {
const split = this.baseName().split(".");
return split[1]?.toUpperCase();
}
public getObjectName(): string {
const split = this.baseName().split(".");
// handle url escaped namespace
split[0] = split[0].replace(/%23/g, "#");
// handle additional escaping
split[0] = split[0].replace(/%3e/g, ">");
split[0] = split[0].replace(/%3c/g, "<");
// handle abapGit namespace
split[0] = split[0].toUpperCase().replace(/#/g, "/");
// handle AFF namespace
split[0] = split[0].replace("(", "/");
split[0] = split[0].replace(")", "/");
return split[0];
}
public abstract getRaw(): string;
public abstract getRawRows(): string[];
}
|