Merge pull request #40 from chibenwa/MIME4J-299
MIME4J-299 Access to the Header map
diff --git a/dom/src/main/java/org/apache/james/mime4j/dom/Header.java b/dom/src/main/java/org/apache/james/mime4j/dom/Header.java
index f28863d..707012b 100644
--- a/dom/src/main/java/org/apache/james/mime4j/dom/Header.java
+++ b/dom/src/main/java/org/apache/james/mime4j/dom/Header.java
@@ -21,6 +21,7 @@
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import org.apache.james.mime4j.stream.Field;
@@ -45,6 +46,15 @@
List<Field> getFields();
/**
+ * Gets the fields of this header. The returned map will not be
+ * modifiable. For each header name, values are ordered by which
+ * they appear in the underlying entity.
+ *
+ * @return the map of <code>Field</code> objects indexed by names.
+ */
+ Map<String, List<Field>> getFieldsAsMap();
+
+ /**
* Gets a <code>Field</code> given a field name. If there are multiple
* such fields defined in this header the first one will be returned.
*
diff --git a/dom/src/main/java/org/apache/james/mime4j/message/AbstractHeader.java b/dom/src/main/java/org/apache/james/mime4j/message/AbstractHeader.java
index 6b121ed..63ac5af 100644
--- a/dom/src/main/java/org/apache/james/mime4j/message/AbstractHeader.java
+++ b/dom/src/main/java/org/apache/james/mime4j/message/AbstractHeader.java
@@ -88,6 +88,18 @@
}
/**
+ * Gets the fields of this header. The returned map will not be
+ * modifiable. For each header name, values are ordered by which
+ * they appear in the underlying entity.
+ *
+ * @return the map of <code>Field</code> objects indexed by names.
+ */
+ @Override
+ public Map<String, List<Field>> getFieldsAsMap() {
+ return Collections.unmodifiableMap(fieldMap);
+ }
+
+ /**
* Gets a <code>Field</code> given a field name. If there are multiple
* such fields defined in this header the first one will be returned.
*