extracted and documented constants that are used inside each algorithm iteration
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/fileupload/trunk@1458210 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/commons/fileupload/util/mime/MimeUtility.java b/src/main/java/org/apache/commons/fileupload/util/mime/MimeUtility.java
index 82fe820..dbbd4f1 100644
--- a/src/main/java/org/apache/commons/fileupload/util/mime/MimeUtility.java
+++ b/src/main/java/org/apache/commons/fileupload/util/mime/MimeUtility.java
@@ -31,11 +31,31 @@
public final class MimeUtility {
/**
+ * The {@code US-ASCII} charset identifier constant.
+ */
+ private static final String US_ASCII_CHARSET = "US-ASCII";
+
+ /**
+ * The marker to indicate text is encoded with BASE64 algorithm.
+ */
+ private static final String BASE64_ENCODING_MARKER = "B";
+
+ /**
+ * The marker to indicate text is encoded with QuotedPrintable algorithm.
+ */
+ private static final String QUOTEDPRINTABLE_ENCODING_MARKER = "Q";
+
+ /**
* If the text contains any encoded tokens, those tokens will be marked with "=?".
*/
private static final String ENCODED_TOKEN_MARKER = "=?";
/**
+ * If the text contains any encoded tokens, those tokens will terminate with "=?".
+ */
+ private static final String ENCODED_TOKEN_FINISHER = "?=";
+
+ /**
* The linear whitespace chars sequence.
*/
private static final String LINEAR_WHITESPACE = " \t\r\n";
@@ -203,7 +223,7 @@
String encoding = word.substring(charsetPos + 1, encodingPos);
// and finally the encoded text.
- int encodedTextPos = word.indexOf("?=", encodingPos + 1);
+ int encodedTextPos = word.indexOf(ENCODED_TOKEN_FINISHER, encodingPos + 1);
if (encodedTextPos == -1) {
throw new ParseException("Missing encoded text in RFC 2047 encoded-word: " + word);
}
@@ -219,12 +239,12 @@
// the decoder writes directly to an output stream.
ByteArrayOutputStream out = new ByteArrayOutputStream(encodedText.length());
- byte[] encodedData = encodedText.getBytes("US-ASCII");
+ byte[] encodedData = encodedText.getBytes(US_ASCII_CHARSET);
// Base64 encoded?
- if (encoding.equals("B")) {
+ if (encoding.equals(BASE64_ENCODING_MARKER)) {
Base64Decoder.decode(encodedData, 0, encodedData.length, out);
- } else if (encoding.equals("Q")) { // maybe quoted printable.
+ } else if (encoding.equals(QUOTEDPRINTABLE_ENCODING_MARKER)) { // maybe quoted printable.
QuotedPrintableDecoder.decode(encodedData, 0, encodedData.length, out);
} else {
throw new UnsupportedEncodingException("Unknown RFC 2047 encoding: " + encoding);