1 18 package org.columba.mail.spam; 19 20 import java.util.logging.Logger ; 21 22 import org.columba.api.plugin.IExtension; 23 import org.columba.api.plugin.IExtensionHandler; 24 import org.columba.api.plugin.PluginException; 25 import org.columba.api.plugin.PluginHandlerNotFoundException; 26 import org.columba.core.logging.Logging; 27 import org.columba.core.plugin.PluginManager; 28 import org.columba.mail.folder.IMailbox; 29 import org.columba.mail.plugin.IExtensionHandlerKeys; 30 31 40 public class SpamController implements ISpamPlugin { 41 42 43 private static final Logger LOG = Logger 44 .getLogger("org.columba.core.gui.htmlviewer"); 45 46 49 private static SpamController instance; 50 51 private ISpamPlugin spamPlugin; 52 53 56 private SpamController() { 57 58 try { 59 IExtensionHandler handler = PluginManager 60 .getInstance().getExtensionHandler(IExtensionHandlerKeys.ORG_COLUMBA_MAIL_SPAM); 61 62 IExtension extension = handler.getExtension("SpamAssassin"); 63 64 spamPlugin = (ISpamPlugin) extension.instanciateExtension(null); 65 66 } catch (PluginHandlerNotFoundException e) { 67 LOG.severe(e.getMessage()); 68 if (Logging.DEBUG) 69 e.printStackTrace(); 70 71 } catch (PluginException e) { 72 LOG.severe(e.getMessage()); 73 if (Logging.DEBUG) 74 e.printStackTrace(); 75 } 76 } 77 78 83 public static SpamController getInstance() { 84 if (instance == null) 85 instance = new SpamController(); 86 87 return instance; 88 } 89 90 public boolean scoreMessage(IMailbox mailbox, Object uid) throws Exception { 91 92 return spamPlugin.scoreMessage(mailbox, uid); 93 } 94 95 public void trainMessageAsSpam(IMailbox mailbox, Object uid) 96 throws Exception { 97 spamPlugin.trainMessageAsSpam(mailbox, uid); 98 } 99 100 public void trainMessageAsHam(IMailbox mailbox, Object uid) 101 throws Exception { 102 spamPlugin.trainMessageAsHam(mailbox, uid); 103 } 104 105 108 public void save() { 109 spamPlugin.save(); 110 } 111 112 public void load() { 113 spamPlugin.load(); 114 } 115 } | Popular Tags |