1   /**
2    * Copyright (c) 2000-2007 Liferay, Inc. All rights reserved.
3    *
4    * Permission is hereby granted, free of charge, to any person obtaining a copy
5    * of this software and associated documentation files (the "Software"), to deal
6    * in the Software without restriction, including without limitation the rights
7    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8    * copies of the Software, and to permit persons to whom the Software is
9    * furnished to do so, subject to the following conditions:
10   *
11   * The above copyright notice and this permission notice shall be included in
12   * all copies or substantial portions of the Software.
13   *
14   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20   * SOFTWARE.
21   */
22  
23  package com.liferay.portlet;
24  
25  import com.liferay.portal.PortalException;
26  import com.liferay.portal.SystemException;
27  import com.liferay.portal.kernel.util.StringPool;
28  import com.liferay.portal.model.Address;
29  import com.liferay.portal.model.User;
30  
31  /**
32   * <a href="UserAttributes.java.html"><b><i>View Source</i></b></a>
33   *
34   * @author Brian Wing Shun Chan
35   *
36   */
37  public class UserAttributes {
38  
39      // Mandatory Liferay attributes
40  
41      public static final String LIFERAY_COMPANY_ID = "liferay.company.id";
42  
43      public static final String LIFERAY_USER_ID = "liferay.user.id";
44  
45      public static final String USER_NAME_FULL = "user.name.full";
46  
47      // See page 119 of the JSR 168 spec
48  
49      public static final String USER_BDATE = "user.bdate";
50  
51      public static final String USER_GENDER = "user.gender";
52  
53      public static final String USER_EMPLOYER = "user.employer";
54  
55      public static final String USER_DEPARTMENT = "user.department";
56  
57      public static final String USER_JOBTITLE = "user.jobtitle";
58  
59      public static final String USER_NAME_PREFIX = "user.name.prefix";
60  
61      public static final String USER_NAME_GIVEN = "user.name.given";
62  
63      public static final String USER_NAME_FAMILY = "user.name.family";
64  
65      public static final String USER_NAME_MIDDLE = "user.name.middle";
66  
67      public static final String USER_NAME_SUFFIX = "user.name.suffix";
68  
69      public static final String USER_NAME_NICKNAME = "user.name.nickName";
70  
71      public static final String USER_HOME_INFO_POSTAL_NAME = "user.home-info.postal.name";
72  
73      public static final String USER_HOME_INFO_POSTAL_STREET = "user.home-info.postal.street";
74  
75      public static final String USER_HOME_INFO_POSTAL_CITY = "user.home-info.postal.city";
76  
77      public static final String USER_HOME_INFO_POSTAL_STATEPROV = "user.home-info.postal.stateprov";
78  
79      public static final String USER_HOME_INFO_POSTAL_POSTALCODE = "user.home-info.postal.postalcode";
80  
81      public static final String USER_HOME_INFO_POSTAL_COUNTRY = "user.home-info.postal.country";
82  
83      public static final String USER_HOME_INFO_POSTAL_ORGANIZATION = "user.home-info.postal.organization";
84  
85      public static final String USER_HOME_INFO_TELECOM_TELEPHONE_INTCODE = "user.home-info.telecom.telephone.intcode";
86  
87      public static final String USER_HOME_INFO_TELECOM_TELEPHONE_LOCCODE = "user.home-info.telecom.telephone.loccode";
88  
89      public static final String USER_HOME_INFO_TELECOM_TELEPHONE_NUMBER = "user.home-info.telecom.telephone.number";
90  
91      public static final String USER_HOME_INFO_TELECOM_TELEPHONE_EXT = "user.home-info.telecom.telephone.ext";
92  
93      public static final String USER_HOME_INFO_TELECOM_TELEPHONE_COMMENT = "user.home-info.telecom.telephone.comment";
94  
95      public static final String USER_HOME_INFO_TELECOM_FAX_INTCODE = "user.home-info.telecom.fax.intcode";
96  
97      public static final String USER_HOME_INFO_TELECOM_FAX_LOCCODE = "user.home-info.telecom.fax.loccode";
98  
99      public static final String USER_HOME_INFO_TELECOM_FAX_NUMBER = "user.home-info.telecom.fax.number";
100 
101     public static final String USER_HOME_INFO_TELECOM_FAX_EXT = "user.home-info.telecom.fax.ext";
102 
103     public static final String USER_HOME_INFO_TELECOM_FAX_COMMENT = "user.home-info.telecom.fax.comment";
104 
105     public static final String USER_HOME_INFO_TELECOM_MOBILE_INTCODE = "user.home-info.telecom.mobile.intcode";
106 
107     public static final String USER_HOME_INFO_TELECOM_MOBILE_LOCCODE = "user.home-info.telecom.mobile.loccode";
108 
109     public static final String USER_HOME_INFO_TELECOM_MOBILE_NUMBER = "user.home-info.telecom.mobile.number";
110 
111     public static final String USER_HOME_INFO_TELECOM_MOBILE_EXT = "user.home-info.telecom.mobile.ext";
112 
113     public static final String USER_HOME_INFO_TELECOM_MOBILE_COMMENT = "user.home-info.telecom.mobile.comment";
114 
115     public static final String USER_HOME_INFO_TELECOM_PAGER_INTCODE = "user.home-info.telecom.pager.intcode";
116 
117     public static final String USER_HOME_INFO_TELECOM_PAGER_LOCCODE = "user.home-info.telecom.pager.loccode";
118 
119     public static final String USER_HOME_INFO_TELECOM_PAGER_NUMBER = "user.home-info.telecom.pager.number";
120 
121     public static final String USER_HOME_INFO_TELECOM_PAGER_EXT = "user.home-info.telecom.pager.ext";
122 
123     public static final String USER_HOME_INFO_TELECOM_PAGER_COMMENT = "user.home-info.telecom.pager.comment";
124 
125     public static final String USER_HOME_INFO_ONLINE_EMAIL = "user.home-info.online.email";
126 
127     public static final String USER_HOME_INFO_ONLINE_URI = "user.home-info.online.uri";
128 
129     public static final String USER_BUSINESS_INFO_POSTAL_NAME = "user.business-info.postal.name";
130 
131     public static final String USER_BUSINESS_INFO_POSTAL_STREET = "user.business-info.postal.street";
132 
133     public static final String USER_BUSINESS_INFO_POSTAL_CITY = "user.business-info.postal.city";
134 
135     public static final String USER_BUSINESS_INFO_POSTAL_STATEPROV = "user.business-info.postal.stateprov";
136 
137     public static final String USER_BUSINESS_INFO_POSTAL_POSTALCODE = "user.business-info.postal.postalcode";
138 
139     public static final String USER_BUSINESS_INFO_POSTAL_COUNTRY = "user.business-info.postal.country";
140 
141     public static final String USER_BUSINESS_INFO_POSTAL_ORGANIZATION = "user.business-info.postal.organization";
142 
143     public static final String USER_BUSINESS_INFO_TELECOM_TELEPHONE_INTCODE = "user.business-info.telecom.telephone.intcode";
144 
145     public static final String USER_BUSINESS_INFO_TELECOM_TELEPHONE_LOCCODE = "user.business-info.telecom.telephone.loccode";
146 
147     public static final String USER_BUSINESS_INFO_TELECOM_TELEPHONE_NUMBER = "user.business-info.telecom.telephone.number";
148 
149     public static final String USER_BUSINESS_INFO_TELECOM_TELEPHONE_EXT = "user.business-info.telecom.telephone.ext";
150 
151     public static final String USER_BUSINESS_INFO_TELECOM_TELEPHONE_COMMENT = "user.business-info.telecom.telephone.comment";
152 
153     public static final String USER_BUSINESS_INFO_TELECOM_FAX_INTCODE = "user.business-info.telecom.fax.intcode";
154 
155     public static final String USER_BUSINESS_INFO_TELECOM_FAX_LOCCODE = "user.business-info.telecom.fax.loccode";
156 
157     public static final String USER_BUSINESS_INFO_TELECOM_FAX_NUMBER = "user.business-info.telecom.fax.number";
158 
159     public static final String USER_BUSINESS_INFO_TELECOM_FAX_EXT = "user.business-info.telecom.fax.ext";
160 
161     public static final String USER_BUSINESS_INFO_TELECOM_FAX_COMMENT = "user.business-info.telecom.fax.comment";
162 
163     public static final String USER_BUSINESS_INFO_TELECOM_MOBILE_INTCODE = "user.business-info.telecom.mobile.intcode";
164 
165     public static final String USER_BUSINESS_INFO_TELECOM_MOBILE_LOCCODE = "user.business-info.telecom.mobile.loccode";
166 
167     public static final String USER_BUSINESS_INFO_TELECOM_MOBILE_NUMBER = "user.business-info.telecom.mobile.number";
168 
169     public static final String USER_BUSINESS_INFO_TELECOM_MOBILE_EXT = "user.business-info.telecom.mobile.ext";
170 
171     public static final String USER_BUSINESS_INFO_TELECOM_MOBILE_COMMENT = "user.business-info.telecom.mobile.comment";
172 
173     public static final String USER_BUSINESS_INFO_TELECOM_PAGER_INTCODE = "user.business-info.telecom.pager.intcode";
174 
175     public static final String USER_BUSINESS_INFO_TELECOM_PAGER_LOCCODE = "user.business-info.telecom.pager.loccode";
176 
177     public static final String USER_BUSINESS_INFO_TELECOM_PAGER_NUMBER = "user.business-info.telecom.pager.number";
178 
179     public static final String USER_BUSINESS_INFO_TELECOM_PAGER_EXT = "user.business-info.telecom.pager.ext";
180 
181     public static final String USER_BUSINESS_INFO_TELECOM_PAGER_COMMENT = "user.business-info.telecom.pager.comment";
182 
183     public static final String USER_BUSINESS_INFO_ONLINE_EMAIL = "user.business-info.online.email";
184 
185     public static final String USER_BUSINESS_INFO_ONLINE_URI = "user.business-info.online.uri";
186 
187     public UserAttributes(User user) throws PortalException, SystemException {
188         _user = user;
189 
190         /*List addresses = user.getAddresses();
191 
192         for (int i = 0; i < addresses.size(); i++) {
193             Address address = (Address)addresses.get(i);
194 
195             if (address.getDescription().equalsIgnoreCase("home")) {
196                 _homeAddress = address;
197             }
198             else if (address.getDescription().equalsIgnoreCase("business")) {
199                 _bizAddress = address;
200             }
201         }*/
202     }
203 
204     public String getValue(String name) {
205         if (name == null) {
206             return null;
207         }
208 
209         if (name.equals(LIFERAY_COMPANY_ID)) {
210             return String.valueOf(_user.getCompanyId());
211         }
212         else if (name.equals(LIFERAY_USER_ID)) {
213             return String.valueOf(_user.getUserId());
214         }
215         else if (name.equals(USER_NAME_FULL)) {
216             return _user.getFullName();
217         }
218         else if (name.equals(USER_BDATE)) {
219             return _user.getBirthday().toString();
220         }
221         else if (name.equals(USER_GENDER)) {
222             return _user.isMale() ? "male" : "female";
223         }
224         else if (name.equals(USER_EMPLOYER)) {
225             return StringPool.BLANK;
226         }
227         else if (name.equals(USER_DEPARTMENT)) {
228             return StringPool.BLANK;
229         }
230         else if (name.equals(USER_JOBTITLE)) {
231             return StringPool.BLANK;
232         }
233         else if (name.equals(USER_NAME_PREFIX)) {
234             return StringPool.BLANK;
235         }
236         else if (name.equals(USER_NAME_GIVEN)) {
237             return _user.getFirstName();
238         }
239         else if (name.equals(USER_NAME_FAMILY)) {
240             return _user.getLastName();
241         }
242         else if (name.equals(USER_NAME_MIDDLE)) {
243             return _user.getMiddleName();
244         }
245         else if (name.equals(USER_NAME_SUFFIX)) {
246             return StringPool.BLANK;
247         }
248         else if (name.equals(USER_NAME_NICKNAME)) {
249             return _user.getScreenName();
250         }
251         else if (name.equals(USER_HOME_INFO_POSTAL_NAME)) {
252             return StringPool.BLANK;
253         }
254         else if (name.equals(USER_HOME_INFO_POSTAL_STREET)) {
255             if (_homeAddress != null) {
256                 return _homeAddress.getStreet1();
257             }
258             else {
259                 return StringPool.BLANK;
260             }
261         }
262         else if (name.equals(USER_HOME_INFO_POSTAL_CITY)) {
263             if (_homeAddress != null) {
264                 return _homeAddress.getCity();
265             }
266             else {
267                 return StringPool.BLANK;
268             }
269         }
270         else if (name.equals(USER_HOME_INFO_POSTAL_STATEPROV)) {
271             return StringPool.BLANK;
272         }
273         else if (name.equals(USER_HOME_INFO_POSTAL_POSTALCODE)) {
274             if (_homeAddress != null) {
275                 return _homeAddress.getZip();
276             }
277             else {
278                 return StringPool.BLANK;
279             }
280         }
281         else if (name.equals(USER_HOME_INFO_POSTAL_COUNTRY)) {
282             return StringPool.BLANK;
283         }
284         else if (name.equals(USER_HOME_INFO_POSTAL_ORGANIZATION)) {
285             return StringPool.BLANK;
286         }
287         else if (name.equals(USER_HOME_INFO_TELECOM_TELEPHONE_INTCODE)) {
288             return StringPool.BLANK;
289         }
290         else if (name.equals(USER_HOME_INFO_TELECOM_TELEPHONE_LOCCODE)) {
291             return StringPool.BLANK;
292         }
293         else if (name.equals(USER_HOME_INFO_TELECOM_TELEPHONE_NUMBER)) {
294             return StringPool.BLANK;
295         }
296         else if (name.equals(USER_HOME_INFO_TELECOM_TELEPHONE_EXT)) {
297             return StringPool.BLANK;
298         }
299         else if (name.equals(USER_HOME_INFO_TELECOM_TELEPHONE_COMMENT)) {
300             return StringPool.BLANK;
301         }
302         else if (name.equals(USER_HOME_INFO_TELECOM_FAX_INTCODE)) {
303             return StringPool.BLANK;
304         }
305         else if (name.equals(USER_HOME_INFO_TELECOM_FAX_LOCCODE)) {
306             return StringPool.BLANK;
307         }
308         else if (name.equals(USER_HOME_INFO_TELECOM_FAX_NUMBER)) {
309             return StringPool.BLANK;
310         }
311         else if (name.equals(USER_HOME_INFO_TELECOM_FAX_EXT)) {
312             return StringPool.BLANK;
313         }
314         else if (name.equals(USER_HOME_INFO_TELECOM_FAX_COMMENT)) {
315             return StringPool.BLANK;
316         }
317         else if (name.equals(USER_HOME_INFO_TELECOM_MOBILE_INTCODE)) {
318             return StringPool.BLANK;
319         }
320         else if (name.equals(USER_HOME_INFO_TELECOM_MOBILE_LOCCODE)) {
321             return StringPool.BLANK;
322         }
323         else if (name.equals(USER_HOME_INFO_TELECOM_MOBILE_NUMBER)) {
324             return StringPool.BLANK;
325         }
326         else if (name.equals(USER_HOME_INFO_TELECOM_MOBILE_EXT)) {
327             return StringPool.BLANK;
328         }
329         else if (name.equals(USER_HOME_INFO_TELECOM_MOBILE_COMMENT)) {
330             return StringPool.BLANK;
331         }
332         else if (name.equals(USER_HOME_INFO_TELECOM_PAGER_INTCODE)) {
333             return StringPool.BLANK;
334         }
335         else if (name.equals(USER_HOME_INFO_TELECOM_PAGER_LOCCODE)) {
336             return StringPool.BLANK;
337         }
338         else if (name.equals(USER_HOME_INFO_TELECOM_PAGER_NUMBER)) {
339             return StringPool.BLANK;
340         }
341         else if (name.equals(USER_HOME_INFO_TELECOM_PAGER_EXT)) {
342             return StringPool.BLANK;
343         }
344         else if (name.equals(USER_HOME_INFO_TELECOM_PAGER_COMMENT)) {
345             return StringPool.BLANK;
346         }
347         else if (name.equals(USER_HOME_INFO_ONLINE_EMAIL)) {
348             return _user.getEmailAddress();
349         }
350         else if (name.equals(USER_HOME_INFO_ONLINE_URI)) {
351             return StringPool.BLANK;
352         }
353         else if (name.equals(USER_BUSINESS_INFO_POSTAL_NAME)) {
354             return StringPool.BLANK;
355         }
356         else if (name.equals(USER_BUSINESS_INFO_POSTAL_STREET)) {
357             if (_bizAddress != null) {
358                 return _bizAddress.getStreet1();
359             }
360             else {
361                 return StringPool.BLANK;
362             }
363         }
364         else if (name.equals(USER_BUSINESS_INFO_POSTAL_CITY)) {
365             if (_bizAddress != null) {
366                 return _bizAddress.getCity();
367             }
368             else {
369                 return StringPool.BLANK;
370             }
371         }
372         else if (name.equals(USER_BUSINESS_INFO_POSTAL_STATEPROV)) {
373             return StringPool.BLANK;
374         }
375         else if (name.equals(USER_BUSINESS_INFO_POSTAL_POSTALCODE)) {
376             if (_bizAddress != null) {
377                 return _bizAddress.getZip();
378             }
379             else {
380                 return StringPool.BLANK;
381             }
382         }
383         else if (name.equals(USER_BUSINESS_INFO_POSTAL_COUNTRY)) {
384             return StringPool.BLANK;
385         }
386         else if (name.equals(USER_BUSINESS_INFO_POSTAL_ORGANIZATION)) {
387             return StringPool.BLANK;
388         }
389         else if (name.equals(USER_BUSINESS_INFO_TELECOM_TELEPHONE_INTCODE)) {
390             return StringPool.BLANK;
391         }
392         else if (name.equals(USER_BUSINESS_INFO_TELECOM_TELEPHONE_LOCCODE)) {
393             return StringPool.BLANK;
394         }
395         else if (name.equals(USER_BUSINESS_INFO_TELECOM_TELEPHONE_NUMBER)) {
396             return StringPool.BLANK;
397         }
398         else if (name.equals(USER_BUSINESS_INFO_TELECOM_TELEPHONE_EXT)) {
399             return StringPool.BLANK;
400         }
401         else if (name.equals(USER_BUSINESS_INFO_TELECOM_TELEPHONE_COMMENT)) {
402             return StringPool.BLANK;
403         }
404         else if (name.equals(USER_BUSINESS_INFO_TELECOM_FAX_INTCODE)) {
405             return StringPool.BLANK;
406         }
407         else if (name.equals(USER_BUSINESS_INFO_TELECOM_FAX_LOCCODE)) {
408             return StringPool.BLANK;
409         }
410         else if (name.equals(USER_BUSINESS_INFO_TELECOM_FAX_NUMBER)) {
411             return StringPool.BLANK;
412         }
413         else if (name.equals(USER_BUSINESS_INFO_TELECOM_FAX_EXT)) {
414             return StringPool.BLANK;
415         }
416         else if (name.equals(USER_BUSINESS_INFO_TELECOM_FAX_COMMENT)) {
417             return StringPool.BLANK;
418         }
419         else if (name.equals(USER_BUSINESS_INFO_TELECOM_MOBILE_INTCODE)) {
420             return StringPool.BLANK;
421         }
422         else if (name.equals(USER_BUSINESS_INFO_TELECOM_MOBILE_LOCCODE)) {
423             return StringPool.BLANK;
424         }
425         else if (name.equals(USER_BUSINESS_INFO_TELECOM_MOBILE_NUMBER)) {
426             return StringPool.BLANK;
427         }
428         else if (name.equals(USER_BUSINESS_INFO_TELECOM_MOBILE_EXT)) {
429             return StringPool.BLANK;
430         }
431         else if (name.equals(USER_BUSINESS_INFO_TELECOM_MOBILE_COMMENT)) {
432             return StringPool.BLANK;
433         }
434         else if (name.equals(USER_BUSINESS_INFO_TELECOM_PAGER_INTCODE)) {
435             return StringPool.BLANK;
436         }
437         else if (name.equals(USER_BUSINESS_INFO_TELECOM_PAGER_LOCCODE)) {
438             return StringPool.BLANK;
439         }
440         else if (name.equals(USER_BUSINESS_INFO_TELECOM_PAGER_NUMBER)) {
441             return StringPool.BLANK;
442         }
443         else if (name.equals(USER_BUSINESS_INFO_TELECOM_PAGER_EXT)) {
444             return StringPool.BLANK;
445         }
446         else if (name.equals(USER_BUSINESS_INFO_TELECOM_PAGER_COMMENT)) {
447             return StringPool.BLANK;
448         }
449         else if (name.equals(USER_BUSINESS_INFO_ONLINE_EMAIL)) {
450             return _user.getEmailAddress();
451         }
452         else if (name.equals(USER_BUSINESS_INFO_ONLINE_URI)) {
453             return StringPool.BLANK;
454         }
455         else {
456             return null;
457         }
458     }
459 
460     private User _user;
461     private Address _homeAddress;
462     private Address _bizAddress;
463 
464 }