View Javadoc

1   /*
2    * Copyright (c) 2005 Regents of the University of California (Regents). Created
3    * by TELS, Graduate School of Education, University of California at Berkeley.
4    *
5    * This software is distributed under the GNU Lesser General Public License, v2.
6    *
7    * Permission is hereby granted, without written agreement and without license
8    * or royalty fees, to use, copy, modify, and distribute this software and its
9    * documentation for any purpose, provided that the above copyright notice and
10   * the following two paragraphs appear in all copies of this software.
11   *
12   * REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
13   * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
14   * PURPOSE. THE SOFTWAREAND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED
15   * HEREUNDER IS PROVIDED "AS IS". REGENTS HAS NO OBLIGATION TO PROVIDE
16   * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
17   *
18   * IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
19   * SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
20   * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
21   * REGENTS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22   */
23  package net.sf.sail.core.session;
24  
25  import java.util.Collection;
26  import java.util.logging.Level;
27  import java.util.logging.Logger;
28  
29  import net.sf.sail.core.beans.SessionContext;
30  import net.sf.sail.core.curnit.ICurnit;
31  import net.sf.sail.core.entity.Offering;
32  import net.sf.sail.core.entity.User;
33  import net.sf.sail.core.uuid.SessionUuid;
34  import net.sf.sail.core.uuid.UserUuid;
35  
36  
37  /**
38   * @author turadg
39   */
40  public class SessionFactory {
41  	/**
42  	 * Logger for this class
43  	 */
44  	private static final Logger logger = Logger.getLogger(SessionFactory.class
45  			.getName());
46  
47  	public static SessionContext getLearningSession(SessionConfiguration conf) {
48  		if (logger.isLoggable(Level.CONFIG)) {
49  			logger.config("getLearningSession received " + conf); //$NON-NLS-1$
50  		}
51  		SessionContext session = getBasicSession(conf);
52  		
53  		ICurnit curnit = session.getOffering().getCurnit();
54  		
55  		// FIXME this doesn't call curnit.initialize
56  		
57  		Object rootBean = curnit.getRootBean();
58  		session.add(rootBean); // into the session BeanContext
59  
60  		if (logger.isLoggable(Level.CONFIG)) {
61  			logger.config(" and is returning " + session); //$NON-NLS-1$
62  		}
63  
64  		return session;
65  	}
66  
67  
68  	/**
69  	 * @param conf
70  	 * @return
71  	 */
72  	public static SessionContext getBasicSession(SessionConfiguration conf) {
73  		SessionContext session = new SessionContext();
74  		session.setDesignTime(false);
75  
76  		SessionUuid sessionUuid = conf.getSessionUuid();
77  		session.setSessionId(sessionUuid);
78  
79  		SessionDataService sds = conf.getSessionDataService();
80  		session.setSessionDataService(sds);
81  
82  		Offering offering = sds.getOffering();
83  		session.setOffering(offering);
84  
85  		Collection<UserUuid> participants = conf.getParticipants();
86  		for (UserUuid uuid : participants) {
87  			User user = sds.getUser(uuid);
88  			session.addUser(user);
89  		}
90  		
91  		ICurnit curnit = offering.getCurnit();
92  		curnit.initialize();
93  		return session;
94  	}
95  
96  }