All files / output zcl_abapgit_repo_status.clas.mjs

17% Statements 17/100
100% Branches 2/2
11.11% Functions 1/9
17% Lines 17/100

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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 1001x 1x 1x 1x 1x 1x 1x 1x 1x                       1x 1x             1x       1x     1x                                                                                                                           1x 1x 1x
await import("./zcl_abapgit_repo_status.clas.locals.mjs");
const {cx_root} = await import("./cx_root.clas.mjs");
// zcl_abapgit_repo_status.clas.abap
class zcl_abapgit_repo_status {
  static INTERNAL_TYPE = 'CLAS';
  static INTERNAL_NAME = 'ZCL_ABAPGIT_REPO_STATUS';
  static IMPLEMENTED_INTERFACES = [];
  static ATTRIBUTES = {};
  static METHODS = {"CALCULATE": {"visibility": "U", "parameters": {"RT_RESULTS": {"type": () => {return abap.types.TableFactory.construct(new abap.types.Structure({
  "obj_type": new abap.types.Character(4, {}),
  "obj_name": new abap.types.Character(40, {}),
  "inactive": new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"}),
  "path": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_DEFINITIONS=>TY_RESULT-PATH"}),
  "filename": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_DEFINITIONS=>TY_RESULT-FILENAME"}),
  "package": new abap.types.Character(30, {"qualifiedName":"DEVCLASS","ddicName":"DEVCLASS","description":"DEVCLASS"}),
  "match": new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"}),
  "lstate": new abap.types.Character(1, {"qualifiedName":"zif_abapgit_git_definitions=>ty_item_state"}),
  "rstate": new abap.types.Character(1, {"qualifiedName":"zif_abapgit_git_definitions=>ty_item_state"}),
  "packmove": new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"}),
  "srcsystem": new abap.types.Character(5, {}),
  "origlang": new abap.types.Character(1, {})}, "zif_abapgit_definitions=>ty_result", undefined, {}, {}), {"withHeader":false,"keyType":"DEFAULT","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":[]},"secondary":[{"name":"sec_key","type":"SORTED","isUnique":false,"keyFields":["OBJ_TYPE","OBJ_NAME"]}]}, "zif_abapgit_definitions=>ty_results_tt");}, "is_optional": " "}, "II_REPO": {"type": () => {return new abap.types.ABAPObject({qualifiedName: "ZIF_ABAPGIT_REPO", RTTIName: "\\INTERFACE=ZIF_ABAPGIT_REPO"});}, "is_optional": " "}, "II_LOG": {"type": () => {return new abap.types.ABAPObject({qualifiedName: "ZIF_ABAPGIT_LOG", RTTIName: "\\INTERFACE=ZIF_ABAPGIT_LOG"});}, "is_optional": " "}, "II_OBJ_FILTER": {"type": () => {return new abap.types.ABAPObject({qualifiedName: "ZIF_ABAPGIT_OBJECT_FILTER", RTTIName: "\\INTERFACE=ZIF_ABAPGIT_OBJECT_FILTER"});}, "is_optional": " "}}}};
  constructor() {
    this.me = new abap.types.ABAPObject();
    this.me.set(this);
    this.INTERNAL_ID = abap.internalIdCounter++;
    this.FRIENDS_ACCESS_INSTANCE = {
    };
  }
  async constructor_(INPUT) {
    if (super.constructor_) { await super.constructor_(INPUT); }
    return this;
  }
  async calculate(INPUT) {
    return zcl_abapgit_repo_status.calculate(INPUT);
  }
  static async calculate(INPUT) {
    let rt_results = abap.types.TableFactory.construct(new abap.types.Structure({
    "obj_type": new abap.types.Character(4, {}),
    "obj_name": new abap.types.Character(40, {}),
    "inactive": new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"}),
    "path": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_DEFINITIONS=>TY_RESULT-PATH"}),
    "filename": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_DEFINITIONS=>TY_RESULT-FILENAME"}),
    "package": new abap.types.Character(30, {"qualifiedName":"DEVCLASS","ddicName":"DEVCLASS","description":"DEVCLASS"}),
    "match": new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"}),
    "lstate": new abap.types.Character(1, {"qualifiedName":"zif_abapgit_git_definitions=>ty_item_state"}),
    "rstate": new abap.types.Character(1, {"qualifiedName":"zif_abapgit_git_definitions=>ty_item_state"}),
    "packmove": new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"}),
    "srcsystem": new abap.types.Character(5, {}),
    "origlang": new abap.types.Character(1, {})}, "zif_abapgit_definitions=>ty_result", undefined, {}, {}), {"withHeader":false,"keyType":"DEFAULT","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":[]},"secondary":[{"name":"sec_key","type":"SORTED","isUnique":false,"keyFields":["OBJ_TYPE","OBJ_NAME"]}]}, "zif_abapgit_definitions=>ty_results_tt");
    let ii_repo = INPUT?.ii_repo;
    if (ii_repo?.getQualifiedName === undefined || ii_repo.getQualifiedName() !== "ZIF_ABAPGIT_REPO") { ii_repo = undefined; }
    if (ii_repo === undefined) { ii_repo = new abap.types.ABAPObject({qualifiedName: "ZIF_ABAPGIT_REPO", RTTIName: "\\INTERFACE=ZIF_ABAPGIT_REPO"}).set(INPUT.ii_repo); }
    let ii_log = new abap.types.ABAPObject({qualifiedName: "ZIF_ABAPGIT_LOG", RTTIName: "\\INTERFACE=ZIF_ABAPGIT_LOG"});
    if (INPUT && INPUT.ii_log) {ii_log.set(INPUT.ii_log);}
    let ii_obj_filter = new abap.types.ABAPObject({qualifiedName: "ZIF_ABAPGIT_OBJECT_FILTER", RTTIName: "\\INTERFACE=ZIF_ABAPGIT_OBJECT_FILTER"});
    if (INPUT && INPUT.ii_obj_filter) {ii_obj_filter.set(INPUT.ii_obj_filter);}
    let lt_local = abap.types.TableFactory.construct(new abap.types.Structure({
    "file": new abap.types.Structure({
    "path": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_GIT_DEFINITIONS=>TY_FILE_SIGNATURE-PATH"}),
    "filename": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_GIT_DEFINITIONS=>TY_FILE_SIGNATURE-FILENAME"}),
    "sha1": new abap.types.Character(40, {"qualifiedName":"zif_abapgit_git_definitions=>ty_sha1"}),
    "data": new abap.types.XString({qualifiedName: "ZIF_ABAPGIT_GIT_DEFINITIONS=>TY_FILE-DATA"})}, "zif_abapgit_git_definitions=>ty_file", undefined, {}, {}),
    "item": new abap.types.Structure({
    "obj_type": new abap.types.Character(4, {}),
    "obj_name": new abap.types.Character(40, {}),
    "devclass": new abap.types.Character(30, {"qualifiedName":"DEVCLASS","ddicName":"DEVCLASS","description":"DEVCLASS"}),
    "srcsystem": new abap.types.Character(5, {}),
    "origlang": new abap.types.Character(1, {}),
    "inactive": new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"}),
    "abap_language_version": new abap.types.Character(1, {"qualifiedName":"zif_abapgit_aff_types_v1=>ty_abap_language_version"})}, "zif_abapgit_definitions=>ty_item", undefined, {}, {})}, "zif_abapgit_definitions=>ty_file_item", undefined, {}, {}), {"withHeader":false,"keyType":"DEFAULT","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":[]},"secondary":[]}, "zif_abapgit_definitions=>ty_files_item_tt");
    let lt_remote = abap.types.TableFactory.construct(new abap.types.Structure({
    "path": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_GIT_DEFINITIONS=>TY_FILE_SIGNATURE-PATH"}),
    "filename": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_GIT_DEFINITIONS=>TY_FILE_SIGNATURE-FILENAME"}),
    "sha1": new abap.types.Character(40, {"qualifiedName":"zif_abapgit_git_definitions=>ty_sha1"}),
    "data": new abap.types.XString({qualifiedName: "ZIF_ABAPGIT_GIT_DEFINITIONS=>TY_FILE-DATA"})}, "zif_abapgit_git_definitions=>ty_file", undefined, {}, {}), {"withHeader":false,"keyType":"DEFAULT","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":[]},"secondary":[{"name":"file_path","type":"SORTED","isUnique":true,"keyFields":["PATH","FILENAME"]},{"name":"file","type":"SORTED","isUnique":false,"keyFields":["FILENAME"]}]}, "zif_abapgit_git_definitions=>ty_files_tt");
    let li_exit = new abap.types.ABAPObject({qualifiedName: "ZIF_ABAPGIT_EXIT", RTTIName: "\\INTERFACE=ZIF_ABAPGIT_EXIT"});
    let li_instance = new abap.types.ABAPObject({qualifiedName: "ZIF_ABAPGIT_STATUS_CALC", RTTIName: "\\INTERFACE=ZIF_ABAPGIT_STATUS_CALC"});
    let lo_consistency_checks = new abap.types.ABAPObject({qualifiedName: "LCL_STATUS_CONSISTENCY_CHECKS", RTTIName: "\\CLASS-POOL=ZCL_ABAPGIT_REPO_STATUS\\CLASS=LCL_STATUS_CONSISTENCY_CHECKS"});
    if (abap.compare.initial(ii_obj_filter)) {
      lt_local.set((await ii_repo.get().zif_abapgit_repo$get_files_local({ii_log: ii_log})));
    } else {
      lt_local.set((await ii_repo.get().zif_abapgit_repo$get_files_local_filtered({ii_log: ii_log, ii_obj_filter: ii_obj_filter})));
    }
    if (abap.compare.le(abap.builtin.lines({val: lt_local}), abap.IntegerFactory.get(2)) && abap.compare.initial(ii_obj_filter)) {
      await ii_repo.get().zif_abapgit_repo$find_remote_dot_abapgit();
    }
    lt_remote.set((await ii_repo.get().zif_abapgit_repo$get_files_remote({ii_obj_filter: ii_obj_filter, iv_ignore_files: abap.builtin.abap_true})));
    li_exit.set((await abap.Classes['ZCL_ABAPGIT_EXIT'].get_instance()));
    await li_exit.get().zif_abapgit_exit$pre_calculate_repo_status({is_repo_meta: ii_repo.get().zif_abapgit_repo$ms_data, ct_local: lt_local, ct_remote: lt_remote});
    li_instance.set((await abap.Classes['ZCL_ABAPGIT_STATUS_CALC'].get_instance({iv_root_package: (await ii_repo.get().zif_abapgit_repo$get_package()), io_dot: (await ii_repo.get().zif_abapgit_repo$get_dot_abapgit())})));
    rt_results.set((await li_instance.get().zif_abapgit_status_calc$calculate_status({it_local: lt_local, it_remote: lt_remote, it_cur_state: (await (await ii_repo.get().zif_abapgit_repo$checksums()).get().zif_abapgit_repo_checksums$get_checksums_per_file())})));
    if (abap.compare.initial(ii_log) === false) {
      lo_consistency_checks.set(await (new abap.Classes['CLAS-ZCL_ABAPGIT_REPO_STATUS-LCL_STATUS_CONSISTENCY_CHECKS']()).constructor_({iv_root_package: (await ii_repo.get().zif_abapgit_repo$get_package()), io_dot: (await ii_repo.get().zif_abapgit_repo$get_dot_abapgit())}));
      await ii_log.get().zif_abapgit_log$merge_with({ii_log: (await lo_consistency_checks.get().run_checks({it_results: rt_results}))});
    }
    return rt_results;
  }
}
abap.Classes['ZCL_ABAPGIT_REPO_STATUS'] = zcl_abapgit_repo_status;
export {zcl_abapgit_repo_status};