Author: simonetripodi
Date: Tue Mar 19 10:21:19 2013
New Revision: 1458210

URL: http://svn.apache.org/r1458210
Log:
extracted and documented constants that are used inside each algorithm iteration

Modified:
    
commons/proper/fileupload/trunk/src/main/java/org/apache/commons/fileupload/util/mime/MimeUtility.java

Modified: 
commons/proper/fileupload/trunk/src/main/java/org/apache/commons/fileupload/util/mime/MimeUtility.java
URL: 
http://svn.apache.org/viewvc/commons/proper/fileupload/trunk/src/main/java/org/apache/commons/fileupload/util/mime/MimeUtility.java?rev=1458210&r1=1458209&r2=1458210&view=diff
==============================================================================
--- 
commons/proper/fileupload/trunk/src/main/java/org/apache/commons/fileupload/util/mime/MimeUtility.java
 (original)
+++ 
commons/proper/fileupload/trunk/src/main/java/org/apache/commons/fileupload/util/mime/MimeUtility.java
 Tue Mar 19 10:21:19 2013
@@ -31,11 +31,31 @@ import java.util.Map;
 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 @@ public final class MimeUtility {
         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 @@ public final class MimeUtility {
             // 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);


Reply via email to