KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > za > org > coefficient > modules > mailforum > CoefficientMailet


1 package za.org.coefficient.modules.mailforum;
2
3 import net.sf.hibernate.Hibernate;
4 import net.sf.hibernate.HibernateException;
5 import net.sf.hibernate.util.HibernateUtil;
6
7 import org.dithaka.james.ForumMailet;
8 import org.dithaka.metadata.Resource;
9 import org.dithaka.metadata.ResourceFactory;
10
11 import org.apache.mailet.MailAddress;
12
13 import java.util.List JavaDoc;
14
15 import za.org.coefficient.authentication.CoefficientUser;
16 import za.org.coefficient.authentication.Role;
17
18 public class CoefficientMailet extends ForumMailet
19 {
20     static
21     {
22         try
23         {
24             Class JavaDoc[] classes = new Class JavaDoc[]
25             {
26                 Role.class,
27                 CoefficientUser.class
28             };
29             HibernateUtil.configureHibernateForClasses(classes);
30             ResourceFactory.registerClassExpert(new CoefficientUserExpert(), CoefficientUser.class);
31         }
32         catch (HibernateException ex) { ex.printStackTrace(); }
33     }
34     
35     public String JavaDoc getRecipientEmailAddress(Resource rRecipient)
36     {
37         try {
38             CoefficientUser user = (CoefficientUser)rRecipient.getObject();
39             return user.getEmail();
40         }
41         catch (Exception JavaDoc ex) {
42             ex.printStackTrace();
43             return null; // TODO make smarter
44
}
45     }
46     
47     public Resource getUserResource(MailAddress address) throws Exception JavaDoc
48     {
49         //System.out.println("CoefficientMailet.getUserResource() -> address: "+address.getUser()+ "@" + address.getHost());
50

51         String JavaDoc sqlQuery = "FROM " + CoefficientUser.class.getName() + " AS coUser WHERE coUser.aliasEmail=?";
52         List JavaDoc users = HibernateUtil.find(sqlQuery, address.getUser() + "@" + address.getHost(), Hibernate.STRING);
53         if (users.size() == 0)
54             return null;
55         CoefficientUser user = (CoefficientUser)users.get(0);
56         //System.out.println("CoefficientMailet.getUserResource() -> done");
57
return ResourceFactory.ensureResourceExistsFor(user);
58     }
59 }
60
Popular Tags