All files / output zcl_abapgit_xml_output.clas.mjs

50% Statements 58/116
66.66% Branches 6/9
45.45% Functions 5/11
50% Lines 58/116

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 1161x 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                       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                   1x                                                             1x           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_output.clas.abap
class zcl_abapgit_xml_output extends zcl_abapgit_xml {
  static INTERNAL_TYPE = 'CLAS';
  static INTERNAL_NAME = 'ZCL_ABAPGIT_XML_OUTPUT';
  static IMPLEMENTED_INTERFACES = ["ZIF_ABAPGIT_XML_OUTPUT"];
  static ATTRIBUTES = {"MI_RAW": {"type": () => {return new abap.types.ABAPObject({qualifiedName: "IF_IXML_ELEMENT", RTTIName: "\\INTERFACE=IF_IXML_ELEMENT"});}, "visibility": "I", "is_constant": " ", "is_class": " "}};
  static METHODS = {"BUILD_ASX_NODE": {"visibility": "I", "parameters": {"RI_ELEMENT": {"type": () => {return new abap.types.ABAPObject({qualifiedName: "IF_IXML_ELEMENT", RTTIName: "\\INTERFACE=IF_IXML_ELEMENT"});}, "is_optional": " "}}}};
  #mi_raw;
  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,
      "build_asx_node": this.#build_asx_node.bind(this),
    };
    this.#mi_raw = new abap.types.ABAPObject({qualifiedName: "IF_IXML_ELEMENT", RTTIName: "\\INTERFACE=IF_IXML_ELEMENT"});
    this.FRIENDS_ACCESS_INSTANCE["mi_raw"] = this.#mi_raw;
  }
  async constructor_(INPUT) {
    if (super.constructor_) { await super.constructor_(INPUT); }
    return this;
  }
  async #build_asx_node() {
    let ri_element = new abap.types.ABAPObject({qualifiedName: "IF_IXML_ELEMENT", RTTIName: "\\INTERFACE=IF_IXML_ELEMENT"});
    let li_attr = new abap.types.ABAPObject({qualifiedName: "IF_IXML_ATTRIBUTE", RTTIName: "\\INTERFACE=IF_IXML_ATTRIBUTE"});
    ri_element.set((await this.mi_xml_doc.get().if_ixml_document$create_element_ns({name: abap.CharacterFactory.get(4, 'abap'), prefix: abap.CharacterFactory.get(3, 'asx')})));
    li_attr.set((await this.mi_xml_doc.get().if_ixml_document$create_attribute_ns({name: abap.CharacterFactory.get(7, 'version')})));
    await li_attr.get().if_ixml_node$set_value({value: abap.CharacterFactory.get(3, '1.0')});
    await ri_element.get().if_ixml_element$set_attribute_node_ns({attr: li_attr});
    li_attr.set((await this.mi_xml_doc.get().if_ixml_document$create_attribute_ns({name: abap.CharacterFactory.get(3, 'asx'), prefix: abap.CharacterFactory.get(5, 'xmlns')})));
    await li_attr.get().if_ixml_node$set_value({value: abap.CharacterFactory.get(26, 'http://www.sap.com/abapxml')});
    await ri_element.get().if_ixml_element$set_attribute_node_ns({attr: li_attr});
    return ri_element;
  }
  async zif_abapgit_xml_output$add(INPUT) {
    let iv_name = INPUT?.iv_name;
    let ig_data = INPUT?.ig_data;
    let li_node = new abap.types.ABAPObject({qualifiedName: "IF_IXML_NODE", RTTIName: "\\INTERFACE=IF_IXML_NODE"});
    let li_doc = new abap.types.ABAPObject({qualifiedName: "IF_IXML_DOCUMENT", RTTIName: "\\INTERFACE=IF_IXML_DOCUMENT"});
    let lt_stab = 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_stab_ = 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);
    if (abap.compare.initial(ig_data)) {
      return;
    }
    fs_ls_stab_.assign(lt_stab.appendInitial());
    fs_ls_stab_.get().name.set(iv_name);
    fs_ls_stab_.get().value.assign(ig_data);
    li_doc.set((await (await abap.Classes['CL_IXML'].create()).get().if_ixml$create_document()));
    if (abap.Classes['KERNEL_CALL_TRANSFORMATION'] === undefined) throw new Error("CallTransformation, kernel class missing");
    await abap.Classes['KERNEL_CALL_TRANSFORMATION'].call({name: "id",resultXML: li_doc,options: {initial_components:abap.CharacterFactory.get(8, 'suppress')},source: (lt_stab)});
    li_node.set((await (await this.mi_xml_doc.get().if_ixml_document$get_root()).get().if_ixml_node$get_first_child()));
    if (abap.compare.initial(li_node) === false) {
      await (await (await (await this.mi_xml_doc.get().if_ixml_document$get_root()).get().if_ixml_node$get_first_child()).get().if_ixml_node$get_first_child()).get().if_ixml_node$append_child({new_child: (await (await (await (await li_doc.get().if_ixml_document$get_root()).get().if_ixml_node$get_first_child()).get().if_ixml_node$get_first_child()).get().if_ixml_node$get_first_child())});
    } else {
      await (await this.mi_xml_doc.get().if_ixml_document$get_root()).get().if_ixml_node$append_child({new_child: (await (await li_doc.get().if_ixml_document$get_root()).get().if_ixml_node$get_first_child())});
    }
  }
  async zif_abapgit_xml_output$add_xml(INPUT) {
    let iv_name = INPUT?.iv_name;
    let ii_xml = INPUT?.ii_xml;
    if (ii_xml?.getQualifiedName === undefined || ii_xml.getQualifiedName() !== "IF_IXML_ELEMENT") { ii_xml = undefined; }
    if (ii_xml === undefined) { ii_xml = new abap.types.ABAPObject({qualifiedName: "IF_IXML_ELEMENT", RTTIName: "\\INTERFACE=IF_IXML_ELEMENT"}).set(INPUT.ii_xml); }
    let li_element = new abap.types.ABAPObject({qualifiedName: "IF_IXML_ELEMENT", RTTIName: "\\INTERFACE=IF_IXML_ELEMENT"});
    li_element.set((await this.mi_xml_doc.get().if_ixml_document$create_element({name: iv_name})));
    await li_element.get().if_ixml_element$append_child({new_child: ii_xml});
    await (await (await (await this.mi_xml_doc.get().if_ixml_document$get_root()).get().if_ixml_node$get_first_child()).get().if_ixml_node$get_first_child()).get().if_ixml_node$append_child({new_child: li_element});
  }
  async zif_abapgit_xml_output$render(INPUT) {
    let rv_xml = new abap.types.String({qualifiedName: "STRING"});
    let iv_normalize = new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"});
    if (INPUT && INPUT.iv_normalize) {iv_normalize.set(INPUT.iv_normalize);}
    if (INPUT === undefined || INPUT.iv_normalize === undefined) {iv_normalize = abap.builtin.abap_true;}
    let is_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, {}, {});
    if (INPUT && INPUT.is_metadata) {is_metadata.set(INPUT.is_metadata);}
    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_ELEMENT", RTTIName: "\\INTERFACE=IF_IXML_ELEMENT"});
    if (abap.compare.initial(this.#mi_raw)) {
      await abap.statements.cast(li_abap, (await (await this.mi_xml_doc.get().if_ixml_document$get_root()).get().if_ixml_node$get_first_child()));
      await (await this.mi_xml_doc.get().if_ixml_document$get_root()).get().if_ixml_node$remove_child({child: li_abap});
      if (abap.compare.initial(li_abap)) {
        li_abap.set((await this.#build_asx_node()));
      }
    } else {
      li_abap.set(this.#mi_raw);
    }
    li_git.set((await this.mi_xml_doc.get().if_ixml_document$create_element({name: zcl_abapgit_xml_output.c_abapgit_tag})));
    await li_git.get().if_ixml_element$set_attribute({name: zcl_abapgit_xml_output.c_attr_version, value: abap.Classes['ZIF_ABAPGIT_VERSION'].zif_abapgit_version$c_xml_version});
    if (abap.compare.initial(is_metadata) === false) {
      await li_git.get().if_ixml_element$set_attribute({name: zcl_abapgit_xml_output.c_attr_serializer, value: is_metadata.get().class});
      await li_git.get().if_ixml_element$set_attribute({name: zcl_abapgit_xml_output.c_attr_serializer_version, value: is_metadata.get().version});
    }
    await li_git.get().if_ixml_element$append_child({new_child: li_abap});
    await (await this.mi_xml_doc.get().if_ixml_document$get_root()).get().if_ixml_node$append_child({new_child: li_git});
    rv_xml.set((await this.to_xml({iv_normalize: iv_normalize})));
    return rv_xml;
  }
  async zif_abapgit_xml_output$set_raw(INPUT) {
    let ii_raw = INPUT?.ii_raw;
    if (ii_raw?.getQualifiedName === undefined || ii_raw.getQualifiedName() !== "IF_IXML_ELEMENT") { ii_raw = undefined; }
    if (ii_raw === undefined) { ii_raw = new abap.types.ABAPObject({qualifiedName: "IF_IXML_ELEMENT", RTTIName: "\\INTERFACE=IF_IXML_ELEMENT"}).set(INPUT.ii_raw); }
    this.#mi_raw.set(ii_raw);
  }
}
abap.Classes['ZCL_ABAPGIT_XML_OUTPUT'] = zcl_abapgit_xml_output;
export {zcl_abapgit_xml_output};