All files / output zcl_abapgit_adt_link.clas.mjs

13.1% Statements 27/206
100% Branches 2/2
3.03% Functions 1/33
13.1% Lines 27/206

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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 2061x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 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_adt_link.clas.abap
class zcl_abapgit_adt_link {
  static INTERNAL_TYPE = 'CLAS';
  static INTERNAL_NAME = 'ZCL_ABAPGIT_ADT_LINK';
  static IMPLEMENTED_INTERFACES = [];
  static ATTRIBUTES = {};
  static METHODS = {"GET_ADT_OBJECTS_AND_NAMES": {"visibility": "I", "parameters": {"IV_OBJ_NAME": {"type": () => {return new abap.types.Character(40, {});}, "is_optional": " "}, "IV_OBJ_TYPE": {"type": () => {return new abap.types.Character(4, {});}, "is_optional": " "}, "EO_ADT_URI_MAPPER": {"type": () => {return new abap.types.ABAPObject({qualifiedName: undefined, RTTIName: undefined});}, "is_optional": " "}, "EO_ADT_OBJECTREF": {"type": () => {return new abap.types.ABAPObject({qualifiedName: undefined, RTTIName: undefined});}, "is_optional": " "}, "EV_PROGRAM": {"type": () => {return new abap.types.Character(40, {"qualifiedName":"PROGNAME","ddicName":"PROGNAME","description":"PROGNAME"});}, "is_optional": " "}, "EV_INCLUDE": {"type": () => {return new abap.types.Character(40, {"qualifiedName":"PROGNAME","ddicName":"PROGNAME","description":"PROGNAME"});}, "is_optional": " "}}},
  "IS_ADT_JUMP_POSSIBLE": {"visibility": "I", "parameters": {"RV_IS_ADT_JUMP_POSSIBLE": {"type": () => {return new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"});}, "is_optional": " "}, "IO_OBJECT": {"type": () => {return (() => { throw new Error("Void type: cl_wb_object") })();}, "is_optional": " "}, "IO_ADT": {"type": () => {return new abap.types.ABAPObject({qualifiedName: undefined, RTTIName: undefined});}, "is_optional": " "}}},
  "GENERATE": {"visibility": "O", "parameters": {"RV_RESULT": {"type": () => {return new abap.types.String({qualifiedName: "STRING"});}, "is_optional": " "}, "IV_OBJ_NAME": {"type": () => {return new abap.types.Character(40, {});}, "is_optional": " "}, "IV_OBJ_TYPE": {"type": () => {return new abap.types.Character(4, {});}, "is_optional": " "}, "IV_SUB_OBJ_NAME": {"type": () => {return new abap.types.Character(40, {});}, "is_optional": " "}, "IV_LINE_NUMBER": {"type": () => {return new abap.types.Integer({qualifiedName: "I"});}, "is_optional": " "}}},
  "JUMP": {"visibility": "U", "parameters": {"IV_OBJ_NAME": {"type": () => {return new abap.types.Character(40, {});}, "is_optional": " "}, "IV_OBJ_TYPE": {"type": () => {return new abap.types.Character(4, {});}, "is_optional": " "}, "IV_SUB_OBJ_NAME": {"type": () => {return new abap.types.Character(40, {});}, "is_optional": " "}, "IV_LINE_NUMBER": {"type": () => {return new abap.types.Integer({qualifiedName: "I"});}, "is_optional": " "}}},
  "LINK_TRANSPORT": {"visibility": "U", "parameters": {"RV_LINK": {"type": () => {return new abap.types.String({qualifiedName: "STRING"});}, "is_optional": " "}, "IV_TRANSPORT": {"type": () => {return new abap.types.Character(20, {"qualifiedName":"TRKORR","ddicName":"TRKORR","description":"TRKORR"});}, "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 link_transport(INPUT) {
    return zcl_abapgit_adt_link.link_transport(INPUT);
  }
  static async link_transport(INPUT) {
    let rv_link = new abap.types.String({qualifiedName: "STRING"});
    let iv_transport = INPUT?.iv_transport;
    if (iv_transport?.getQualifiedName === undefined || iv_transport.getQualifiedName() !== "TRKORR") { iv_transport = undefined; }
    if (iv_transport === undefined) { iv_transport = new abap.types.Character(20, {"qualifiedName":"TRKORR","ddicName":"TRKORR","description":"TRKORR"}).set(INPUT.iv_transport); }
    rv_link.set(new abap.types.String().set(`adt://${abap.templateFormatting(abap.builtin.sy.get().sysid)}/sap/bc/adt/cts/transportrequests/${abap.templateFormatting(iv_transport)}`));
    return rv_link;
  }
  async generate(INPUT) {
    return zcl_abapgit_adt_link.generate(INPUT);
  }
  static async generate(INPUT) {
    let rv_result = new abap.types.String({qualifiedName: "STRING"});
    let iv_obj_name = INPUT?.iv_obj_name;
    if (iv_obj_name === undefined) { iv_obj_name = new abap.types.Character(40, {}).set(INPUT.iv_obj_name); }
    let iv_obj_type = INPUT?.iv_obj_type;
    if (iv_obj_type === undefined) { iv_obj_type = new abap.types.Character(4, {}).set(INPUT.iv_obj_type); }
    let iv_sub_obj_name = new abap.types.Character(40, {});
    if (INPUT && INPUT.iv_sub_obj_name) {iv_sub_obj_name.set(INPUT.iv_sub_obj_name);}
    let iv_line_number = new abap.types.Integer({qualifiedName: "I"});
    if (INPUT && INPUT.iv_line_number) {iv_line_number.set(INPUT.iv_line_number);}
    let lv_adt_link = new abap.types.String({qualifiedName: "STRING"});
    let lo_adt_uri_mapper = new abap.types.ABAPObject({qualifiedName: undefined, RTTIName: undefined});
    let lo_adt_objref = new abap.types.ABAPObject({qualifiedName: undefined, RTTIName: undefined});
    let lo_adt_sub_objref = new abap.types.ABAPObject({qualifiedName: undefined, RTTIName: undefined});
    let lv_program = new abap.types.Character(40, {"qualifiedName":"PROGNAME","ddicName":"PROGNAME","description":"PROGNAME"});
    let lv_include = new abap.types.Character(40, {"qualifiedName":"PROGNAME","ddicName":"PROGNAME","description":"PROGNAME"});
    let fs_lv_uri_ = new abap.types.FieldSymbol(new abap.types.String({qualifiedName: "STRING"}));
    await this.get_adt_objects_and_names({iv_obj_name: iv_obj_name, iv_obj_type: iv_obj_type, eo_adt_uri_mapper: lo_adt_uri_mapper, eo_adt_objectref: lo_adt_objref, ev_program: lv_program, ev_include: lv_include});
    try {
      if (abap.compare.initial(iv_sub_obj_name) === false) {
        if ((abap.compare.ne(lv_program, iv_obj_name) && abap.compare.initial(lv_include)) || (abap.compare.eq(lv_program, lv_include) && abap.compare.initial(iv_sub_obj_name) === false)) {
          lv_include.set(iv_sub_obj_name);
        }
        lo_adt_sub_objref.set(await abap.dynamicCallLookup(lo_adt_uri_mapper.get(), "if_adt_uri_mapper$map_include_to_objref")({program: lv_program,include: lv_include,line: iv_line_number,line_offset: abap.IntegerFactory.get(0),end_line: iv_line_number,end_offset: abap.IntegerFactory.get(1)}));
        if (abap.compare.initial(lo_adt_sub_objref) === false) {
          lo_adt_objref.set(lo_adt_sub_objref);
        }
      }
      abap.statements.assign({target: fs_lv_uri_, dynamicName: 'LO_ADT_OBJREF->REF_DATA-URI', dynamicSource: (() => {
          try { return lo_adt_objref; } catch {}
          try { return this.lo_adt_objref; } catch {}
      })()});
      abap.statements.assert(abap.compare.eq(abap.builtin.sy.get().subrc, abap.IntegerFactory.get(0)));
      abap.statements.concatenate({source: [abap.CharacterFactory.get(6, 'adt://'), abap.builtin.sy.get().sysid, fs_lv_uri_], target: lv_adt_link});
      rv_result.set(lv_adt_link);
    } catch (e) {
      if ((abap.Classes['CX_ROOT'] && e instanceof abap.Classes['CX_ROOT'])) {
        await abap.Classes['ZCX_ABAPGIT_EXCEPTION'].raise({iv_text: abap.CharacterFactory.get(14, 'ADT Jump Error')});
      } else {
        throw e;
      }
    }
    return rv_result;
  }
  async get_adt_objects_and_names(INPUT) {
    return zcl_abapgit_adt_link.get_adt_objects_and_names(INPUT);
  }
  static async get_adt_objects_and_names(INPUT) {
    let iv_obj_name = INPUT?.iv_obj_name;
    if (iv_obj_name === undefined) { iv_obj_name = new abap.types.Character(40, {}).set(INPUT.iv_obj_name); }
    let iv_obj_type = INPUT?.iv_obj_type;
    if (iv_obj_type === undefined) { iv_obj_type = new abap.types.Character(4, {}).set(INPUT.iv_obj_type); }
    let eo_adt_uri_mapper = INPUT?.eo_adt_uri_mapper || new abap.types.ABAPObject({qualifiedName: undefined, RTTIName: undefined});
    let eo_adt_objectref = INPUT?.eo_adt_objectref || new abap.types.ABAPObject({qualifiedName: undefined, RTTIName: undefined});
    let ev_program = INPUT?.ev_program || new abap.types.Character(40, {"qualifiedName":"PROGNAME","ddicName":"PROGNAME","description":"PROGNAME"});
    let ev_include = INPUT?.ev_include || new abap.types.Character(40, {"qualifiedName":"PROGNAME","ddicName":"PROGNAME","description":"PROGNAME"});
    let lv_obj_type = new abap.types.Character(4, {"qualifiedName":"TROBJTYPE","ddicName":"TROBJTYPE","description":"TROBJTYPE"});
    let lv_obj_name = (() => { throw new Error("Void type: TROBJ_NAME") })();
    let lo_object = (() => { throw new Error("Void type: cl_wb_object") })();
    let lo_adt = new abap.types.ABAPObject({qualifiedName: undefined, RTTIName: undefined});
    let fs_lv_uri_ = new abap.types.FieldSymbol(new abap.types.String({qualifiedName: "STRING"}));
    lv_obj_name.set(iv_obj_name);
    lv_obj_type.set(iv_obj_type);
    try {
      try {
        lo_object.set(await abap.Classes['CL_WB_OBJECT'].create_from_transport_key({p_object: lv_obj_type, p_obj_name: lv_obj_name}));
        abap.builtin.sy.get().subrc.set(0);
      } catch (e) {
        if (e.classic) {
            switch (e.classic.toUpperCase()) {
            default: abap.builtin.sy.get().subrc.set(1); break;
              }
          } else {
              throw e;
          }
        }
        if (abap.compare.ne(abap.builtin.sy.get().subrc, abap.IntegerFactory.get(0))) {
          await abap.Classes['ZCX_ABAPGIT_EXCEPTION'].raise({iv_text: abap.CharacterFactory.get(14, 'ADT Jump Error')});
        }
        if (abap.Classes['CL_ADT_TOOLS_CORE_FACTORY'.trimEnd()] === undefined) { if (abap.Classes['CX_SY_DYN_CALL_ILLEGAL_CLASS'.trimEnd()] === undefined) { throw "CX_SY_DYN_CALL_ILLEGAL_CLASS not found"; } else {throw new abap.Classes['CX_SY_DYN_CALL_ILLEGAL_CLASS'.trimEnd()](); } }
        lo_adt.set(await abap.dynamicCallLookup(abap.Classes['CL_ADT_TOOLS_CORE_FACTORY'.trimEnd()], "get_instance")());
        if (abap.compare.eq((await this.is_adt_jump_possible({io_object: lo_object, io_adt: lo_adt})), abap.builtin.abap_false)) {
          await abap.Classes['ZCX_ABAPGIT_EXCEPTION'].raise({iv_text: abap.CharacterFactory.get(14, 'ADT Jump Error')});
        }
        eo_adt_uri_mapper.set(await abap.dynamicCallLookup(lo_adt.get(), "if_adt_tools_core_factory$get_uri_mapper")());
        eo_adt_objectref.set(await abap.dynamicCallLookup(eo_adt_uri_mapper.get(), "if_adt_uri_mapper$map_wb_object_to_objref")({wb_object: lo_object}));
        abap.statements.assign({target: fs_lv_uri_, dynamicName: 'EO_ADT_OBJECTREF->REF_DATA-URI', dynamicSource: (() => {
            try { return eo_adt_objectref; } catch {}
            try { return this.eo_adt_objectref; } catch {}
        })()});
        abap.statements.assert(abap.compare.eq(abap.builtin.sy.get().subrc, abap.IntegerFactory.get(0)));
        await abap.dynamicCallLookup(eo_adt_uri_mapper.get(), "if_adt_uri_mapper$map_objref_to_include")({uri: fs_lv_uri_,program: ev_program,include: ev_include});
      } catch (e) {
        if ((abap.Classes['CX_ROOT'] && e instanceof abap.Classes['CX_ROOT'])) {
          await abap.Classes['ZCX_ABAPGIT_EXCEPTION'].raise({iv_text: abap.CharacterFactory.get(14, 'ADT Jump Error')});
        } else {
          throw e;
        }
      }
    }
    async is_adt_jump_possible(INPUT) {
      return zcl_abapgit_adt_link.is_adt_jump_possible(INPUT);
    }
    static async is_adt_jump_possible(INPUT) {
      let rv_is_adt_jump_possible = new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"});
      let io_object = INPUT?.io_object;
      if (io_object === undefined) { io_object = (() => { throw new Error("Void type: cl_wb_object") })().set(INPUT.io_object); }
      let io_adt = INPUT?.io_adt;
      if (io_adt === undefined) { io_adt = new abap.types.ABAPObject({qualifiedName: undefined, RTTIName: undefined}).set(INPUT.io_adt); }
      let lo_wb_request = (() => { throw new Error("Void type: cl_wb_request") })();
      let lo_adt_uri_mapper_vit = new abap.types.ABAPObject({qualifiedName: undefined, RTTIName: undefined});
      let lv_vit_wb_request = new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"});
      try {
        lo_wb_request.set(await abap.Classes['CL_WB_REQUEST'].create_from_object_ref({p_wb_object: io_object}));
        abap.builtin.sy.get().subrc.set(0);
      } catch (e) {
        if (e.classic) {
            switch (e.classic.toUpperCase()) {
            case "ILLEGAL_OPERATION": abap.builtin.sy.get().subrc.set(1); break;
            case "CANCELLED": abap.builtin.sy.get().subrc.set(2); break;
            default: abap.builtin.sy.get().subrc.set(3); break;
              }
          } else {
              throw e;
          }
        }
        if (abap.compare.ne(abap.builtin.sy.get().subrc, abap.IntegerFactory.get(0))) {
          await abap.Classes['ZCX_ABAPGIT_EXCEPTION'].raise({iv_text: abap.CharacterFactory.get(14, 'ADT Jump Error')});
        }
        try {
          lo_adt_uri_mapper_vit.set(await abap.dynamicCallLookup(io_adt.get(), "if_adt_tools_core_factory$get_uri_mapper_vit")());
          lv_vit_wb_request.set(await abap.dynamicCallLookup(lo_adt_uri_mapper_vit.get(), "if_adt_uri_mapper_vit$is_vit_wb_request")({wb_request: lo_wb_request}));
          rv_is_adt_jump_possible.set(abap.builtin.boolc(!abap.compare.eq(lv_vit_wb_request, abap.builtin.abap_true)));
        } catch (e) {
          if ((abap.Classes['CX_ROOT'] && e instanceof abap.Classes['CX_ROOT'])) {
            await abap.Classes['ZCX_ABAPGIT_EXCEPTION'].raise({iv_text: abap.CharacterFactory.get(14, 'ADT Jump Error')});
          } else {
            throw e;
          }
        }
        return rv_is_adt_jump_possible;
      }
      async jump(INPUT) {
        return zcl_abapgit_adt_link.jump(INPUT);
      }
      static async jump(INPUT) {
        let iv_obj_name = INPUT?.iv_obj_name;
        if (iv_obj_name === undefined) { iv_obj_name = new abap.types.Character(40, {}).set(INPUT.iv_obj_name); }
        let iv_obj_type = INPUT?.iv_obj_type;
        if (iv_obj_type === undefined) { iv_obj_type = new abap.types.Character(4, {}).set(INPUT.iv_obj_type); }
        let iv_sub_obj_name = new abap.types.Character(40, {});
        if (INPUT && INPUT.iv_sub_obj_name) {iv_sub_obj_name.set(INPUT.iv_sub_obj_name);}
        let iv_line_number = new abap.types.Integer({qualifiedName: "I"});
        if (INPUT && INPUT.iv_line_number) {iv_line_number.set(INPUT.iv_line_number);}
        let lv_adt_link = new abap.types.String({qualifiedName: "STRING"});
        try {
          lv_adt_link.set((await this.generate({iv_obj_name: iv_obj_name, iv_obj_type: iv_obj_type, iv_sub_obj_name: iv_sub_obj_name, iv_line_number: iv_line_number})));
          await (await abap.Classes['ZCL_ABAPGIT_UI_FACTORY'].get_frontend_services()).get().zif_abapgit_frontend_services$execute({iv_document: lv_adt_link});
        } catch (e) {
          if ((abap.Classes['CX_ROOT'] && e instanceof abap.Classes['CX_ROOT'])) {
            await abap.Classes['ZCX_ABAPGIT_EXCEPTION'].raise({iv_text: abap.CharacterFactory.get(14, 'ADT Jump Error')});
          } else {
            throw e;
          }
        }
      }
    }
    abap.Classes['ZCL_ABAPGIT_ADT_LINK'] = zcl_abapgit_adt_link;
export {zcl_abapgit_adt_link};