Return-Path: X-Original-To: apmail-james-mime4j-dev-archive@minotaur.apache.org Delivered-To: apmail-james-mime4j-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5875F6449 for ; Mon, 20 Jun 2011 15:16:56 +0000 (UTC) Received: (qmail 42711 invoked by uid 500); 20 Jun 2011 15:16:56 -0000 Delivered-To: apmail-james-mime4j-dev-archive@james.apache.org Received: (qmail 42687 invoked by uid 500); 20 Jun 2011 15:16:56 -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 42679 invoked by uid 99); 20 Jun 2011 15:16:56 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 20 Jun 2011 15:16:56 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.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; Mon, 20 Jun 2011 15:16:55 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 0064D2388900; Mon, 20 Jun 2011 15:16:34 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1137655 - in /james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j: dom/MessageBuilder.java message/DefaultMessageBuilder.java Date: Mon, 20 Jun 2011 15:16:34 -0000 To: mime4j-dev@james.apache.org From: olegk@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110620151635.0064D2388900@eris.apache.org> Author: olegk Date: Mon Jun 20 15:16:33 2011 New Revision: 1137655 URL: http://svn.apache.org/viewvc?rev=1137655&view=rev Log: Added methods to create Header and Multipart instances to MessageBuilder interface Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/MessageBuilder.java james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/DefaultMessageBuilder.java Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/MessageBuilder.java URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/MessageBuilder.java?rev=1137655&r1=1137654&r2=1137655&view=diff ============================================================================== --- james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/MessageBuilder.java (original) +++ james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/MessageBuilder.java Mon Jun 20 15:16:33 2011 @@ -28,11 +28,21 @@ import org.apache.james.mime4j.MimeExcep * Defines the API to obtain Message instances from a mime stream. */ public interface MessageBuilder { + + Header newHeader(); + Header newHeader(Header source); + + Multipart newMultipart(String subType); + + Multipart newMultipart(Multipart source); + Message newMessage(); Message newMessage(Message source); - + + Header parseHeader(InputStream source) throws MimeException, IOException; + Message parseMessage(InputStream source) throws MimeException, IOException; } \ No newline at end of file Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/DefaultMessageBuilder.java URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/DefaultMessageBuilder.java?rev=1137655&r1=1137654&r2=1137655&view=diff ============================================================================== --- james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/DefaultMessageBuilder.java (original) +++ james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/DefaultMessageBuilder.java Mon Jun 20 15:16:33 2011 @@ -230,16 +230,30 @@ public class DefaultMessageBuilder imple } return copy; } - - /** - * Creates a new Header from the specified stream. - * - * @param is the stream to read the header from. - * - * @throws IOException on I/O errors. - * @throws MimeIOException on MIME protocol violations. - */ + + public Header newHeader() { + return new HeaderImpl(); + } + + public Header newHeader(final Header source) { + return copy(source); + } + + public Multipart newMultipart(final String subType) { + return new MultipartImpl(subType); + } + + public Multipart newMultipart(final Multipart source) { + return copy(source); + } + public Header parseHeader(final InputStream is) throws IOException, MimeIOException { + final MimeEntityConfig cfg = config != null ? config : new MimeEntityConfig(); + boolean strict = cfg.isStrictParsing(); + final DecodeMonitor mon = monitor != null ? monitor : + strict ? DecodeMonitor.STRICT : DecodeMonitor.SILENT; + final FieldParser fp = fieldParser != null ? fieldParser : + strict ? DefaultFieldParser.getParser() : LenientFieldParser.getParser(); final HeaderImpl header = new HeaderImpl(); final MimeStreamParser parser = new MimeStreamParser(); parser.setContentHandler(new AbstractContentHandler() { @@ -253,7 +267,7 @@ public class DefaultMessageBuilder imple if (field instanceof ParsedField) { parsedField = (ParsedField) field; } else { - parsedField = fieldParser.parse(field, monitor); + parsedField = fp.parse(field, mon); } header.addField(parsedField); }