From 62ad71d6d72e25e0df04df268dddc68e76c7eb6a Mon Sep 17 00:00:00 2001 From: gerzees Date: Wed, 3 Jun 2020 10:37:53 +0900 Subject: [PATCH] 1. Move method 2. addTerminator in QrCode 3. Feature envy. It calls only BitBuffer methods. --- java/src/main/java/io/nayuki/qrcodegen/BitBuffer.java | 8 ++++++++ java/src/main/java/io/nayuki/qrcodegen/QrCode.java | 8 +------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/java/src/main/java/io/nayuki/qrcodegen/BitBuffer.java b/java/src/main/java/io/nayuki/qrcodegen/BitBuffer.java index ccebe37..8b4254e 100644 --- a/java/src/main/java/io/nayuki/qrcodegen/BitBuffer.java +++ b/java/src/main/java/io/nayuki/qrcodegen/BitBuffer.java @@ -141,5 +141,13 @@ public final class BitBuffer implements Cloneable { dataCodewords[i >>> 3] |= getBit(i) << (7 - (i & 7)); return dataCodewords; } + + + // Add terminator and pad up to a byte if applicable + public void addTerminator(int dataCapacityBits) { + appendBits(0, Math.min(4, dataCapacityBits - bitLength())); + appendBits(0, (8 - bitLength() % 8) % 8); + assert bitLength() % 8 == 0; + } } diff --git a/java/src/main/java/io/nayuki/qrcodegen/QrCode.java b/java/src/main/java/io/nayuki/qrcodegen/QrCode.java index 7b85539..cebfbea 100644 --- a/java/src/main/java/io/nayuki/qrcodegen/QrCode.java +++ b/java/src/main/java/io/nayuki/qrcodegen/QrCode.java @@ -169,7 +169,7 @@ public final class QrCode { int dataCapacityBits = getNumDataCodewords(version, errorCorrectionLevel) * 8; assert bitBuffer.bitLength() <= dataCapacityBits; - addTerminator(bitBuffer, dataCapacityBits); + bitBuffer.addTerminator(dataCapacityBits); bitBuffer.addPad(dataCapacityBits); @@ -184,12 +184,6 @@ public final class QrCode { /*---- Private helper methods for encodeSegments ----*/ - // Add terminator and pad up to a byte if applicable - private static void addTerminator(BitBuffer bitBuffer, int dataCapacityBits) { - bitBuffer.appendBits(0, Math.min(4, dataCapacityBits - bitBuffer.bitLength())); - bitBuffer.appendBits(0, (8 - bitBuffer.bitLength() % 8) % 8); - assert bitBuffer.bitLength() % 8 == 0; - } // Concatenate all segments to create the data bit string private static BitBuffer segmentsToBitBuffer(List segments, int version) {