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 16862x 16862x 1x 1x 138772x 138772x 1x 1x 18194x 18194x 18194x 18194x 18194x 18194x 18194x 18194x 18194x 18194x 18194x 18194x 18194x 18194x 1x 1x 9097x 9097x 9097x 1x 1x 9097x 9097x 9097x 9097x 9097x 9097x 9097x 9097x 9097x 9097x 9097x 9097x 9097x 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[];
}
|