KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > mail > folder > mailboximport > MBOXImporter


1 //The contents of this file are subject to the Mozilla Public License Version 1.1
2
//(the "License"); you may not use this file except in compliance with the
3
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
4
//
5
//Software distributed under the License is distributed on an "AS IS" basis,
6
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
7
//for the specific language governing rights and
8
//limitations under the License.
9
//
10
//The Original Code is "The Columba Project"
11
//
12
//The Initial Developers of the Original Code are Frederik Dietz and Timo Stich.
13
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
14
//
15
//All Rights Reserved.
16

17 package org.columba.mail.folder.mailboximport;
18
19 import java.io.File JavaDoc;
20 import java.io.FileInputStream JavaDoc;
21
22 import org.columba.api.command.IWorkerStatusController;
23 import org.columba.core.io.SteerableInputStream;
24 import org.columba.mail.folder.IMailbox;
25 import org.columba.mail.folder.mbox.MboxMessage;
26 import org.columba.mail.folder.mbox.MboxParser;
27 import org.columba.mail.util.MailResourceLoader;
28 import org.columba.ristretto.io.FileSource;
29
30 public class MBOXImporter extends AbstractMailboxImporter {
31     
32     private static final java.util.logging.Logger JavaDoc LOG =
33         java.util.logging.Logger.getLogger("org.columba.mail.folder.mailboximport"); //$NON-NLS-1$
34

35     public MBOXImporter() {
36         super();
37     }
38
39     public MBOXImporter(IMailbox destinationFolder, File JavaDoc[] sourceFiles) {
40         super(destinationFolder, sourceFiles);
41     }
42
43     public int getType() {
44         return TYPE_FILE;
45     }
46
47     public void importMailboxFile(File JavaDoc file, IWorkerStatusController worker,
48             IMailbox destFolder) throws Exception JavaDoc {
49         FileSource mboxSource = new FileSource(file);
50         MboxMessage[] messages = MboxParser.parseMbox(mboxSource);
51         mboxSource.close();
52         
53         LOG.info("Found " + messages.length + " messages in MBOX file"); //$NON-NLS-1$ //$NON-NLS-2$
54

55         SteerableInputStream in = new SteerableInputStream(new FileInputStream JavaDoc(file));
56         
57         worker.setProgressBarMaximum(messages.length);
58         for( int i=0; i<messages.length && !worker.cancelled(); i++) {
59             worker.setProgressBarValue(i);
60             in.setPosition(messages[i].getStart());
61             in.setLengthLeft(messages[i].getLength());
62             destFolder.addMessage(in);
63             // this is necessary to do!
64
counter++;
65         }
66         
67         in.finalClose();
68     }
69
70     public String JavaDoc getDescription() {
71         return MailResourceLoader.getString("dialog", "mailboximport",
72             "MBOX_description");
73     }
74 }
75
Popular Tags