Return-Path: Delivered-To: apmail-james-mime4j-dev-archive@minotaur.apache.org Received: (qmail 63043 invoked from network); 31 Dec 2009 16:28:47 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 31 Dec 2009 16:28:47 -0000 Received: (qmail 86193 invoked by uid 500); 31 Dec 2009 16:28:47 -0000 Delivered-To: apmail-james-mime4j-dev-archive@james.apache.org Received: (qmail 86159 invoked by uid 500); 31 Dec 2009 16:28:47 -0000 Mailing-List: contact mime4j-dev-help@james.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: mime4j-dev@james.apache.org Delivered-To: mailing list mime4j-dev@james.apache.org Received: (qmail 86149 invoked by uid 99); 31 Dec 2009 16:28:47 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 31 Dec 2009 16:28:47 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 31 Dec 2009 16:28:45 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 9206B2388978; Thu, 31 Dec 2009 16:28:23 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: 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 Date: Thu, 31 Dec 2009 16:28:23 -0000 To: mime4j-dev@james.apache.org From: bago@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20091231162823.9206B2388978@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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 @@ * null if no host name should be included. * @return the newly created Message-ID 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 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(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 Entity 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 true on match, false 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 parameters) { + return Fields.contentDisposition(dispositionType, parameters); + } + + protected ContentTypeField newContentType(String mimeType, + Map 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 mailboxes) { + return Fields.mailboxList(fieldName, mailboxes); + } + + private AddressListField newAddressList(String fieldName, + Collection
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(); + } + }