* Added support for multiple character-ECIs
* - Changed from ArrayList<Byte> to ByteArrayOutputStream
- Added blank lines
* Improved performance for the general case (without ECI)
Quote of Martin's proposed changes to the spec:
The algorithm can be salvaged to be at least sound by making those changes, e.g. by adding to step e):
"1) If the next character cannot be encoded as X12, switch to ASCII mode and go to step b)."
(and renumbering the following sub-steps). Similarly step f):
"1) If the next character cannot be encoded as EDIFACT, switch to ASCII mode and go to step b)."
* - added code to suppress the terminator if the capacity of the version is less than 4 bit
- added test case
* - Removed code in MinimalEncoder that added Mode.TERMINATOR (is taken care of in Encoder.terminateBits)
- Removed the corresponding test case
* Updated test cases
* Improved documentation
* Changed documentation to not use an example with an unsupported character encoding
* Improved wording of comment
* - Simplified code
- Added space after comma in several places
* Added support for more character sets supported by CharacterSetECI
* Syntactic enhancements
* Changed instantiation of generic types to diamond style
* Updated documentation of the QR_COMPACT hint to explain the impact of setting the CHARACTER_SET hint .
* Changed whitespace
* Removed comment
* Fixed typos in comments
* Added text cases for KANJI and Shift_JS encoding
* Improved comments on Japanese language test cases
* Fixed bug
* Compacted code slightly
* Whitespace changes
* Deepend indent
* - added code to suppress the terminator if the capacity of the version is less than 4 bit
- added test case
* - Removed code in MinimalEncoder that added Mode.TERMINATOR (is taken care of in Encoder.terminateBits)
- Removed the corresponding test case
* Updated test cases
* Improved documentation
* Changed documentation to not use an example with an unsupported character encoding
* Improved wording of comment
* - Simplified code
- Added space after comma in several places
* Added support for more character sets supported by CharacterSetECI
* Syntactic enhancements
* Changed instantiation of generic types to diamond style
* Updated documentation of the QR_COMPACT hint to explain the impact of setting the CHARACTER_SET hint .
* Changed whitespace
* Removed comment
* Fixed typos in comments
* Added text cases for KANJI and Shift_JS encoding
* Improved comments on Japanese language test cases
* - added code to suppress the terminator if the capacity of the version is less than 4 bit
- added test case
* - Removed code in MinimalEncoder that added Mode.TERMINATOR (is taken care of in Encoder.terminateBits)
- Removed the corresponding test case
* Updated test cases
* Improved documentation
* Changed documentation to not use an example with an unsupported character encoding
* Improved wording of comment
* - Simplified code
- Added space after comma in several places
* Added experimental version of QR-Code compaction which can be activated via EncodeHintType.QR_COMPACT
* - Changed algorithm from recursive divide and conquer to iterative Dijkstra
- Performed the requested modifications.
* Added better debug output and better documententation of the algorithm
* - Added missing error handling in case of a failing assert
- Fixed typo in the documentation
* Fixed bug that the minimal encoder would fail with an internal error if the string to encode contained only characters from ISO-8859-1 and on or more character that is not defined in any of the ISO-8859 characters sets.
* Added unit tests
* - indented class and method comments
- fixed code indententation
- added vertical spacing in statement lists to separate locical blocks
- added comments to document some numeric constants
- commented out debug logging
- made class ResultNode final and all but the methods called by the
class Encoder private.
* - Fixed indentation and line length
- Improved comments
* Fixed line length
* Improved comments
* - Whitespace and comment style changes
- Replaced string concatentation with StringBuilder.append()
- Replaced Vector with ArrayList
- Made members that are ony modified in the constructor final
- Made other minor changes
* - Made more members final
- replaced assert by throwing an IllegalStateException
* Changed internal data representation to be based on java.util.LinkedList
* Removed uneccessary spaces and comments
* Improved the debug output (now produces a compacted graph)
* - Added code to exclude not supported ECIs
- Fixed regression that bits were incorrectly computed
* - Fixed regression that bits were wrongly computed
- Improved compaction
- added a commented proposal for unit test that makes use of the decoder to validate the encoded bits
* Removed useless comparisons
* Removed commented code
* Optimization: added code to cache the value of LinkedList.size().
* Added more test cases
* - Added support for EncodeTypeHint.CHARACTER_SET
- Added support to encode in all ISO-8859 character sets available on the platform
- Removed code that handles failing asserts
* - Replaced string switch case with HashMap lookup
- Reintroduced asserts
* - Replaced <code> with {@code}
- Changed indentation in comment
- Simplified code
* Improved documentation
* Added comment about decoding compatibility with zxing.
* - Made MinimalEncoder responsible of ensuring that the bits fit in the returned version.
- Removed asserts that throw NPE in case of falure.
* Restricted encoder to use only encodings defined in CharacterSetECI
* Improved clarity and readability of the algorithm and of the datastrutures used.
- Minimizing algorithm is based on immutable edges
- ResultList now contains exaclty one ResultNode per mode and possibly several as before
* Changed unit tests (forgotten in previous push)
* - Added missing error handling in case of a failing assert
- Fixed typo in the documentation
* Fixed bug that the minimal encoder would fail with an internal error if the string to encode contained only characters from ISO-8859-1 and on or more character that is not defined in any of the ISO-8859 characters sets.
* Fix decoding of FNC1 in AztecCode. Flush buffer to make sure FNC1 is output in the correct
position in the stream.
* Simplify. Flush buffers outside switch, as it happens for all non-error cases anyway.
* Add option to output raw bitstream from CommandLineRunner.
Useful for debugging barcodes. Same as the web decoder.
* Use StringBuilder. Fix indentation.
* Introduce hint to force specific code set for Code-128 encoding
* Address review comments
* Make character check more readable; address review comments
* Address review comments
Co-authored-by: Gero Schwäricke <gero@schwaericke.email>