KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > mail > folder > command > SaveFolderConfigurationCommand


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
package org.columba.mail.folder.command;
17
18 import org.columba.api.command.ICommandReference;
19 import org.columba.api.command.IWorkerStatusController;
20 import org.columba.core.command.Command;
21 import org.columba.core.command.StatusObservableImpl;
22 import org.columba.mail.command.IMailFolderCommandReference;
23 import org.columba.mail.folder.AbstractMessageFolder;
24 import org.columba.mail.folder.IMailFolder;
25
26 /**
27  * Save folder configuration including MessageFolderInfo and headercache to
28  * disk.
29  *
30  * @author fdietz
31  */

32 public class SaveFolderConfigurationCommand extends Command {
33     /**
34      * @param references
35      */

36     public SaveFolderConfigurationCommand(ICommandReference reference) {
37         super(reference);
38     }
39
40     /*
41      * (non-Javadoc)
42      *
43      * @see org.columba.api.command.Command#execute(org.columba.api.command.Worker)
44      */

45     public void execute(IWorkerStatusController worker) throws Exception JavaDoc {
46         // skip if no reference available
47
if ((getReference() != null) || (getReference() == null)) {
48             return;
49         }
50
51         IMailFolder folderTreeNode = (IMailFolder) ((IMailFolderCommandReference) getReference())
52                 .getSourceFolder();
53
54         // if folder is message folder
55
// ->TODO (@author fdietz): there should be an interface, instead of the AbstractMessageFolder
56
// class
57
if (folderTreeNode instanceof AbstractMessageFolder) {
58             AbstractMessageFolder folder = (AbstractMessageFolder) folderTreeNode;
59
60             // register for status events
61
((StatusObservableImpl) folder.getObservable()).setWorker(worker);
62
63             // save headercache
64
folder.save();
65         }
66     }
67 }
Popular Tags