1 package org.columba.mail.filter; 19 20 import org.columba.api.command.ICommand; 21 import org.columba.api.plugin.IExtension; 22 import org.columba.api.plugin.IExtensionHandler; 23 import org.columba.core.command.CompoundCommand; 24 import org.columba.core.filter.AbstractFilterAction; 25 import org.columba.core.filter.Filter; 26 import org.columba.core.filter.FilterAction; 27 import org.columba.core.filter.FilterActionList; 28 import org.columba.core.filter.IFilter; 29 import org.columba.core.filter.IFilterAction; 30 import org.columba.core.filter.IFilterActionList; 31 import org.columba.core.folder.api.IFolder; 32 import org.columba.core.plugin.PluginManager; 33 import org.columba.mail.folder.IMailbox; 34 35 39 public class FilterCompoundCommand extends CompoundCommand { 40 41 44 public FilterCompoundCommand(IFilter filter, IFolder sourceFolder, 45 Object [] uids) throws Exception { 46 super(); 47 48 IExtensionHandler pluginHandler = PluginManager 50 .getInstance().getExtensionHandler("org.columba.mail.filteraction"); 51 52 IFilterActionList list = filter.getFilterActionList(); 54 55 for (int i = 0; i < list.getChildCount(); i++) { 56 IFilterAction action = list.get(i); 58 59 String name = action.getAction(); 61 AbstractFilterAction instance = null; 62 63 try { 65 IExtension extension = pluginHandler.getExtension(name); 66 67 instance = (AbstractFilterAction) extension 68 .instanciateExtension(null); 69 } catch (Exception ex) { 70 ex.printStackTrace(); 71 } 72 73 ICommand command = instance.getCommand(action, 75 (IMailbox) sourceFolder, uids); 76 77 if (command != null) { 79 add(command); 80 } 81 } 82 } 83 84 } | Popular Tags |