All files / output zcl_abapgit_zlib_huffman.clas.mjs

100% Statements 123/123
80% Branches 16/20
42.85% Functions 6/14
100% Lines 123/123

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 1231x 1x 13x 13x 13x 13x 13x 13x 13x 13x 1x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 195x 195x 195x 13x 13x 1498x 1498x 719x 719x 779x 779x 779x 779x 779x 13x 13x 13x 13x 182x 182x 182x 182x 182x 182x 182x 13x 13x 13x 13x 1498x 1498x 1498x 13x 13x 13x 13x 1498x 1498x 1498x 1498x 1498x 1498x 719x 719x 779x 779x 779x 779x 779x 779x 779x 779x 779x 13x 13x 13x 13x 6829x 6829x 6829x 6829x 6829x 6829x 6829x 6829x 13x 1399x 1399x 1399x 1399x 1399x 1399x 1399x 1399x 13x 1x 1x 1x 1x 1x
const {cx_root} = await import("./cx_root.clas.mjs");
// zcl_abapgit_zlib_huffman.clas.abap
class zcl_abapgit_zlib_huffman {
  static INTERNAL_TYPE = 'CLAS';
  static INTERNAL_NAME = 'ZCL_ABAPGIT_ZLIB_HUFFMAN';
  static IMPLEMENTED_INTERFACES = [];
  static ATTRIBUTES = {"MT_COUNT": {"type": () => {return abap.types.TableFactory.construct(new abap.types.Integer({qualifiedName: "I"}), {"withHeader":false,"keyType":"DEFAULT","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":[]},"secondary":[]}, "");}, "visibility": "I", "is_constant": " ", "is_class": " "},
  "MT_SYMBOL": {"type": () => {return abap.types.TableFactory.construct(new abap.types.Integer({qualifiedName: "I"}), {"withHeader":false,"keyType":"DEFAULT","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":[]},"secondary":[]}, "");}, "visibility": "I", "is_constant": " ", "is_class": " "},
  "C_MAXBITS": {"type": () => {return new abap.types.Integer({qualifiedName: "I"});}, "visibility": "U", "is_constant": "X", "is_class": "X"}};
  static METHODS = {"CONSTRUCTOR": {"visibility": "U", "parameters": {"IT_LENGTHS": {"type": () => {return abap.types.TableFactory.construct(new abap.types.Integer({qualifiedName: "I"}), {"withHeader":false,"keyType":"DEFAULT","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":[]},"secondary":[]}, "zcl_abapgit_zlib_huffman=>ty_lengths");}, "is_optional": " "}}},
  "GET_COUNT": {"visibility": "U", "parameters": {"RV_VALUE": {"type": () => {return new abap.types.Integer({qualifiedName: "I"});}, "is_optional": " "}, "IV_INDEX": {"type": () => {return new abap.types.Integer({qualifiedName: "I"});}, "is_optional": " "}}},
  "GET_SYMBOL": {"visibility": "U", "parameters": {"RV_VALUE": {"type": () => {return new abap.types.Integer({qualifiedName: "I"});}, "is_optional": " "}, "IV_INDEX": {"type": () => {return new abap.types.Integer({qualifiedName: "I"});}, "is_optional": " "}}}};
  #mt_count;
  #mt_symbol;
  constructor() {
    this.me = new abap.types.ABAPObject();
    this.me.set(this);
    this.INTERNAL_ID = abap.internalIdCounter++;
    this.FRIENDS_ACCESS_INSTANCE = {
      "get_count": this.get_count.bind(this),
      "get_symbol": this.get_symbol.bind(this),
    };
    this.#mt_count = abap.types.TableFactory.construct(new abap.types.Integer({qualifiedName: "I"}), {"withHeader":false,"keyType":"DEFAULT","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":[]},"secondary":[]}, "");
    this.FRIENDS_ACCESS_INSTANCE["mt_count"] = this.#mt_count;
    this.#mt_symbol = abap.types.TableFactory.construct(new abap.types.Integer({qualifiedName: "I"}), {"withHeader":false,"keyType":"DEFAULT","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":[]},"secondary":[]}, "");
    this.FRIENDS_ACCESS_INSTANCE["mt_symbol"] = this.#mt_symbol;
    this.c_maxbits = zcl_abapgit_zlib_huffman.c_maxbits;
  }
  async constructor_(INPUT) {
    let it_lengths = INPUT?.it_lengths;
    if (it_lengths?.getQualifiedName === undefined || it_lengths.getQualifiedName() !== "ZCL_ABAPGIT_ZLIB_HUFFMAN=>TY_LENGTHS") { it_lengths = undefined; }
    if (it_lengths === undefined) { it_lengths = abap.types.TableFactory.construct(new abap.types.Integer({qualifiedName: "I"}), {"withHeader":false,"keyType":"DEFAULT","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":[]},"secondary":[]}, "zcl_abapgit_zlib_huffman=>ty_lengths").set(INPUT.it_lengths); }
    let lv_index = new abap.types.Integer({qualifiedName: "I"});
    let lt_offset = abap.types.TableFactory.construct(new abap.types.Integer({qualifiedName: "I"}), {"withHeader":false,"keyType":"USER","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":[]},"secondary":[]}, "");
    let lv_length = new abap.types.Integer({qualifiedName: "I"});
    let lv_prev = new abap.types.Integer({qualifiedName: "I"});
    let lv_count = new abap.types.Integer({qualifiedName: "I"});
    let fs_lv_offset_ = new abap.types.FieldSymbol(new abap.types.Integer({qualifiedName: "I"}));
    let fs_lv_symbol_ = new abap.types.FieldSymbol(new abap.types.Integer({qualifiedName: "I"}));
    let fs_lv_i_ = new abap.types.FieldSymbol(new abap.types.Integer({qualifiedName: "I"}));
    const indexBackup1 = abap.builtin.sy.get().index.get();
    const unique209 = zcl_abapgit_zlib_huffman.c_maxbits.get();
    for (let unique210 = 0; unique210 < unique209; unique210++) {
      abap.builtin.sy.get().index.set(unique210 + 1);
      abap.statements.append({source: abap.IntegerFactory.get(0), target: this.#mt_count});
    }
    abap.builtin.sy.get().index.set(indexBackup1);
    for await (const unique211 of abap.statements.loop(it_lengths)) {
      lv_index.set(unique211);
      if (abap.compare.eq(lv_index, abap.IntegerFactory.get(0))) {
        continue;
      }
      abap.statements.readTable(this.#mt_count,{index: lv_index,
        assigning: fs_lv_i_});
      abap.statements.assert(abap.compare.eq(abap.builtin.sy.get().subrc, abap.IntegerFactory.get(0)));
      fs_lv_i_.set(abap.operators.add(fs_lv_i_,abap.IntegerFactory.get(1)));
    }
    abap.statements.append({source: abap.IntegerFactory.get(0), target: lt_offset});
    const indexBackup2 = abap.builtin.sy.get().index.get();
    const unique212 = abap.operators.minus(zcl_abapgit_zlib_huffman.c_maxbits.get(),abap.IntegerFactory.get(1).get()).get();
    for (let unique213 = 0; unique213 < unique212; unique213++) {
      abap.builtin.sy.get().index.set(unique213 + 1);
      abap.statements.readTable(this.#mt_count,{index: abap.builtin.sy.get().index,
        into: lv_count});
      abap.statements.assert(abap.compare.eq(abap.builtin.sy.get().subrc, abap.IntegerFactory.get(0)));
      lv_prev.set(abap.operators.add(lv_prev,lv_count));
      abap.statements.append({source: lv_prev, target: lt_offset});
    }
    abap.builtin.sy.get().index.set(indexBackup2);
    const indexBackup3 = abap.builtin.sy.get().index.get();
    const unique214 = abap.builtin.lines({val: it_lengths}).get();
    for (let unique215 = 0; unique215 < unique214; unique215++) {
      abap.builtin.sy.get().index.set(unique215 + 1);
      abap.statements.append({source: abap.IntegerFactory.get(0), target: this.#mt_symbol});
    }
    abap.builtin.sy.get().index.set(indexBackup3);
    const indexBackup4 = abap.builtin.sy.get().index.get();
    const unique216 = abap.builtin.lines({val: it_lengths}).get();
    for (let unique217 = 0; unique217 < unique216; unique217++) {
      abap.builtin.sy.get().index.set(unique217 + 1);
      lv_index.set(abap.builtin.sy.get().index);
      abap.statements.readTable(it_lengths,{index: lv_index,
        into: lv_length});
      abap.statements.assert(abap.compare.eq(abap.builtin.sy.get().subrc, abap.IntegerFactory.get(0)));
      if (abap.compare.eq(lv_length, abap.IntegerFactory.get(0))) {
        continue;
      }
      abap.statements.readTable(lt_offset,{index: lv_length,
        assigning: fs_lv_offset_});
      abap.statements.assert(abap.compare.eq(abap.builtin.sy.get().subrc, abap.IntegerFactory.get(0)));
      abap.statements.readTable(this.#mt_symbol,{index: abap.operators.add(fs_lv_offset_,abap.IntegerFactory.get(1)),
        assigning: fs_lv_symbol_});
      abap.statements.assert(abap.compare.eq(abap.builtin.sy.get().subrc, abap.IntegerFactory.get(0)));
      fs_lv_symbol_.set(abap.operators.minus(lv_index,abap.IntegerFactory.get(1)));
      fs_lv_offset_.set(abap.operators.add(fs_lv_offset_,abap.IntegerFactory.get(1)));
    }
    abap.builtin.sy.get().index.set(indexBackup4);
    return this;
  }
  async get_count(INPUT) {
    let rv_value = new abap.types.Integer({qualifiedName: "I"});
    let iv_index = INPUT?.iv_index;
    if (iv_index?.getQualifiedName === undefined || iv_index.getQualifiedName() !== "I") { iv_index = undefined; }
    if (iv_index === undefined) { iv_index = new abap.types.Integer({qualifiedName: "I"}).set(INPUT.iv_index); }
    abap.statements.readTable(this.#mt_count,{index: iv_index,
      into: rv_value});
    return rv_value;
  }
  async get_symbol(INPUT) {
    let rv_value = new abap.types.Integer({qualifiedName: "I"});
    let iv_index = INPUT?.iv_index;
    if (iv_index?.getQualifiedName === undefined || iv_index.getQualifiedName() !== "I") { iv_index = undefined; }
    if (iv_index === undefined) { iv_index = new abap.types.Integer({qualifiedName: "I"}).set(INPUT.iv_index); }
    abap.statements.readTable(this.#mt_symbol,{index: iv_index,
      into: rv_value});
    return rv_value;
  }
}
abap.Classes['ZCL_ABAPGIT_ZLIB_HUFFMAN'] = zcl_abapgit_zlib_huffman;
zcl_abapgit_zlib_huffman.c_maxbits = new abap.types.Integer({qualifiedName: "I"});
zcl_abapgit_zlib_huffman.c_maxbits.set(15);
zcl_abapgit_zlib_huffman.ty_lengths = abap.types.TableFactory.construct(new abap.types.Integer({qualifiedName: "I"}), {"withHeader":false,"keyType":"DEFAULT","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":[]},"secondary":[]}, "zcl_abapgit_zlib_huffman=>ty_lengths");
export {zcl_abapgit_zlib_huffman};