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