"use strict";
|
Object.defineProperty(exports, "__esModule", { value: true });
|
var BitArray_1 = require("../../../common/BitArray");
|
var BitArrayBuilder = /** @class */ (function () {
|
function BitArrayBuilder() {
|
}
|
BitArrayBuilder.buildBitArray = function (pairs) {
|
var charNumber = pairs.length * 2 - 1;
|
if (pairs[pairs.length - 1].getRightChar() == null) {
|
charNumber -= 1;
|
}
|
var size = 12 * charNumber;
|
var binary = new BitArray_1.default(size);
|
var accPos = 0;
|
var firstPair = pairs[0];
|
var firstValue = firstPair.getRightChar().getValue();
|
for (var i = 11; i >= 0; --i) {
|
if ((firstValue & (1 << i)) !== 0) {
|
binary.set(accPos);
|
}
|
accPos++;
|
}
|
for (var i = 1; i < pairs.length; ++i) {
|
var currentPair = pairs[i];
|
var leftValue = currentPair.getLeftChar().getValue();
|
for (var j = 11; j >= 0; --j) {
|
if ((leftValue & (1 << j)) !== 0) {
|
binary.set(accPos);
|
}
|
accPos++;
|
}
|
if (currentPair.getRightChar() !== null) {
|
var rightValue = currentPair.getRightChar().getValue();
|
for (var j = 11; j >= 0; --j) {
|
if ((rightValue & (1 << j)) !== 0) {
|
binary.set(accPos);
|
}
|
accPos++;
|
}
|
}
|
}
|
return binary;
|
};
|
return BitArrayBuilder;
|
}());
|
exports.default = BitArrayBuilder;
|