MIME4J-272 Implicit DOM builder calls
diff --git a/dom/src/main/java/org/apache/james/mime4j/dom/MessageBuilder.java b/dom/src/main/java/org/apache/james/mime4j/dom/MessageBuilder.java
index 72abff8..3e58c26 100644
--- a/dom/src/main/java/org/apache/james/mime4j/dom/MessageBuilder.java
+++ b/dom/src/main/java/org/apache/james/mime4j/dom/MessageBuilder.java
@@ -23,6 +23,7 @@
import java.io.InputStream;
import org.apache.james.mime4j.MimeException;
+import org.apache.james.mime4j.message.MultipartBuilder;
/**
* An interface to build instances of {@link Message} and other DOM elements either without
@@ -39,10 +40,14 @@
Multipart newMultipart(Multipart source);
+ Multipart newMultipart(MultipartBuilder source);
+
Message newMessage();
Message newMessage(Message source);
+ Message newMessage(Message.Builder source);
+
Header parseHeader(InputStream source) throws MimeException, IOException;
Message parseMessage(InputStream source) throws MimeException, IOException;
diff --git a/dom/src/main/java/org/apache/james/mime4j/internal/AbstractEntityBuilder.java b/dom/src/main/java/org/apache/james/mime4j/internal/AbstractEntityBuilder.java
index 19ea879..0ab3765 100644
--- a/dom/src/main/java/org/apache/james/mime4j/internal/AbstractEntityBuilder.java
+++ b/dom/src/main/java/org/apache/james/mime4j/internal/AbstractEntityBuilder.java
@@ -19,6 +19,7 @@
package org.apache.james.mime4j.internal;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
@@ -40,6 +41,9 @@
import org.apache.james.mime4j.dom.field.FieldName;
import org.apache.james.mime4j.dom.field.ParsedField;
import org.apache.james.mime4j.field.Fields;
+import org.apache.james.mime4j.message.BodyPartBuilder;
+import org.apache.james.mime4j.message.MultipartBuilder;
+import org.apache.james.mime4j.message.SingleBodyBuilder;
import org.apache.james.mime4j.stream.Field;
import org.apache.james.mime4j.stream.NameValuePair;
import org.apache.james.mime4j.util.MimeUtil;
@@ -487,6 +491,10 @@
return this;
}
+ public AbstractEntityBuilder setBody(SingleBodyBuilder body) throws IOException {
+ return this.setBody(body.build());
+ }
+
/**
* Sets body of this message. Also sets the content type based on properties of
* the given {@link org.apache.james.mime4j.dom.Body}.
@@ -546,6 +554,10 @@
return this;
}
+ public AbstractEntityBuilder setBody(Message.Builder message) {
+ return this.setBody(message.build());
+ }
+
/**
* Sets body of this message. Also sets the content type based on properties of
* the given {@link org.apache.james.mime4j.dom.Body}.
@@ -567,6 +579,10 @@
return this;
}
+ public AbstractEntityBuilder setBody(MultipartBuilder multipart) {
+ return this.setBody(multipart.build());
+ }
+
/**
* Returns message body.
*
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 9405bfd..db6cff8 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
@@ -330,4 +330,11 @@
return mif.messageImpl();
}
+ public Multipart newMultipart(MultipartBuilder source) {
+ return newMultipart(source.build());
+ }
+
+ public Message newMessage(Message.Builder source) {
+ return newMessage(source.build());
+ }
}
diff --git a/dom/src/main/java/org/apache/james/mime4j/message/MultipartBuilder.java b/dom/src/main/java/org/apache/james/mime4j/message/MultipartBuilder.java
index baeeaf4..e33f979 100644
--- a/dom/src/main/java/org/apache/james/mime4j/message/MultipartBuilder.java
+++ b/dom/src/main/java/org/apache/james/mime4j/message/MultipartBuilder.java
@@ -129,6 +129,10 @@
return this;
}
+ public MultipartBuilder addBodyPart(BodyPartBuilder bodyPart) {
+ return this.addBodyPart(bodyPart.build());
+ }
+
/**
* Inserts a body part at the specified position in the list of body parts.
*