All files / output zcl_abapgit_json_handler.clas.locals.mjs

89.62% Statements 95/106
92.59% Branches 25/27
53.84% Functions 7/13
89.62% Lines 95/106

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 100 101 102 103 104 105 1061x 1x 2x 2x 2x 2x 2x   2x 2x     2x 2x   2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 32x 32x 32x 32x               32x 32x 32x 32x 32x 32x 32x 32x 32x 32x 2x 2x 32x 30x 30x 30x 30x 30x 2x 2x 2x 30x 32x 1x 1x 1x 32x 10x 10x 10x 17x 17x 32x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x
const {cx_root} = await import("./cx_root.clas.mjs");
// zcl_abapgit_json_handler.clas.locals_imp.abap
class lcl_aff_filter {
  static INTERNAL_TYPE = 'CLAS';
  static INTERNAL_NAME = 'CLAS-ZCL_ABAPGIT_JSON_HANDLER-LCL_AFF_FILTER';
  static IMPLEMENTED_INTERFACES = ["ZIF_ABAPGIT_AJSON_FILTER"];
  static ATTRIBUTES = {"MT_SKIP_PATHS": {"type": () => {return abap.types.TableFactory.construct(new abap.types.Structure({
  "path": new abap.types.String({qualifiedName: "LCL_AFF_FILTER=>TY_PATH_VALUE_PAIR-PATH"}),
  "value": new abap.types.String({qualifiedName: "LCL_AFF_FILTER=>TY_PATH_VALUE_PAIR-VALUE"})}, "lcl_aff_filter=>ty_path_value_pair", undefined, {}, {}), {"withHeader":false,"keyType":"USER","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":["PATH"]},"secondary":[]}, "lcl_aff_filter=>ty_skip_paths");}, "visibility": "I", "is_constant": " ", "is_class": " "},
  "ZIF_ABAPGIT_AJSON_FILTER~VISIT_TYPE": {"type": () => {return new abap.types.Structure({
  "value": new abap.types.Integer({qualifiedName: "ZIF_ABAPGIT_AJSON_FILTER=>TY_VISIT_TYPE"}),
  "open": new abap.types.Integer({qualifiedName: "ZIF_ABAPGIT_AJSON_FILTER=>TY_VISIT_TYPE"}),
  "close": new abap.types.Integer({qualifiedName: "ZIF_ABAPGIT_AJSON_FILTER=>TY_VISIT_TYPE"})}, undefined, undefined, {}, {});}, "visibility": "U", "is_constant": "X", "is_class": "X"}};
  static METHODS = {"CONSTRUCTOR": {"visibility": "U", "parameters": {"IV_SKIP_PATHS": {"type": () => {return abap.types.TableFactory.construct(new abap.types.Structure({
  "path": new abap.types.String({qualifiedName: "LCL_AFF_FILTER=>TY_PATH_VALUE_PAIR-PATH"}),
  "value": new abap.types.String({qualifiedName: "LCL_AFF_FILTER=>TY_PATH_VALUE_PAIR-VALUE"})}, "lcl_aff_filter=>ty_path_value_pair", undefined, {}, {}), {"withHeader":false,"keyType":"USER","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":["PATH"]},"secondary":[]}, "lcl_aff_filter=>ty_skip_paths");}, "is_optional": " "}}}};
  #mt_skip_paths;
  constructor() {
    this.me = new abap.types.ABAPObject();
    this.me.set(this);
    this.INTERNAL_ID = abap.internalIdCounter++;
    this.FRIENDS_ACCESS_INSTANCE = {
    };
    this.#mt_skip_paths = abap.types.TableFactory.construct(new abap.types.Structure({
    "path": new abap.types.String({qualifiedName: "LCL_AFF_FILTER=>TY_PATH_VALUE_PAIR-PATH"}),
    "value": new abap.types.String({qualifiedName: "LCL_AFF_FILTER=>TY_PATH_VALUE_PAIR-VALUE"})}, "lcl_aff_filter=>ty_path_value_pair", undefined, {}, {}), {"withHeader":false,"keyType":"USER","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":["PATH"]},"secondary":[]}, "lcl_aff_filter=>ty_skip_paths");
    this.FRIENDS_ACCESS_INSTANCE["mt_skip_paths"] = this.#mt_skip_paths;
    this.zif_abapgit_ajson_filter$visit_type = abap.Classes['ZIF_ABAPGIT_AJSON_FILTER'].zif_abapgit_ajson_filter$visit_type;
  }
  async zif_abapgit_ajson_filter$keep_node(INPUT) {
    let rv_keep = new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"});
    let is_node = INPUT?.is_node;
    if (is_node?.getQualifiedName === undefined || is_node.getQualifiedName() !== "ZIF_ABAPGIT_AJSON_TYPES=>TY_NODE") { is_node = undefined; }
    if (is_node === undefined) { is_node = new abap.types.Structure({
    "path": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_AJSON_TYPES=>TY_NODE-PATH"}),
    "name": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_AJSON_TYPES=>TY_NODE-NAME"}),
    "type": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_AJSON_TYPES=>TY_NODE_TYPE"}),
    "value": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_AJSON_TYPES=>TY_NODE-VALUE"}),
    "index": new abap.types.Integer({qualifiedName: "ZIF_ABAPGIT_AJSON_TYPES=>TY_NODE-INDEX"}),
    "order": new abap.types.Integer({qualifiedName: "ZIF_ABAPGIT_AJSON_TYPES=>TY_NODE-ORDER"}),
    "children": new abap.types.Integer({qualifiedName: "ZIF_ABAPGIT_AJSON_TYPES=>TY_NODE-CHILDREN"})}, "zif_abapgit_ajson_types=>ty_node", undefined, {}, {}).set(INPUT.is_node); }
    let iv_visit = new abap.types.Integer({qualifiedName: "ZIF_ABAPGIT_AJSON_FILTER=>TY_VISIT_TYPE"});
    if (INPUT && INPUT.iv_visit) {iv_visit.set(INPUT.iv_visit);}
    if (INPUT === undefined || INPUT.iv_visit === undefined) {iv_visit = abap.Classes['ZIF_ABAPGIT_AJSON_FILTER'].zif_abapgit_ajson_filter$visit_type.get().value;}
    let lv_path = new abap.types.String({qualifiedName: "STRING"});
    lv_path.set(abap.operators.concat(is_node.get().path,is_node.get().name));
    abap.statements.readTable(this.#mt_skip_paths,{withKey: (i) => {return abap.compare.eq(i.path, lv_path) && abap.compare.eq(i.value, is_node.get().value);},
      withKeyValue: [{key: (i) => {return i.path}, value: lv_path},{key: (i) => {return i.value}, value: is_node.get().value}],
      usesTableLine: false,
      withKeySimple: {"path": lv_path,"value": is_node.get().value}});
    if (abap.compare.eq(abap.builtin.boolc(abap.compare.eq(abap.builtin.sy.get().subrc, abap.IntegerFactory.get(0))), abap.builtin.abap_true) && abap.compare.eq(iv_visit, abap.Classes['ZIF_ABAPGIT_AJSON_FILTER'].zif_abapgit_ajson_filter$visit_type.get().value)) {
      rv_keep.set(abap.builtin.abap_false);
      return rv_keep;
    } else {
      abap.statements.readTable(this.#mt_skip_paths,{withKey: (i) => {return abap.compare.eq(i.path, lv_path);},
        withKeyValue: [{key: (i) => {return i.path}, value: lv_path}],
        usesTableLine: false,
        withKeySimple: {"path": lv_path}});
      if (abap.compare.eq(abap.builtin.boolc(abap.compare.eq(abap.builtin.sy.get().subrc, abap.IntegerFactory.get(0))), abap.builtin.abap_true) && abap.compare.eq(iv_visit, abap.Classes['ZIF_ABAPGIT_AJSON_FILTER'].zif_abapgit_ajson_filter$visit_type.get().value)) {
        rv_keep.set(abap.builtin.abap_true);
        return rv_keep;
      }
    }
    if (abap.compare.eq(is_node.get().type, abap.CharacterFactory.get(4, 'bool')) && abap.compare.eq(is_node.get().value, abap.CharacterFactory.get(5, 'false')) && abap.compare.eq(iv_visit, abap.Classes['ZIF_ABAPGIT_AJSON_FILTER'].zif_abapgit_ajson_filter$visit_type.get().value)) {
      rv_keep.set(abap.builtin.abap_false);
      return rv_keep;
    }
    if (!((abap.compare.eq(iv_visit, abap.Classes['ZIF_ABAPGIT_AJSON_FILTER'].zif_abapgit_ajson_filter$visit_type.get().value) && abap.compare.initial(is_node.get().value) === false) || (abap.compare.ne(iv_visit, abap.Classes['ZIF_ABAPGIT_AJSON_FILTER'].zif_abapgit_ajson_filter$visit_type.get().value) && abap.compare.gt(is_node.get().children, abap.IntegerFactory.get(0))))) {
      rv_keep.set(abap.builtin.abap_false);
      return rv_keep;
    }
    rv_keep.set(abap.builtin.abap_true);
    return rv_keep;
  }
  async constructor_(INPUT) {
    let iv_skip_paths = abap.types.TableFactory.construct(new abap.types.Structure({
    "path": new abap.types.String({qualifiedName: "LCL_AFF_FILTER=>TY_PATH_VALUE_PAIR-PATH"}),
    "value": new abap.types.String({qualifiedName: "LCL_AFF_FILTER=>TY_PATH_VALUE_PAIR-VALUE"})}, "lcl_aff_filter=>ty_path_value_pair", undefined, {}, {}), {"withHeader":false,"keyType":"USER","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":["PATH"]},"secondary":[]}, "lcl_aff_filter=>ty_skip_paths");
    if (INPUT && INPUT.iv_skip_paths) {iv_skip_paths.set(INPUT.iv_skip_paths);}
    let lo_abap_language_pair = new abap.types.Structure({
    "path": new abap.types.String({qualifiedName: "LCL_AFF_FILTER=>TY_PATH_VALUE_PAIR-PATH"}),
    "value": new abap.types.String({qualifiedName: "LCL_AFF_FILTER=>TY_PATH_VALUE_PAIR-VALUE"})}, "lcl_aff_filter=>ty_path_value_pair", undefined, {}, {});
    lo_abap_language_pair.get().path.set(new abap.types.String().set(`/header/abapLanguageVersion`));
    lo_abap_language_pair.get().value.set(abap.CharacterFactory.get(8, 'standard'));
    abap.statements.append({source: lo_abap_language_pair, target: this.#mt_skip_paths});
    if (abap.compare.initial(iv_skip_paths) === false) {
      abap.statements.append({source: iv_skip_paths, lines: true, target: this.#mt_skip_paths});
    }
    return this;
  }
}
abap.Classes['CLAS-ZCL_ABAPGIT_JSON_HANDLER-LCL_AFF_FILTER'] = lcl_aff_filter;
lcl_aff_filter.zif_abapgit_ajson_filter$visit_type = new abap.types.Structure({
"value": new abap.types.Integer({qualifiedName: "ZIF_ABAPGIT_AJSON_FILTER=>TY_VISIT_TYPE"}),
"open": new abap.types.Integer({qualifiedName: "ZIF_ABAPGIT_AJSON_FILTER=>TY_VISIT_TYPE"}),
"close": new abap.types.Integer({qualifiedName: "ZIF_ABAPGIT_AJSON_FILTER=>TY_VISIT_TYPE"})}, undefined, undefined, {}, {});
lcl_aff_filter.zif_abapgit_ajson_filter$visit_type.get().value.set(0);
lcl_aff_filter.zif_abapgit_ajson_filter$visit_type.get().open.set(1);
lcl_aff_filter.zif_abapgit_ajson_filter$visit_type.get().close.set(2);
lcl_aff_filter.ty_path_value_pair = new abap.types.Structure({
"path": new abap.types.String({qualifiedName: "LCL_AFF_FILTER=>TY_PATH_VALUE_PAIR-PATH"}),
"value": new abap.types.String({qualifiedName: "LCL_AFF_FILTER=>TY_PATH_VALUE_PAIR-VALUE"})}, "lcl_aff_filter=>ty_path_value_pair", undefined, {}, {});
lcl_aff_filter.ty_skip_paths = abap.types.TableFactory.construct(new abap.types.Structure({
"path": new abap.types.String({qualifiedName: "LCL_AFF_FILTER=>TY_PATH_VALUE_PAIR-PATH"}),
"value": new abap.types.String({qualifiedName: "LCL_AFF_FILTER=>TY_PATH_VALUE_PAIR-VALUE"})}, "lcl_aff_filter=>ty_path_value_pair", undefined, {}, {}), {"withHeader":false,"keyType":"USER","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":["PATH"]},"secondary":[]}, "lcl_aff_filter=>ty_skip_paths");
export {lcl_aff_filter};