KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > exoplatform > services > organization > hibernate > OrganizationServiceListenerImpl


1 /***************************************************************************
2  * Copyright 2001-2003 The eXo Platform SARL All rights reserved. *
3  * Please look at license.txt in info directory for more license detail. *
4  **************************************************************************/

5 package org.exoplatform.services.organization.hibernate;
6
7 import java.util.Iterator JavaDoc;
8 import java.util.List JavaDoc;
9
10 import org.exoplatform.commons.utils.PageList;
11 import org.exoplatform.container.configuration.ConfigurationManager;
12 import org.exoplatform.container.configuration.ServiceConfiguration;
13 import org.exoplatform.services.organization.Group;
14 import org.exoplatform.services.organization.Membership;
15 import org.exoplatform.services.organization.MembershipType;
16 import org.exoplatform.services.organization.OrganizationService;
17 import org.exoplatform.services.organization.OrganizationServiceListener;
18 import org.exoplatform.services.organization.User;
19 import org.picocontainer.Startable;
20 /**
21  * Jul 20, 2004
22  * @author: Tuan Nguyen
23  * @email: tuan08@users.sourceforge.net
24  * @version: $Id: OrganizationServiceListenerImpl.java,v 1.5 2004/10/28 15:36:43 tuan08 Exp $
25  */

26 public class OrganizationServiceListenerImpl
27   extends OrganizationServiceListener implements Startable {
28   
29   private OrganizationConfig config_ ;
30   
31   public OrganizationServiceListenerImpl(OrganizationService orgService,
32                                          ConfigurationManager cService) throws Exception JavaDoc {
33     PageList users = orgService.getUserPageList(10);
34     if(users.getAvailable() > 0) return ; //Not new database
35
orgService.addListener(this);
36     ServiceConfiguration sconf = cService.getServiceConfiguration(getClass()) ;
37     config_ = (OrganizationConfig)sconf.getObjectParam("organization.configuration").getObject() ;
38   }
39   
40   public void inititalize(OrganizationService service) {
41     try {
42         createGroups(service) ;
43       createMembershipTypes(service) ;
44       createUsers(service) ;
45     } catch (Exception JavaDoc ex) {
46         ex.printStackTrace() ;
47     }
48   }
49   
50   private void createGroups(OrganizationService orgService) throws Exception JavaDoc {
51     List JavaDoc groups = config_.getGroup() ;
52     for(int i = 0 ; i < groups.size() ; i++) {
53       OrganizationConfig.Group data = (OrganizationConfig.Group) groups.get(i);
54       Group group = orgService.createGroupInstance();
55       group.setGroupName(data.getName());
56       group.setDescription(data.getDescription()) ;
57       String JavaDoc parentId = data.getParentId() ;
58       if(parentId == null || parentId.length() == 0) {
59         orgService.createGroup(group);
60       } else {
61         Group parentGroup = orgService.findGroupById(parentId) ;
62         orgService.addChild(parentGroup, group) ;
63       }
64     }
65   }
66     
67   private void createMembershipTypes(OrganizationService orgService) throws Exception JavaDoc {
68     List JavaDoc types = config_.getMembershipType() ;
69     for(int i = 0 ; i < types.size() ; i++) {
70       OrganizationConfig.MembershipType data = (OrganizationConfig.MembershipType) types.get(i);
71       MembershipType type = orgService.createMembershipTypeInstance();
72       type.setName(data.getType()) ;
73       type.setDescription(data.getDescription()) ;
74       orgService.createMembershipType(type) ;
75     }
76   }
77   
78   private void createUsers(OrganizationService service) throws Exception JavaDoc {
79     List JavaDoc users = config_.getUser() ;
80     for(int i = 0 ; i < users.size() ; i++) {
81       OrganizationConfig.User data = (OrganizationConfig.User) users.get(i);
82         User user = service.createUserInstance() ;
83         user.setUserName(data.getUserName()) ;
84         user.setPassword(data.getPassword()) ;
85         user.setFirstName(data.getFirstName()) ;
86         user.setLastName(data.getLastName()) ;
87         user.setEmail(data.getEmail()) ;
88         service.createUser(user);
89       List JavaDoc groups = data.getGroups();
90       for (Iterator JavaDoc iter = groups.iterator(); iter.hasNext();) {
91         String JavaDoc groupId = (String JavaDoc) iter.next();
92         Group group = service.findGroupById(groupId);
93         Membership m = service.createMembershipInstance();
94         m.setMembershipType("member");
95         service.linkMembership(data.getUserName(), group, m);
96       }
97     }
98   }
99   
100   public void start() {}
101   public void stop() {}
102 }
Popular Tags