Removed "parseAllFields" parameters from the logic. Users that do not want to parse all of them will provide a custom FieldParser (Proposed refactoring for MIME4J-116)


git-svn-id: https://svn.apache.org/repos/asf/james/mime4j/branches/mime4j-116-refactoring@1138767 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dom/src/main/java/org/apache/james/mime4j/message/DefaultMessageBuilder.java b/dom/src/main/java/org/apache/james/mime4j/message/DefaultMessageBuilder.java
index fa27ac6..215e1a3 100644
--- a/dom/src/main/java/org/apache/james/mime4j/message/DefaultMessageBuilder.java
+++ b/dom/src/main/java/org/apache/james/mime4j/message/DefaultMessageBuilder.java
@@ -298,7 +298,7 @@
             FieldParser<? extends ParsedField> fp = fieldParser != null ? fieldParser : 
                 strict ? DefaultFieldParser.getParser() : LenientFieldParser.getParser();
             MutableBodyDescriptorFactory bdf = bodyDescFactory != null ? bodyDescFactory :
-                new MinimalBodyDescriptorFactory(fp, true);
+                new MinimalBodyDescriptorFactory(fp);
             BodyFactory bf = bodyFactory != null ? bodyFactory : new BasicBodyFactory();
             MimeStreamParser parser = new MimeStreamParser(cfg, mon, bdf);
             // EntityBuilder expect the parser will send ParserFields for the well known fields
diff --git a/dom/src/main/java/org/apache/james/mime4j/message/MaximalBodyDescriptor.java b/dom/src/main/java/org/apache/james/mime4j/message/MaximalBodyDescriptor.java
index a2c5ccd..3cc45ab 100644
--- a/dom/src/main/java/org/apache/james/mime4j/message/MaximalBodyDescriptor.java
+++ b/dom/src/main/java/org/apache/james/mime4j/message/MaximalBodyDescriptor.java
@@ -61,16 +61,16 @@
     }
     
     protected MaximalBodyDescriptor(final BodyDescriptor parent) {
-        this(parent, null, true, null);
+        this(parent, null, null);
     }
 
