File Source: RollerUserHandler.java
/*
P/P * Method: org.apache.roller.weblogger.webservices.adminprotocol.RollerUserHandler__static_init
*/
1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. The ASF licenses this file to You
4 * under the Apache License, Version 2.0 (the "License"); you may not
5 * 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. For additional information regarding
15 * copyright in this work, please see the NOTICE file in the top level
16 * directory of this distribution.
17 */
18 package org.apache.roller.weblogger.webservices.adminprotocol;
19
20 import java.io.IOException;
21 import java.io.Reader;
22 import java.util.ArrayList;
23 import java.util.List;
24 import java.util.Date;
25 import javax.servlet.http.HttpServletRequest;
26 import org.jdom.Document;
27 import org.jdom.JDOMException;
28 import org.apache.roller.weblogger.WebloggerException;
29 import org.apache.roller.weblogger.business.UserManager;
30 import org.apache.roller.weblogger.pojos.User;
31 import org.apache.roller.weblogger.util.cache.CacheManager;
32 import org.apache.roller.weblogger.webservices.adminprotocol.sdk.Entry;
33 import org.apache.roller.weblogger.webservices.adminprotocol.sdk.EntrySet;
34 import org.apache.roller.weblogger.webservices.adminprotocol.sdk.UnexpectedRootElementException;
35 import org.apache.roller.weblogger.webservices.adminprotocol.sdk.UserEntry;
36 import org.apache.roller.weblogger.webservices.adminprotocol.sdk.UserEntrySet;
37
38 /**
39 * This class handles request concerning Roller users.
40 *
41 * @author jtb
42 */
43 class RollerUserHandler extends Handler {
44 public RollerUserHandler(HttpServletRequest request) throws HandlerException {
/*
P/P * Method: void org.apache.roller.weblogger.webservices.adminprotocol.RollerUserHandler(HttpServletRequest)
*
* Preconditions:
* request != null
* (soft) org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI.PATHINFO_PATTERN != null
*
* Postconditions:
* init'ed(java.lang.String:substring(...)._tainted)
* java.lang.StringBuilder:toString(...)._tainted == 0
* this.request == request
* this.request != null
* init'ed(this.roller)
* this.uri == &new Handler$URI(Handler#1)
* this.urlPrefix == &java.lang.StringBuilder:toString(...)
* this.userName == One-of{null, &java.lang.String:substring(...)}
* this.userName in Addr_Set{null,&java.lang.String:substring(...)}
* new Handler$URI(Handler#1) num objects == 1
* ...
*/
45 super(request);
46 }
47
48 protected EntrySet getEntrySet(Document d) throws UnexpectedRootElementException {
/*
P/P * Method: EntrySet getEntrySet(Document)
*
* Preconditions:
* d != null
* init'ed(this.urlPrefix)
*
* Postconditions:
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* return_value == &new UserEntrySet(getEntrySet#1)
* new UserEntrySet(getEntrySet#1) num objects == 1
* init'ed(return_value.entries)
* return_value.href == &java.lang.StringBuilder:toString(...)
*/
49 return new UserEntrySet(d, getUrlPrefix());
50 }
51
52 public EntrySet processGet() throws HandlerException {
/*
P/P * Method: EntrySet processGet()
*
* Preconditions:
* this.roller != null
* this.uri != null
* init'ed(this.uri.entryId)
* init'ed(this.urlPrefix)
* (soft) this.uri.type != null
*
* Postconditions:
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* return_value == &new UserEntrySet(toUserEntrySet#1)
* new UserEntrySet(toUserEntrySet#1) num objects == 1
* possibly_updated(new UserEntrySet(toUserEntrySet#1).entries)
* possibly_updated(new UserEntrySet(toUserEntrySet#1).href)
*
* Test Vectors:
* !(this.uri.entryId == null) | (this.uri.type == null & this.uri.entryId == null): {1}, {0}
* !(this.uri.type == null) & this.uri.entryId == null: {0}, {1}
* this.uri.entryId: Inverse{null}, Addr_Set{null}
*/
53 if (getUri().isCollection()) {
54 return getCollection();
55 } else if (getUri().isEntry()) {
56 return getEntry();
57 } else {
58 throw new BadRequestException("ERROR: Unknown GET URI type");
59 }
60 }
61
62 public EntrySet processPost(Reader r) throws HandlerException {
/*
P/P * Method: EntrySet processPost(Reader)
*
* Preconditions:
* this.uri != null
* this.uri.entryId == null
* (soft) this.uri.type != null
*
* Postconditions:
* java.lang.StringBuilder:toString(...)._tainted == 0
* init'ed(return_value)
* new UserEntrySet(toUserEntrySet#1) num objects == undefined
* new UserEntrySet(toUserEntrySet#1) num objects == 0, if init'ed
* new UserEntrySet(toUserEntrySet#1).entries == undefined
* new UserEntrySet(toUserEntrySet#1).entries == null
* new UserEntrySet(toUserEntrySet#1).href == new UserEntrySet(toUserEntrySet#1).entries
*/
63 if (getUri().isCollection()) {
64 return postCollection(r);
65 } else {
66 throw new BadRequestException("ERROR: Unknown POST URI type");
67 }
68 }
69
70 public EntrySet processPut(Reader r) throws HandlerException {
/*
P/P * Method: EntrySet processPut(Reader)
*
* Preconditions:
* this.uri != null
* init'ed(this.uri.entryId)
* (soft) this.uri.type != null
*
* Postconditions:
* java.lang.StringBuilder:toString(...)._tainted == 0
* init'ed(return_value)
* new UserEntrySet(toUserEntrySet#1) num objects == undefined
* new UserEntrySet(toUserEntrySet#1) num objects == 0, if init'ed
* new UserEntrySet(toUserEntrySet#1).entries == undefined
* new UserEntrySet(toUserEntrySet#1).entries == null
* new UserEntrySet(toUserEntrySet#1).href == new UserEntrySet(toUserEntrySet#1).entries
*
* Test Vectors:
* !(this.uri.entryId == null) | (this.uri.type == null & this.uri.entryId == null): {1}, {0}
* !(this.uri.type == null) & this.uri.entryId == null: {0}, {1}
* this.uri.entryId: Inverse{null}, Addr_Set{null}
*/
71 if (getUri().isCollection()) {
72 return putCollection(r);
73 } else if (getUri().isEntry()) {
74 return putEntry(r);
75 } else {
76 throw new BadRequestException("ERROR: Unknown PUT URI type");
77 }
78 }
79
80 public EntrySet processDelete() throws HandlerException {
/*
P/P * Method: EntrySet processDelete()
*
* Preconditions:
* this.roller != null
* this.uri != null
* this.uri.entryId != null
* init'ed(this.urlPrefix)
* init'ed(this.userName)
* (soft) this.uri.type != null
*
* Postconditions:
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* return_value == &new UserEntrySet(toUserEntrySet#1)
* new UserEntrySet(toUserEntrySet#1) num objects == 1
* init'ed(new UserEntrySet(toUserEntrySet#1).entries)
* new UserEntrySet(toUserEntrySet#1).href == &java.lang.StringBuilder:toString(...)
*/
81 if (getUri().isEntry()) {
82 return deleteEntry();
83 } else {
84 throw new BadRequestException("ERROR: Unknown DELETE URI type");
85 }
86 }
87
88 private EntrySet getCollection() throws HandlerException {
89 try {
/*
P/P * Method: EntrySet getCollection()
*
* Preconditions:
* this.roller != null
* init'ed(this.urlPrefix)
*
* Presumptions:
* init'ed(java.util.Collections.EMPTY_LIST)
* java.util.List:toArray(...).length@94 <= 232-1
* java.util.List:toArray(...)@94 != null
* org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@90 != null
*
* Postconditions:
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* return_value == &new UserEntrySet(toUserEntrySet#1)
* new UserEntrySet(toUserEntrySet#1) num objects == 1
* init'ed(new UserEntrySet(toUserEntrySet#1).entries)
* new UserEntrySet(toUserEntrySet#1).href == &java.lang.StringBuilder:toString(...)
*
* Test Vectors:
* org.apache.roller.weblogger.business.UserManager:getUsers(...)@90: Inverse{null}, Addr_Set{null}
*/
90 List users = getRoller().getUserManager().getUsers(null, null, null, null, 0, -1);
91 if (users == null) {
92 users = java.util.Collections.EMPTY_LIST;
93 }
94 EntrySet es = toUserEntrySet((User[])users.toArray(new User[0]));
95
96 return es;
97 } catch (WebloggerException re) {
98 throw new InternalException("ERROR: Could not get user collection", re);
99 }
100 }
101
102 private EntrySet getEntry() throws HandlerException {
/*
P/P * Method: EntrySet getEntry()
*
* Preconditions:
* this.roller != null
* this.uri != null
* init'ed(this.uri.entryId)
* init'ed(this.urlPrefix)
*
* Postconditions:
* java.lang.StringBuilder:toString(...)._tainted == this.urlPrefix._tainted
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* return_value == &new UserEntrySet(toUserEntrySet#1)
* new UserEntrySet(toUserEntrySet#1) num objects == 1
* init'ed(new UserEntrySet(toUserEntrySet#1).entries)
* new UserEntrySet(toUserEntrySet#1).href == &java.lang.StringBuilder:toString(...)
*/
103 User ud = getUserData(getUri().getEntryId());
104 User[] uds = new User[] { ud };
105
106 EntrySet c = toUserEntrySet(uds);
107 return c;
108 }
109
110 private EntrySet postCollection(Reader r) throws HandlerException {
/*
P/P * Method: EntrySet postCollection(Reader)
*
* Preconditions:
* this.roller != null
* init'ed(this.urlPrefix)
*
* Presumptions:
* c.entries@111 != null
* c.entries@112 != null
* java.util.List:size(...)@82 != 0
*
* Postconditions:
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* return_value == &new UserEntrySet(toUserEntrySet#1)
* new MemberEntrySet(getEntrySet#1*) num objects == 0
* new MemberEntrySet(getEntrySet#1*)._tainted == 0
* new UserEntrySet(getEntrySet#1*)._tainted == 0
* new WeblogEntrySet(getEntrySet#1*)._tainted == 0
* init'ed(new MemberEntrySet(getEntrySet#1*).entries)
* init'ed(new MemberEntrySet(getEntrySet#1*).href)
* new UserEntrySet(getEntrySet#1*) num objects == 1
* init'ed(new UserEntrySet(getEntrySet#1*).entries)
* ...
*/
111 EntrySet c = getEntrySet(r);
+ 112 if (c.isEmpty()) {
113 throw new BadRequestException("ERROR: No entries");
114 }
115 c = createUsers((UserEntrySet)c);
116
117 return c;
118 }
119
120 private EntrySet putCollection(Reader r) throws HandlerException {
/*
P/P * Method: EntrySet putCollection(Reader)
*
* Preconditions:
* init'ed(this.urlPrefix)
* (soft) this.roller != null
*
* Presumptions:
* c.entries@121 != null
* c.entries@122 != null
* java.util.List:size(...)@82 != 0
*
* Postconditions:
* java.lang.StringBuilder:toString(...)._tainted == this.urlPrefix._tainted
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* return_value == &new UserEntrySet(toUserEntrySet#1)
* new MemberEntrySet(getEntrySet#1*) num objects == 0
* init'ed(new MemberEntrySet(getEntrySet#1*).entries)
* init'ed(new MemberEntrySet(getEntrySet#1*).href)
* new UserEntrySet(getEntrySet#1*) num objects == 1
* init'ed(new UserEntrySet(getEntrySet#1*).entries)
* init'ed(new UserEntrySet(getEntrySet#1*).href)
* new UserEntrySet(toUserEntrySet#1) num objects == 1
* ...
*/
121 EntrySet c = getEntrySet(r);
+ 122 if (c.isEmpty()) {
123 throw new BadRequestException("ERROR: No entries");
124 }
125 c = updateUsers((UserEntrySet)c);
126
127 return c;
128 }
129
130 private EntrySet putEntry(Reader r) throws HandlerException {
/*
P/P * Method: EntrySet putEntry(Reader)
*
* Preconditions:
* this.uri != null
* init'ed(this.uri.entryId)
* init'ed(this.urlPrefix)
* (soft) this.roller != null
*
* Presumptions:
* c.entries@131 != null
* c.entries@132 != null
* c.entries@135 != null
* c.entries@139 != null
* getEntries(...).length@135 <= 1
* ...
*
* Postconditions:
* java.lang.StringBuilder:toString(...)._tainted == this.urlPrefix._tainted
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* return_value == &new UserEntrySet(toUserEntrySet#1)
* new MemberEntrySet(getEntrySet#1*) num objects == 0
* init'ed(new MemberEntrySet(getEntrySet#1*).entries)
* init'ed(new MemberEntrySet(getEntrySet#1*).href)
* new UserEntrySet(getEntrySet#1*) num objects == 1
* init'ed(new UserEntrySet(getEntrySet#1*).entries)
* init'ed(new UserEntrySet(getEntrySet#1*).href)
* new UserEntrySet(toUserEntrySet#1) num objects == 1
* ...
*/
131 EntrySet c = getEntrySet(r);
+ 132 if (c.isEmpty()) {
133 throw new BadRequestException("ERROR: No entries");
134 }
135 if (c.getEntries().length > 1) {
136 throw new BadRequestException("ERROR: Cannot put >1 entries per request");
137 }
138
139 UserEntry entry = (UserEntry)c.getEntries()[0];
+ 140 if (entry.getName() != null && !entry.getName().equals(getUri().getEntryId())) {
141 throw new BadRequestException("ERROR: Content name does not match URI name");
142 }
+ 143 entry.setName(getUri().getEntryId());
144 c = updateUsers((UserEntrySet)c);
145
146 return c;
147 }
148
149 private UserEntrySet createUsers(UserEntrySet c) throws HandlerException {
150 try {
/*
P/P * Method: UserEntrySet createUsers(UserEntrySet)
*
* Preconditions:
* c != null
* c.entries != null
* this.roller != null
* init'ed(this.urlPrefix)
*
* Presumptions:
* getEntries(...).length@154 <= 232-1
* getEntries(...).length@155 >= 1
* getEntries(...).length@154 <= getEntries(...).length@155
* java.util.List:toArray(...).length@166 <= 232-1
* java.util.List:toArray(...)@166 != null
* ...
*
* Postconditions:
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* return_value == &new UserEntrySet(toUserEntrySet#1)
* new UserEntrySet(toUserEntrySet#1) num objects == 1
* init'ed(new UserEntrySet(toUserEntrySet#1).entries)
* new UserEntrySet(toUserEntrySet#1).href == &java.lang.StringBuilder:toString(...)
*
* Test Vectors:
* getEntries(...).length@154: {1..232-1}, {0}
*/
151 UserManager mgr = getRoller().getUserManager();
152
153 List userDatas = new ArrayList();
154 for (int i = 0; i < c.getEntries().length; i++) {
155 UserEntry entry = (UserEntry)c.getEntries()[i];
+ 156 if (entry.getDateCreated() == null) {
157 // if no creation date supplied, add it
+ 158 entry.setDateCreated(new Date());
159 }
+ 160 User ud = toUserData(entry);
161 mgr.addUser(ud);
162 getRoller().flush();
163 CacheManager.invalidate(ud);
164 userDatas.add(ud);
165 }
166 return toUserEntrySet((User[])userDatas.toArray(new User[0]));
167 } catch (WebloggerException re) {
168 throw new InternalException("ERROR: Could not create users: " + c, re);
169 }
170 }
171
172 private UserEntrySet updateUsers(UserEntrySet c) throws HandlerException {
/*
P/P * Method: UserEntrySet updateUsers(UserEntrySet)
*
* Preconditions:
* c != null
* c.entries != null
* init'ed(this.urlPrefix)
* (soft) this.roller != null
*
* Presumptions:
* getEntries(...).length@174 <= 232-1
* getEntries(...).length@175 >= 1
* getEntries(...).length@174 <= getEntries(...).length@175
* java.util.List:toArray(...).length@180 <= 232-1
* java.util.List:toArray(...)@180 != null
* ...
*
* Postconditions:
* java.lang.StringBuilder:toString(...)._tainted == this.urlPrefix._tainted
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* return_value == &new UserEntrySet(toUserEntrySet#1)
* new UserEntrySet(toUserEntrySet#1) num objects == 1
* init'ed(new UserEntrySet(toUserEntrySet#1).entries)
* new UserEntrySet(toUserEntrySet#1).href == &java.lang.StringBuilder:toString(...)
*/
173 List userDatas = new ArrayList();
174 for (int i = 0; i < c.getEntries().length; i++) {
175 UserEntry entry = (UserEntry)c.getEntries()[i];
+ 176 User ud = getUserData(entry.getName());
+ 177 updateUserData(ud, entry);
178 userDatas.add(ud);
179 }
180 return toUserEntrySet((User[])userDatas.toArray(new User[0]));
181 }
182
183 private void updateUserData(User ud, UserEntry entry) throws HandlerException {
184 // user name cannot be updated
185
/*
P/P * Method: void updateUserData(User, UserEntry)
*
* Preconditions:
* entry != null
* init'ed(entry.emailAddress)
* init'ed(entry.enabled)
* init'ed(entry.fullName)
* init'ed(entry.locale)
* init'ed(entry.password)
* init'ed(entry.screenName)
* init'ed(entry.timezone)
* this.roller != null
* (soft) ud != null
*
* Presumptions:
* org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@209 != null
*
* Test Vectors:
* entry.emailAddress: Addr_Set{null}, Inverse{null}
* entry.enabled: Addr_Set{null}, Inverse{null}
* entry.fullName: Addr_Set{null}, Inverse{null}
* entry.locale: Addr_Set{null}, Inverse{null}
* entry.password: Addr_Set{null}, Inverse{null}
* entry.screenName: Addr_Set{null}, Inverse{null}
* entry.timezone: Addr_Set{null}, Inverse{null}
*/
186 if (entry.getScreenName() != null) {
187 ud.setScreenName(entry.getScreenName());
188 }
189 if (entry.getFullName() != null) {
190 ud.setFullName(entry.getFullName());
191 }
192 if (entry.getPassword() != null) {
193 ud.setPassword(entry.getPassword());
194 }
195 if (entry.getLocale() != null) {
196 ud.setLocale(entry.getLocale().toString());
197 }
198 if (entry.getTimezone() != null) {
199 ud.setTimeZone(entry.getTimezone().getID());
200 }
201 if (entry.getEmailAddress() != null) {
202 ud.setEmailAddress(entry.getEmailAddress());
203 }
204 if (entry.getEnabled() != null) {
205 ud.setEnabled(entry.getEnabled());
206 }
207
208 try {
209 UserManager mgr = getRoller().getUserManager();
210 mgr.saveUser(ud);
211 getRoller().flush();
212 CacheManager.invalidate(ud);
213 } catch (WebloggerException re) {
214 throw new InternalException("ERROR: could not update user data", re);
215 }
216 }
217
218 private EntrySet deleteEntry() throws HandlerException {
/*
P/P * Method: EntrySet deleteEntry()
*
* Preconditions:
* this.roller != null
* this.uri != null
* init'ed(this.uri.entryId)
* init'ed(this.urlPrefix)
* init'ed(this.userName)
*
* Presumptions:
* java.lang.String:equals(...)@222 == 0
* org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@229 != null
* org.apache.roller.weblogger.pojos.User:getUserName(...)@222 != null
*
* Postconditions:
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* return_value == &new UserEntrySet(toUserEntrySet#1)
* new UserEntrySet(toUserEntrySet#1) num objects == 1
* init'ed(new UserEntrySet(toUserEntrySet#1).entries)
* new UserEntrySet(toUserEntrySet#1).href == &java.lang.StringBuilder:toString(...)
*/
219 User ud = getUserData(getUri().getEntryId());
220
221 // don't allow deletion of the currently authenticated user
222 if (ud.getUserName().equals(getUserName())) {
223 throw new NotAllowedException("ERROR: Can't delete authenticated user: " + getUserName());
224 }
225
226 try {
227 CacheManager.invalidate(ud);
228
229 getRoller().getUserManager().removeUser(ud);
230 getRoller().flush();
231
232 } catch (WebloggerException re) {
233 throw new InternalException("ERROR: could not delete user data", re);
234 }
235
236 // return empty set, entry was deleted
237 User[] uds = new User[0];
238 EntrySet es = toUserEntrySet(uds);
239 return es;
240 }
241
242 private UserEntry toUserEntry(User ud) {
/*
P/P * Method: UserEntry toUserEntry(User)
*
* Preconditions:
* init'ed(this.urlPrefix)
* ud != null
*
* Presumptions:
* org.apache.roller.weblogger.pojos.User:getLocale(...)@253 == null
*
* Postconditions:
* java.lang.StringBuilder:toString(...)._tainted == this.urlPrefix._tainted
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* return_value == &new UserEntry(toUserEntry#1)
* new Locale(LocaleString#1) num objects == 0
* new Locale(LocaleString#2) num objects == 0
* new Locale(LocaleString#3) num objects == 0
* new UserEntry(toUserEntry#1) num objects == 1
* init'ed(return_value.dateCreated)
* init'ed(return_value.emailAddress)
* init'ed(return_value.enabled)
* ...
*/
243 if (ud == null) {
244 throw new NullPointerException("ERROR: Null user data not allowed");
245 }
246
247 // password field is not set
248 // we never return password field
249
250 UserEntry ue = new UserEntry(ud.getUserName(), getUrlPrefix());
251 ue.setScreenName(ud.getScreenName());
252 ue.setFullName(ud.getFullName());
253 ue.setLocale(ud.getLocale());
254 ue.setTimezone(ud.getTimeZone());
255 ue.setEmailAddress(ud.getEmailAddress());
256 ue.setDateCreated(ud.getDateCreated());
257 ue.setEnabled(ud.getEnabled());
258
259 return ue;
260 }
261
262 private UserEntrySet toUserEntrySet(User[] uds) {
/*
P/P * Method: UserEntrySet toUserEntrySet(User[])
*
* Preconditions:
* init'ed(this.urlPrefix)
* uds != null
* uds.length <= 232-1
* (soft) uds[...] != null
*
* Postconditions:
* java.lang.StringBuilder:toString(...)._tainted == this.urlPrefix._tainted
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* return_value == &new UserEntrySet(toUserEntrySet#1)
* new UserEntrySet(toUserEntrySet#1) num objects == 1
* init'ed(return_value.entries)
* return_value.href == &java.lang.StringBuilder:toString(...)
*/
263 if (uds == null) {
264 throw new NullPointerException("ERROR: Null user data not allowed");
265 }
266 UserEntrySet ues = new UserEntrySet(getUrlPrefix());
267
268 List entries = new ArrayList();
269 for (int i = 0; i < uds.length; i++) {
270 User ud = uds[i];
+ 271 Entry entry = toUserEntry(ud);
272 entries.add(entry);
273 }
274 ues.setEntries((Entry[])entries.toArray(new Entry[0]));
275
276 return ues;
277 }
278
279 /**
280 * This object, as a Roller User object.
281 */
282 public User toUserData(UserEntry ue) {
/*
P/P * Method: User toUserData(UserEntry)
*
* Preconditions:
* ue != null
* init'ed(ue.dateCreated)
* init'ed(ue.emailAddress)
* init'ed(ue.enabled)
* init'ed(ue.fullName)
* init'ed(ue.locale)
* init'ed(ue.name)
* init'ed(ue.password)
* init'ed(ue.screenName)
* init'ed(ue.timezone)
*
* Postconditions:
* return_value == &new User(toUserData#1)
* new User(toUserData#1) num objects == 1
*
* Test Vectors:
* ue.dateCreated: Addr_Set{null}, Inverse{null}
* ue.emailAddress: Addr_Set{null}, Inverse{null}
* ue.enabled: Addr_Set{null}, Inverse{null}
* ue.fullName: Addr_Set{null}, Inverse{null}
* ue.locale: Addr_Set{null}, Inverse{null}
* ue.password: Addr_Set{null}, Inverse{null}
* ue.screenName: Addr_Set{null}, Inverse{null}
* ue.timezone: Addr_Set{null}, Inverse{null}
*/
283 if (ue == null) {
284 throw new NullPointerException("ERROR: Null user entry not allowed");
285 }
286
287 //
288 // if any of the entry fields are null, the set below amounts
289 // to a no-op.
290 //
291 User ud = new User();
292 ud.setUserName(ue.getName());
293
294 if (ue.getScreenName() != null) {
295 ud.setScreenName(ue.getScreenName());
296 }
297 if (ue.getFullName() != null) {
298 ud.setFullName(ue.getFullName());
299 }
300 if (ue.getPassword() != null) {
301 ud.setPassword(ue.getPassword());
302 }
303 if (ue.getEmailAddress() != null) {
304 ud.setEmailAddress(ue.getEmailAddress());
305 }
306 if (ue.getLocale() != null) {
307 ud.setLocale(ue.getLocale().toString());
308 }
309 if (ue.getTimezone() != null) {
310 ud.setTimeZone(ue.getTimezone().getID());
311 }
312 if (ue.getDateCreated() != null) {
313 ud.setDateCreated(ue.getDateCreated());
314 }
315 if (ue.getEnabled() != null) {
316 ud.setEnabled(ue.getEnabled());
317 }
318 return ud;
319 }
320 }
321
SofCheck Inspector Build Version : 2.18479
| RollerUserHandler.java |
2009-Jan-02 14:25:14 |
| RollerUserHandler.class |
2009-Sep-04 03:12:46 |