All files / output zcl_abapgit_xml_input.clas.mjs

82.14% Statements 69/84
80% Branches 8/10
66.66% Functions 6/9
82.14% Lines 69/84

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 841x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 5x 5x 5x 5x 5x 5x 5x 5x 5x 1x 5x 5x 5x 5x 5x 5x 5x 5x 1x 5x 5x 5x 5x 5x 5x 5x 1x 1x 1x 1x 1x 1x 1x 1x         1x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x                       12x 1x 1x 1x
const {zcl_abapgit_xml} = await import("./zcl_abapgit_xml.clas.mjs");
const {cx_root} = await import("./cx_root.clas.mjs");
// zcl_abapgit_xml_input.clas.abap
class zcl_abapgit_xml_input extends zcl_abapgit_xml {
  static INTERNAL_TYPE = 'CLAS';
  static INTERNAL_NAME = 'ZCL_ABAPGIT_XML_INPUT';
  static IMPLEMENTED_INTERFACES = ["ZIF_ABAPGIT_XML_INPUT"];
  static ATTRIBUTES = {};
  static METHODS = {"FIX_XML": {"visibility": "I", "parameters": {}},
  "CONSTRUCTOR": {"visibility": "U", "parameters": {"IV_XML": {"type": () => {return new abap.types.Character();}, "is_optional": " "}, "IV_FILENAME": {"type": () => {return new abap.types.String({qualifiedName: "STRING"});}, "is_optional": " "}}}};
  constructor() {
    const sup = super();
    this.me = new abap.types.ABAPObject();
    this.me.set(this);
    this.INTERNAL_ID = abap.internalIdCounter++;
    this.FRIENDS_ACCESS_INSTANCE = {
      "SUPER": sup.FRIENDS_ACCESS_INSTANCE,
      "fix_xml": this.#fix_xml.bind(this),
    };
  }
  async constructor_(INPUT) {
    let iv_xml = INPUT?.iv_xml;
    let iv_filename = new abap.types.String({qualifiedName: "STRING"});
    if (INPUT && INPUT.iv_filename) {iv_filename.set(INPUT.iv_filename);}
    await super.constructor_({iv_filename: iv_filename});
    await this.parse({iv_xml: iv_xml});
    await this.#fix_xml();
    return this;
  }
  async #fix_xml() {
    let li_git = new abap.types.ABAPObject({qualifiedName: "IF_IXML_ELEMENT", RTTIName: "\\INTERFACE=IF_IXML_ELEMENT"});
    let li_abap = new abap.types.ABAPObject({qualifiedName: "IF_IXML_NODE", RTTIName: "\\INTERFACE=IF_IXML_NODE"});
    await abap.statements.cast(li_git, (await this.mi_xml_doc.get().if_ixml_document$find_from_name_ns({depth: abap.IntegerFactory.get(0), name: zcl_abapgit_xml_input.c_abapgit_tag})));
    li_abap.set((await li_git.get().if_ixml_element$get_first_child()));
    await (await this.mi_xml_doc.get().if_ixml_document$get_root()).get().if_ixml_node$remove_child({child: li_git});
    await (await this.mi_xml_doc.get().if_ixml_document$get_root()).get().if_ixml_node$append_child({new_child: li_abap});
  }
  async zif_abapgit_xml_input$get_metadata() {
    let rs_metadata = new abap.types.Structure({
    "class": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_DEFINITIONS=>TY_METADATA-CLASS"}),
    "version": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_DEFINITIONS=>TY_METADATA-VERSION"})}, "zif_abapgit_definitions=>ty_metadata", undefined, {}, {});
    rs_metadata.set(this.ms_metadata);
    return rs_metadata;
  }
  async zif_abapgit_xml_input$get_raw() {
    let ri_raw = new abap.types.ABAPObject({qualifiedName: "IF_IXML_DOCUMENT", RTTIName: "\\INTERFACE=IF_IXML_DOCUMENT"});
    ri_raw.set(this.mi_xml_doc);
    return ri_raw;
  }
  async zif_abapgit_xml_input$read(INPUT) {
    let iv_name = INPUT?.iv_name;
    let cg_data = new abap.types.Character(4);
    if (INPUT && INPUT.cg_data) {cg_data = INPUT.cg_data;}
    let lx_error = new abap.types.ABAPObject({qualifiedName: "CX_TRANSFORMATION_ERROR", RTTIName: "\\CLASS=CX_TRANSFORMATION_ERROR"});
    let lt_rtab = abap.types.TableFactory.construct(new abap.types.Structure({
    "name": new abap.types.String({qualifiedName: "NAME"}),
    "value": new abap.types.DataReference(new abap.types.Character(4))}, "abap_trans_srcbind", undefined, {}, {}), {"withHeader":false,"keyType":"DEFAULT","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":[]},"secondary":[]}, "abap_trans_srcbind_tab");
    let fs_ls_rtab_ = new abap.types.FieldSymbol(new abap.types.Structure({
    "name": new abap.types.String({qualifiedName: "NAME"}),
    "value": new abap.types.DataReference(new abap.types.Character(4))}, "abap_trans_srcbind", undefined, {}, {}));
    abap.statements.assert(abap.compare.initial(iv_name) === false);
    cg_data.clear();
    fs_ls_rtab_.assign(lt_rtab.appendInitial());
    fs_ls_rtab_.get().name.set(iv_name);
    fs_ls_rtab_.get().value.assign(cg_data);
    try {
      if (abap.Classes['KERNEL_CALL_TRANSFORMATION'] === undefined) throw new Error("CallTransformation, kernel class missing");
      await abap.Classes['KERNEL_CALL_TRANSFORMATION'].call({name: "id",sourceXML: this.mi_xml_doc,options: {value_handling:abap.CharacterFactory.get(16, 'accept_data_loss')},result: (lt_rtab)});
    } catch (e) {
      if ((abap.Classes['CX_TRANSFORMATION_ERROR'] && e instanceof abap.Classes['CX_TRANSFORMATION_ERROR'])) {
        lx_error.set(e);
        if (abap.compare.initial(this.mv_filename)) {
          await abap.Classes['ZCX_ABAPGIT_EXCEPTION'].raise({iv_text: (await lx_error.get().if_message$get_text())});
        } else {
          await abap.Classes['ZCX_ABAPGIT_EXCEPTION'].raise({iv_text: new abap.types.String().set(`File ${abap.templateFormatting(this.mv_filename)}: ${abap.templateFormatting((await lx_error.get().if_message$get_text()))}`)});
        }
      } else {
        throw e;
      }
    }
  }
}
abap.Classes['ZCL_ABAPGIT_XML_INPUT'] = zcl_abapgit_xml_input;
export {zcl_abapgit_xml_input};