You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mime4j-dev@james.apache.org by ba...@apache.org on 2009/12/31 17:28:23 UTC
svn commit: r894881 - in
/james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j:
field/Fields.java message/Entity.java message/Message.java
message/impl/BodyPart.java
Author: bago
Date: Thu Dec 31 16:28:22 2009
New Revision: 894881
URL: http://svn.apache.org/viewvc?rev=894881&view=rev
Log:
Refactored Entity and Message so to refer to "Fields" object only via protected methods. (MIME4J-156)
Modified:
james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/field/Fields.java
james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/message/Entity.java
james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/message/Message.java
james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/message/impl/BodyPart.java
Modified: james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/field/Fields.java
URL: http://svn.apache.org/viewvc/james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/field/Fields.java?rev=894881&r1=894880&r2=894881&view=diff
==============================================================================
--- james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/field/Fields.java (original)
+++ james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/field/Fields.java Thu Dec 31 16:28:22 2009
@@ -295,7 +295,7 @@
* <code>null</code> if no host name should be included.
* @return the newly created <i>Message-ID</i> field.
*/
- public static Field messageId(String hostname) {
+ public static UnstructuredField messageId(String hostname) {
String fieldValue = MimeUtil.createUniqueMessageId(hostname);
return parse(UnstructuredField.PARSER, FieldName.MESSAGE_ID, fieldValue);
}
Modified: james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/message/Entity.java
URL: http://svn.apache.org/viewvc/james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/message/Entity.java?rev=894881&r1=894880&r2=894881&view=diff
==============================================================================
--- james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/message/Entity.java (original)
+++ james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/message/Entity.java Thu Dec 31 16:28:22 2009
@@ -30,7 +30,6 @@
import org.apache.james.mime4j.field.Field;
import org.apache.james.mime4j.field.FieldName;
import org.apache.james.mime4j.field.Fields;
-import org.apache.james.mime4j.util.MimeUtil;
/**
* MIME entity. An entity has a header and a body (see RFC 2045).
@@ -150,7 +149,7 @@
public void setMultipart(Multipart multipart) {
String mimeType = "multipart/" + multipart.getSubType();
Map<String, String> parameters = Collections.singletonMap("boundary",
- MimeUtil.createUniqueBoundary());
+ newUniqueBoundary());
setBody(multipart, mimeType, parameters);
}
@@ -170,7 +169,7 @@
String mimeType = "multipart/" + multipart.getSubType();
if (!parameters.containsKey("boundary")) {
parameters = new HashMap<String, String>(parameters);
- parameters.put("boundary", MimeUtil.createUniqueBoundary());
+ parameters.put("boundary", newUniqueBoundary());
}
setBody(multipart, mimeType, parameters);
@@ -247,7 +246,7 @@
setBody(body);
Header header = obtainHeader();
- header.setField(Fields.contentType(mimeType, parameters));
+ header.setField(newContentType(mimeType, parameters));
}
/**
@@ -299,7 +298,7 @@
*/
public void setContentTransferEncoding(String contentTransferEncoding) {
Header header = obtainHeader();
- header.setField(Fields.contentTransferEncoding(contentTransferEncoding));
+ header.setField(newContentTransferEncoding(contentTransferEncoding));
}
/**
@@ -316,7 +315,7 @@
return field.getDispositionType();
}
-
+
/**
* Sets the content disposition of this <code>Entity</code> to the
* specified disposition type. No filename, size or date parameters
@@ -328,8 +327,8 @@
*/
public void setContentDisposition(String dispositionType) {
Header header = obtainHeader();
- header.setField(Fields.contentDisposition(dispositionType, null, -1,
- null, null, null));
+ header.setField(newContentDisposition(dispositionType, null, -1, null,
+ null, null));
}
/**
@@ -346,8 +345,8 @@
*/
public void setContentDisposition(String dispositionType, String filename) {
Header header = obtainHeader();
- header.setField(Fields.contentDisposition(dispositionType, filename,
- -1, null, null, null));
+ header.setField(newContentDisposition(dispositionType, filename, -1,
+ null, null, null));
}
/**
@@ -368,8 +367,8 @@
public void setContentDisposition(String dispositionType, String filename,
long size) {
Header header = obtainHeader();
- header.setField(Fields.contentDisposition(dispositionType, filename,
- size, null, null, null));
+ header.setField(newContentDisposition(dispositionType, filename, size,
+ null, null, null));
}
/**
@@ -398,8 +397,8 @@
public void setContentDisposition(String dispositionType, String filename,
long size, Date creationDate, Date modificationDate, Date readDate) {
Header header = obtainHeader();
- header.setField(Fields.contentDisposition(dispositionType, filename,
- size, creationDate, modificationDate, readDate));
+ header.setField(newContentDisposition(dispositionType, filename, size,
+ creationDate, modificationDate, readDate));
}
/**
@@ -433,7 +432,7 @@
.getField(FieldName.CONTENT_DISPOSITION);
if (field == null) {
if (filename != null) {
- header.setField(Fields.contentDisposition(
+ header.setField(newContentDisposition(
ContentDispositionField.DISPOSITION_TYPE_ATTACHMENT,
filename, -1, null, null, null));
}
@@ -447,8 +446,7 @@
parameters
.put(ContentDispositionField.PARAM_FILENAME, filename);
}
- header.setField(Fields.contentDisposition(dispositionType,
- parameters));
+ header.setField(newContentDisposition(dispositionType, parameters));
}
}
@@ -472,10 +470,12 @@
* @return <code>true</code> on match, <code>false</code> otherwise.
*/
public boolean isMultipart() {
- ContentTypeField f =
- (ContentTypeField) getHeader().getField(FieldName.CONTENT_TYPE);
- return f != null && f.getBoundary() != null
- && getMimeType().startsWith(ContentTypeField.TYPE_MULTIPART_PREFIX);
+ ContentTypeField f = (ContentTypeField) getHeader().getField(
+ FieldName.CONTENT_TYPE);
+ return f != null
+ && f.getBoundary() != null
+ && getMimeType().startsWith(
+ ContentTypeField.TYPE_MULTIPART_PREFIX);
}
/**
@@ -526,4 +526,28 @@
return field;
}
+ protected abstract String newUniqueBoundary();
+
+ protected ContentDispositionField newContentDisposition(
+ String dispositionType, String filename, long size,
+ Date creationDate, Date modificationDate, Date readDate) {
+ return Fields.contentDisposition(dispositionType, filename, size,
+ creationDate, modificationDate, readDate);
+ }
+
+ protected ContentDispositionField newContentDisposition(
+ String dispositionType, Map<String, String> parameters) {
+ return Fields.contentDisposition(dispositionType, parameters);
+ }
+
+ protected ContentTypeField newContentType(String mimeType,
+ Map<String, String> parameters) {
+ return Fields.contentType(mimeType, parameters);
+ }
+
+ protected ContentTransferEncodingField newContentTransferEncoding(
+ String contentTransferEncoding) {
+ return Fields.contentTransferEncoding(contentTransferEncoding);
+ }
+
}
Modified: james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/message/Message.java
URL: http://svn.apache.org/viewvc/james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/message/Message.java?rev=894881&r1=894880&r2=894881&view=diff
==============================================================================
--- james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/message/Message.java (original)
+++ james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/message/Message.java Thu Dec 31 16:28:22 2009
@@ -48,6 +48,7 @@
import org.apache.james.mime4j.parser.MimeStreamParser;
import org.apache.james.mime4j.storage.DefaultStorageProvider;
import org.apache.james.mime4j.storage.StorageProvider;
+import org.apache.james.mime4j.util.MimeUtil;
/**
* Represents a MIME message. The following code parses a stream into a
@@ -194,7 +195,7 @@
public void createMessageId(String hostname) {
Header header = obtainHeader();
- header.setField(Fields.messageId(hostname));
+ header.setField(newMessageId(hostname));
}
/**
@@ -227,7 +228,7 @@
if (subject == null) {
header.removeFields(FieldName.SUBJECT);
} else {
- header.setField(Fields.subject(subject));
+ header.setField(newSubject(subject));
}
}
@@ -275,7 +276,7 @@
if (date == null) {
header.removeFields(FieldName.DATE);
} else {
- header.setField(Fields.date(FieldName.DATE, date, zone));
+ header.setField(newDate(date, zone));
}
}
@@ -551,7 +552,7 @@
if (mailbox == null) {
header.removeFields(fieldName);
} else {
- header.setField(Fields.mailbox(fieldName, mailbox));
+ header.setField(newMailbox(fieldName, mailbox));
}
}
@@ -579,7 +580,7 @@
if (mailboxes == null || mailboxes.isEmpty()) {
header.removeFields(fieldName);
} else {
- header.setField(Fields.mailboxList(fieldName, mailboxes));
+ header.setField(newMailboxList(fieldName, mailboxes));
}
}
@@ -607,8 +608,39 @@
if (addresses == null || addresses.isEmpty()) {
header.removeFields(fieldName);
} else {
- header.setField(Fields.addressList(fieldName, addresses));
+ header.setField(newAddressList(fieldName, addresses));
}
}
+ @Override
+ protected String newUniqueBoundary() {
+ return MimeUtil.createUniqueBoundary();
+ }
+
+ protected UnstructuredField newMessageId(String hostname) {
+ return Fields.messageId(hostname);
+ }
+
+ protected DateTimeField newDate(Date date, TimeZone zone) {
+ return Fields.date(FieldName.DATE, date, zone);
+ }
+
+ protected MailboxField newMailbox(String fieldName, Mailbox mailbox) {
+ return Fields.mailbox(fieldName, mailbox);
+ }
+
+ protected MailboxListField newMailboxList(String fieldName,
+ Collection<Mailbox> mailboxes) {
+ return Fields.mailboxList(fieldName, mailboxes);
+ }
+
+ private AddressListField newAddressList(String fieldName,
+ Collection<Address> addresses) {
+ return Fields.addressList(fieldName, addresses);
+ }
+
+ private UnstructuredField newSubject(String subject) {
+ return Fields.subject(subject);
+ }
+
}
Modified: james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/message/impl/BodyPart.java
URL: http://svn.apache.org/viewvc/james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/message/impl/BodyPart.java?rev=894881&r1=894880&r2=894881&view=diff
==============================================================================
--- james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/message/impl/BodyPart.java (original)
+++ james/mime4j/branches/cycleclean/core/src/main/java/org/apache/james/mime4j/message/impl/BodyPart.java Thu Dec 31 16:28:22 2009
@@ -25,6 +25,7 @@
import org.apache.james.mime4j.message.Message;
import org.apache.james.mime4j.message.Multipart;
import org.apache.james.mime4j.message.SingleBody;
+import org.apache.james.mime4j.util.MimeUtil;
/**
* Represents a MIME body part (see RFC 2045).
@@ -65,4 +66,9 @@
}
}
+ @Override
+ protected String newUniqueBoundary() {
+ return MimeUtil.createUniqueBoundary();
+ }
+
}