All files / src/abap/4_file_information abap_file_information.ts

100% Statements 57/57
100% Branches 17/17
100% Functions 8/8
100% Lines 57/57

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 571x 1x 1x 1x 1x 1x 1x 10657x 10657x 1x 1x 756x 756x 1x 1x 2404x 2404x 1x 1x 91x 91x 99x 89x 89x 99x 2x 2x 1x 1x 5353x 5353x 1x 1x 1200x 1200x 1172x 1148x 1148x 1172x 52x 52x 1x 1x 187x 187x 199x 171x 171x 199x 16x 16x 1x 1x 288x 288x 1x 1x
import {IABAPFileInformation, InfoClassImplementation, InfoClassDefinition, InfoInterfaceDefinition, InfoFormDefinition} from "./_abap_file_information";
import {ParsedFileInformation} from "./parsed_file_information";
 
export class ABAPFileInformation implements IABAPFileInformation {
  private readonly parsed: ParsedFileInformation;
 
  public constructor(parsed: ParsedFileInformation) {
    this.parsed = parsed;
  }
 
  public listClassImplementations(): readonly InfoClassImplementation[] {
    return this.parsed.implementations;
  }
 
  public listInterfaceDefinitions(): readonly InfoInterfaceDefinition[] {
    return this.parsed.interfaces;
  }
 
  public getInterfaceDefinitionByName(name: string): InfoInterfaceDefinition | undefined {
    const upper = name.toUpperCase();
    for (const i of this.listInterfaceDefinitions()) {
      if (i.identifier.getName().toUpperCase() === upper) {
        return i;
      }
    }
    return undefined;
  }
 
  public listClassDefinitions(): readonly InfoClassDefinition[] {
    return this.parsed.classes;
  }
 
  public getClassDefinitionByName(name: string): InfoClassDefinition | undefined {
    const upper = name.toUpperCase();
    for (const d of this.listClassDefinitions()) {
      if (d.identifier.getName().toUpperCase() === upper) {
        return d;
      }
    }
    return undefined;
  }
 
  public getClassImplementationByName(name: string): InfoClassImplementation | undefined {
    const upper = name.toUpperCase();
    for (const impl of this.listClassImplementations()) {
      if (impl.identifier.getName().toUpperCase() === upper) {
        return impl;
      }
    }
    return undefined;
  }
 
  public listFormDefinitions(): InfoFormDefinition[] {
    return this.parsed.forms;
  }
 
}