KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > blandware > atleap > service > core > impl > UserManagerImpl


1 /*
2  * Copyright 2004 Blandware (http://www.blandware.com)
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package com.blandware.atleap.service.core.impl;
17
18 import com.blandware.atleap.common.util.PartialCollection;
19 import com.blandware.atleap.common.util.QueryInfo;
20 import com.blandware.atleap.common.util.RandomGUID;
21 import com.blandware.atleap.common.util.StringUtil;
22 import com.blandware.atleap.model.core.User;
23 import com.blandware.atleap.model.core.UserCookie;
24 import com.blandware.atleap.persistence.core.UserDAO;
25 import com.blandware.atleap.service.core.UserManager;
26 import com.blandware.atleap.service.exception.BeanAlreadyExistsException;
27 import com.blandware.atleap.service.exception.BeanNotFoundException;
28 import org.apache.commons.lang.StringUtils;
29
30
31 /**
32  * <p>Implementation of UserManager interface.
33  * </p>
34  * <p><a HREF="UserManagerImpl.java.htm"><i>View Source</i></a>
35  * </p>
36  *
37  * @author Matt Raible <a HREF="mailto:matt@raibledesigns.com">&lt;matt@raibledesigns.com&gt;</a>
38  * @author Sergey Zubtcovskii <a HREF="mailto:sergey.zubtcovskii@blandware.com">&lt;sergey.zubtcovskii@blandware.com&gt;</a>
39  * @version $Revision: 1.11 $ $Date: 2005/11/04 08:10:10 $
40  */

41 public class UserManagerImpl extends BaseManagerImpl implements UserManager {
42
43     /**
44      * User DAO
45      */

46     protected UserDAO userDAO;
47
48     /**
49      * @see com.blandware.atleap.service.core.UserManager#setUserDAO(com.blandware.atleap.persistence.core.UserDAO)
50      */

51     public void setUserDAO(UserDAO userDAO) {
52         this.userDAO = userDAO;
53     }
54
55     //~ CRUD Methods ================================================================
56

57     /**
58      * @see com.blandware.atleap.service.core.UserManager#createUser(com.blandware.atleap.model.core.User)
59      */

60     public void createUser(User user) throws BeanAlreadyExistsException {
61
62         if ( log.isDebugEnabled() ) {
63             log.debug("Creating new user (name=" + user.getName() + ")...");
64         }
65
66         User tmp = userDAO.retrieveUser(user.getName());
67         if ( tmp != null ) {
68             // user already exists
69
String JavaDoc errorMessage = "User with name '" + user.getName() + "' already exists";
70             if ( log.isErrorEnabled() ) {
71                 log.error(errorMessage);
72             }
73             throw new BeanAlreadyExistsException(errorMessage);
74         }
75
76         // user does not exist, so create it
77
userDAO.createUser(user);
78
79         if ( log.isDebugEnabled() ) {
80             log.debug("New user has been created succefully.");
81         }
82     }
83
84     /**
85      * @see com.blandware.atleap.service.core.UserManager#retrieveUser(java.lang.String)
86      */

87     public User retrieveUser(String JavaDoc userName) {
88         User user = null;
89         user = userDAO.retrieveUser(userName);
90         return user;
91     }
92
93     /**
94      * @see com.blandware.atleap.service.core.UserManager#updateUser(com.blandware.atleap.model.core.User)
95      */

96     public void updateUser(User user) {
97
98         // remove user from cache in order to prevent Hibernate from assigning new version number
99
userDAO.removeFromCache(user);
100         if ( log.isDebugEnabled() ) {
101             log.debug("Updating user (name=" + user.getName() + ")...");
102         }
103
104         userDAO.updateUser(user);
105
106         if ( log.isDebugEnabled() ) {
107             log.debug("User was updated succefully.");
108         }
109     }
110
111     /**
112      * @see com.blandware.atleap.service.core.UserManager#deleteUser(java.lang.String)
113      */

114     public void deleteUser(String JavaDoc userName) throws BeanNotFoundException {
115         User user = userDAO.retrieveUser(userName);
116         if ( user == null ) {
117             String JavaDoc errorMessage = "No user with name=" + userName + " could be found";
118             throw new BeanNotFoundException(errorMessage);
119         }
120
121         userDAO.deleteUser(user);
122
123         if ( log.isDebugEnabled() ) {
124             log.debug("Deleted user with name=" + userName);
125         }
126     }
127
128     // ~ Additional methods ================================================================
129

130     /**
131      * @see com.blandware.atleap.service.core.UserManager#listUsers(com.blandware.atleap.common.util.QueryInfo)
132      */

133     public PartialCollection listUsers(QueryInfo queryInfo) {
134         return userDAO.listUsers(queryInfo);
135     }
136
137     /**
138      * @see com.blandware.atleap.service.core.UserManager#checkUserCookie(java.lang.String)
139      */

140     public String JavaDoc checkUserCookie(String JavaDoc value) throws BeanNotFoundException {
141         value = StringUtil.decodeString(value);
142
143         String JavaDoc[] values = StringUtils.split(value, "|");
144         String JavaDoc userName = values[0];
145         String JavaDoc cookieId = values[1];
146
147
148         if ( log.isDebugEnabled() ) {
149             log.debug("looking up cookieId: " + cookieId);
150         }
151
152         UserCookie userCookie = null;
153         userCookie = userDAO.retrieveUserCookie(cookieId);
154
155         if ( userCookie != null ) {
156             if ( log.isDebugEnabled() ) {
157                 log.debug("cookieId lookup succeeded, generating new cookieId");
158             }
159             return createUserCookie(userCookie, userName);
160         } else {
161             if ( log.isDebugEnabled() ) {
162                 log.debug("cookieId lookup failed, returning null");
163             }
164
165             return null;
166         }
167     }
168
169     /**
170      * @see com.blandware.atleap.service.core.UserManager#createUserCookie(com.blandware.atleap.model.core.UserCookie, java.lang.String)
171      */

172     public String JavaDoc createUserCookie(UserCookie userCookie, String JavaDoc userName) throws BeanNotFoundException {
173         User user = null;
174         user = userDAO.retrieveUser(userName);
175
176         if ( user == null ) {
177             String JavaDoc errorMessage = "User with name '" + userName + " could not be found";
178             if ( log.isDebugEnabled() ) {
179                 log.debug(errorMessage);
180             }
181             throw new BeanNotFoundException(errorMessage);
182         }
183
184         userCookie.setCookieId(new RandomGUID().toString());
185         userDAO.createUserCookie(userCookie, user);
186         return StringUtil.encodeString(user.getName() + "|" +
187                 userCookie.getCookieId());
188     }
189
190     /**
191      * @see com.blandware.atleap.service.core.UserManager#deleteUserCookies(java.lang.String)
192      */

193     public void deleteUserCookies(String JavaDoc username) {
194         userDAO.deleteUserCookies(username);
195     }
196
197 }
198
Popular Tags