All files / output zcl_abapgit_xml_output.clas.mjs

82.9% Statements 97/117
59.09% Branches 13/22
63.63% Functions 7/11
82.9% Lines 97/117

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 1171x 1x 1x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 1x 1x 3x 3x 3x 3x 4x 3x 3x 4x   4x 3x 3x 4x 4x                   4x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 1x 1x 3x     3x 3x 3x       3x 3x 3x 3x 3x 4x           4x 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 STATIC_SUPER = 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": " ", "parm_kind": "R", "type_name": "ObjectReferenceType"}}}};
  #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({new_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({new_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);
    abap.statements.getReference(fs_ls_stab_.get().value, 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};