diff --git a/java/io/nayuki/qrcodegen/QrSegmentAdvanced.java b/java/io/nayuki/qrcodegen/QrSegmentAdvanced.java index f7e6969..b68575e 100644 --- a/java/io/nayuki/qrcodegen/QrSegmentAdvanced.java +++ b/java/io/nayuki/qrcodegen/QrSegmentAdvanced.java @@ -32,6 +32,12 @@ import java.util.Objects; import io.nayuki.qrcodegen.QrSegment.Mode; +/** + * Splits text into optimal segments and encodes kanji segments. + * Provides static functions only; not instantiable. + * @see QrSegment + * @see QrCode + */ public final class QrSegmentAdvanced { /*---- Optimal list of segments encoder ----*/ @@ -40,18 +46,19 @@ public final class QrSegmentAdvanced { * Returns a list of zero or more segments to represent the specified Unicode text string. * The resulting list optimally minimizes the total encoded bit length, subjected to the constraints * in the specified {error correction level, minimum version number, maximum version number}. - *
This function can utilize all four text encoding modes: numeric, alphanumeric, byte, and kanji. - * This can be viewed as a significantly more sophisticated and slower replacement for - * {@link QrSegment#makeSegments(String)}, but requiring more input parameters in a way - * that overlaps with {@link QrCode#encodeSegments(List,QrCode.Ecc,int,int,int,boolean)}.
- * @param text the text to be encoded, which can be any Unicode string - * @param ecl the error correction level to use - * @param minVersion the minimum allowed version of the QR symbol (at least 1) - * @param maxVersion the maximum allowed version of the QR symbol (at most 40) - * @return a new mutable list of segments containing the text, minimizing the bit length with respect to the constraints - * @throws NullPointerException if the data or error correction level is {@code null} - * @throws IllegalArgumentException if 1 ≤ minVersion ≤ maxVersion ≤ 40 is violated, - * or if the data is too long to fit in a QR Code at maxVersion at the ECL + *This function can utilize all four text encoding modes: numeric, alphanumeric, byte (UTF-8), + * and kanji. This can be considered as a sophisticated but slower replacement for {@link + * QrSegment#makeSegments(String)}. This requires more input parameters because it searches a + * range of versions, like {@link QrCode#encodeSegments(List,QrCode.Ecc,int,int,int,boolean)}.
+ * @param text the text to be encoded (not {@code null}), which can be any Unicode string + * @param ecl the error correction level to use (not {@code null}) + * @param minVersion the minimum allowed version of the QR Code symbol (at least 1) + * @param maxVersion the maximum allowed version of the QR Code symbol (at most 40) + * @return a new mutable list (not {@code null}) of segments (not {@code null}) + * containing the text, minimizing the bit length with respect to the constraints + * @throws NullPointerException if the text or error correction level is {@code null} + * @throws IllegalArgumentException if 1 ≤ minVersion ≤ maxVersion ≤ 40 + * is violated, or if the data is too long to fit in a QR Code at maxVersion at ECL */ public static ListNote that broadly speaking, the set of encodable characters are {kanji used in Japan,
- * hiragana, katakana, East Asian punctuation, full-width ASCII, Greek, Cyrillic}.
- * Examples of non-encodable characters include {normal ASCII, half-width katakana, more extensive Chinese hanzi}.
- * @param text the text to be encoded, which must fall in the kanji mode subset of characters
- * @return a segment containing the data
+ * Returns a segment representing the specified text string encoded in kanji mode.
+ * Broadly speaking, the set of encodable characters are {kanji used in Japan,
+ * hiragana, katakana, East Asian punctuation, full-width ASCII, Greek, Cyrillic}.
+ * Examples of non-encodable characters include {ordinary ASCII, half-width katakana,
+ * more extensive Chinese hanzi}.
+ * @param text the text (not {@code null}), with only certain characters allowed
+ * @return a segment (not {@code null}) containing the text
* @throws NullPointerException if the string is {@code null}
- * @throws IllegalArgumentException if the string contains non-kanji-mode characters
+ * @throws IllegalArgumentException if the string contains non-encodable characters
* @see #isEncodableAsKanji(String)
*/
public static QrSegment makeKanji(String text) {
@@ -251,12 +260,13 @@ public final class QrSegmentAdvanced {
/**
- * Tests whether the specified text string can be encoded as a segment in kanji mode.
- *
Note that broadly speaking, the set of encodable characters are {kanji used in Japan,
- * hiragana, katakana, East Asian punctuation, full-width ASCII, Greek, Cyrillic}.
- * Examples of non-encodable characters include {normal ASCII, half-width katakana, more extensive Chinese hanzi}.
- * @param text the string to test for encodability
- * @return {@code true} if and only if the string can be encoded in kanji mode
+ * Tests whether the specified string can be encoded as a segment in kanji mode.
+ * Broadly speaking, the set of encodable characters are {kanji used in Japan,
+ * hiragana, katakana, East Asian punctuation, full-width ASCII, Greek, Cyrillic}.
+ * Examples of non-encodable characters include {ordinary ASCII, half-width katakana,
+ * more extensive Chinese hanzi}.
+ * @param text the string to test for encodability (not {@code null})
+ * @return {@code true} iff each character is in the kanji mode character set
* @throws NullPointerException if the string is {@code null}
* @see #makeKanji(String)
*/