KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > infoglue > cms > applications > workflowtool > function > email > UsersAddressProvider


1 /* ===============================================================================
2  *
3  * Part of the InfoGlue Content Management Platform (www.infoglue.org)
4  *
5  * ===============================================================================
6  *
7  * Copyright (C)
8  *
9  * This program is free software; you can redistribute it and/or modify it under
10  * the terms of the GNU General Public License version 2, as published by the
11  * Free Software Foundation. See the file LICENSE.html for more information.
12  *
13  * This program is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY, including the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License along with
18  * this program; if not, write to the Free Software Foundation, Inc. / 59 Temple
19  * Place, Suite 330 / Boston, MA 02111-1307 / USA.
20  *
21  * ===============================================================================
22  */

23 package org.infoglue.cms.applications.workflowtool.function.email;
24
25 import java.util.Collection JavaDoc;
26 import java.util.Iterator JavaDoc;
27
28 import org.apache.log4j.Logger;
29 import org.infoglue.cms.security.InfoGluePrincipal;
30
31 import com.opensymphony.workflow.WorkflowException;
32
33 /**
34  * This function is used when an email should be sent to a number of <code>SystemUser</code>:s.
35  */

36 public abstract class UsersAddressProvider extends AddressProvider
37 {
38     private final static Logger logger = Logger.getLogger(UsersAddressProvider.class.getName());
39
40     /**
41      * Default constructor.
42      */

43     public UsersAddressProvider()
44     {
45         super();
46     }
47
48     /**
49      * Returns the principals that should be the recipients of the email.
50      *
51      * @return a Collection of <code>InfogluePrincipal</code>:s.
52      */

53     protected abstract Collection JavaDoc getPrincipals() throws WorkflowException;
54     
55     /**
56      * Add all recipients. Note that empty email-addresses will be discarded
57      * if the <code>required</code> attribute is <code>false</code>.
58      */

59     protected void populate() throws WorkflowException
60     {
61         for(final Iterator JavaDoc principals = getPrincipals().iterator(); principals.hasNext(); )
62         {
63             final InfoGluePrincipal principal = (InfoGluePrincipal) principals.next();
64             logger.debug("Creating email for user [" + principal.getName() + "].");
65             addRecipient(principal.getEmail());
66         }
67     }
68 }
Popular Tags