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 22254x 22254x 1x 1x 206996x 206996x 1x 1x 23070x 23070x 23070x 23070x 23070x 23070x 23070x 23070x 23070x 23070x 23070x 23070x 23070x 23070x 1x 1x 11535x 11535x 11535x 1x 1x 11535x 11535x 11535x 11535x 11535x 11535x 11535x 11535x 11535x 11535x 11535x 11535x 11535x 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[];
}
|