-    public MaximalBodyDescriptor(final BodyDescriptor parent, final FieldParser<?> fieldParser, final boolean parseAllFields, final DecodeMonitor monitor) {
-        super(parent, fieldParser, parseAllFields, monitor);
+    public MaximalBodyDescriptor(final BodyDescriptor parent, final FieldParser<?> fieldParser, final DecodeMonitor monitor) {
+        super(parent, fieldParser, monitor);
     }
 
     @Override
     public MutableBodyDescriptor newChild() {
-        return new MaximalBodyDescriptor(this, getFieldParser(), getParseAllFields(), getDecodeMonitor());
+        return new MaximalBodyDescriptor(this, getFieldParser(), getDecodeMonitor());
     }
 
     @Override
diff --git a/dom/src/main/java/org/apache/james/mime4j/message/MaximalBodyDescriptorFactory.java b/dom/src/main/java/org/apache/james/mime4j/message/MaximalBodyDescriptorFactory.java
index f2a4d5e..1be58d8 100644
--- a/dom/src/main/java/org/apache/james/mime4j/message/MaximalBodyDescriptorFactory.java
+++ b/dom/src/main/java/org/apache/james/mime4j/message/MaximalBodyDescriptorFactory.java
@@ -27,20 +27,18 @@
 public class MaximalBodyDescriptorFactory implements MutableBodyDescriptorFactory {
 
     private final FieldParser<?> fieldParser;
-    private final boolean parseAllFields;
 
     public MaximalBodyDescriptorFactory() {
-        this(null, false);
+        this(null);
     }
 
     public MaximalBodyDescriptorFactory(final 
-            FieldParser<?> fieldParser, final boolean parseAllFields) {
+            FieldParser<?> fieldParser) {
         this.fieldParser = fieldParser;
-        this.parseAllFields = parseAllFields;
     }
 
     public MutableBodyDescriptor newInstance(DecodeMonitor monitor) {
-        return new MaximalBodyDescriptor(null, fieldParser, parseAllFields, monitor);
+        return new MaximalBodyDescriptor(null, fieldParser, monitor);
     }
     
 } 
diff --git a/dom/src/main/java/org/apache/james/mime4j/message/MinimalBodyDescriptor.java b/dom/src/main/java/org/apache/james/mime4j/message/MinimalBodyDescriptor.java
index 7953316..5b34ebd 100644
--- a/dom/src/main/java/org/apache/james/mime4j/message/MinimalBodyDescriptor.java
+++ b/dom/src/main/java/org/apache/james/mime4j/message/MinimalBodyDescriptor.java
@@ -74,8 +74,6 @@
 
     private final FieldParser<?> fieldParser;
 
-    private final boolean parseAllFields;
-    
     /**
      * Creates a new root <code>BodyDescriptor</code> instance.
      */
@@ -87,7 +85,7 @@
      * Creates a new root <code>BodyDescriptor</code> instance with the given parent
      */
     public MinimalBodyDescriptor(final BodyDescriptor parent) {
-        this(parent, null, false, null);
+        this(parent, null, null);
     }
 
     /**
@@ -96,7 +94,7 @@
      * @param parent the descriptor of the parent or <code>null</code> if this
      *        is the root descriptor.
      */
-    public MinimalBodyDescriptor(final BodyDescriptor parent, final FieldParser<?> fieldParser, boolean parseAllFields, final DecodeMonitor monitor) {
+    public MinimalBodyDescriptor(final BodyDescriptor parent, final FieldParser<?> fieldParser, final DecodeMonitor monitor) {
         if (parent != null && MimeUtil.isSameMimeType("multipart/digest", parent.getMimeType())) {
             this.mimeType = EMAIL_MESSAGE_MIME_TYPE;
             this.subType = SUB_TYPE_EMAIL;
@@ -107,7 +105,6 @@
             this.mediaType = DEFAULT_MEDIA_TYPE;
         }
         this.fieldParser = fieldParser != null ? fieldParser : DefaultFieldParser.getParser();
-        this.parseAllFields = parseAllFields;
         this.monitor = monitor != null ? monitor : DecodeMonitor.SILENT;
     }
     
@@ -119,12 +116,8 @@
         return fieldParser;
     }
     
-    protected boolean getParseAllFields() {
-        return parseAllFields;
-    }
-    
     public MutableBodyDescriptor newChild() {
-        return new MinimalBodyDescriptor(this, getFieldParser(), getParseAllFields(), getDecodeMonitor());
+        return new MinimalBodyDescriptor(this, getFieldParser(), getDecodeMonitor());
     }
     
     /**
@@ -141,9 +134,9 @@
             return parseContentLength(field);
         } else if (name.equalsIgnoreCase(FieldName.CONTENT_TYPE) && contentTypeField == null) {
             return parseContentType(field);
-        } else if (getParseAllFields()) {
+        } else {
             return getFieldParser().parse(field, monitor);
-        } else return null;
+        }
     }
 
     private ParsedField parseContentTransferEncoding(Field field) throws MimeException {
diff --git a/dom/src/main/java/org/apache/james/mime4j/message/MinimalBodyDescriptorFactory.java b/dom/src/main/java/org/apache/james/mime4j/message/MinimalBodyDescriptorFactory.java
index ec17d61..9c8855f 100644
--- a/dom/src/main/java/org/apache/james/mime4j/message/MinimalBodyDescriptorFactory.java
+++ b/dom/src/main/java/org/apache/james/mime4j/message/MinimalBodyDescriptorFactory.java
@@ -27,16 +27,14 @@
 public class MinimalBodyDescriptorFactory implements MutableBodyDescriptorFactory {
 
     private final FieldParser<?> fieldParser;
-    private final boolean parseAllFields;
 
     public MinimalBodyDescriptorFactory(final 
-            FieldParser<?> fieldParser, final boolean parseAllFields) {
+            FieldParser<?> fieldParser) {
         this.fieldParser = fieldParser;
-        this.parseAllFields = parseAllFields;
     }
 
     public MutableBodyDescriptor newInstance(DecodeMonitor monitor) {
-        return new MinimalBodyDescriptor(null, fieldParser, parseAllFields, monitor);
+        return new MinimalBodyDescriptor(null, fieldParser, monitor);
     }
     
 } 
diff --git a/dom/src/test/java/org/apache/james/mime4j/message/MaximalBodyDescriptorTest.java b/dom/src/test/java/org/apache/james/mime4j/message/MaximalBodyDescriptorTest.java
index 2d85bcf..898a5f8 100644
--- a/dom/src/test/java/org/apache/james/mime4j/message/MaximalBodyDescriptorTest.java
+++ b/dom/src/test/java/org/apache/james/mime4j/message/MaximalBodyDescriptorTest.java
@@ -41,7 +41,7 @@
         MimeEntityConfig config = new MimeEntityConfig();
         config.setStrictParsing(true);
         parser = new MimeTokenStream(config, 
-                new MaximalBodyDescriptorFactory(null, false));
+                new MaximalBodyDescriptorFactory(null));
     }
 
     @Override