001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.kernel.portlet;
016    
017    import com.liferay.portal.kernel.exception.PortalException;
018    import com.liferay.portal.kernel.log.Log;
019    import com.liferay.portal.kernel.log.LogFactoryUtil;
020    import com.liferay.portal.kernel.model.Address;
021    import com.liferay.portal.kernel.model.Country;
022    import com.liferay.portal.kernel.model.ListType;
023    import com.liferay.portal.kernel.model.Phone;
024    import com.liferay.portal.kernel.model.Region;
025    import com.liferay.portal.kernel.model.User;
026    import com.liferay.portal.kernel.util.StringPool;
027    
028    import java.util.Calendar;
029    import java.util.Date;
030    import java.util.GregorianCalendar;
031    
032    /**
033     * @author Brian Wing Shun Chan
034     */
035    public class UserAttributes {
036    
037            // Mandatory Liferay attributes
038    
039            public static final String LIFERAY_COMPANY_ID = "liferay.company.id";
040    
041            public static final String LIFERAY_USER_ID = "liferay.user.id";
042    
043            public static final String USER_NAME_FULL = "user.name.full";
044    
045            // See page 249 of the JSR 286 spec
046    
047            public static final String USER_BDATE = "user.bdate";
048    
049            public static final String USER_BDATE_DAY = "user.bdate.ymd.day";
050    
051            public static final String USER_BDATE_FRACTIONSECOND =
052                    "user.bdate.fractionsecond";
053    
054            public static final String USER_BDATE_HOUR = "user.bdate.hms.hour";
055    
056            public static final String USER_BDATE_MINUTE = "user.bdate.hms.minute";
057    
058            public static final String USER_BDATE_MONTH = "user.bdate.ymd.month";
059    
060            public static final String USER_BDATE_SECOND = "user.bdate.hms.second";
061    
062            public static final String USER_BDATE_TIMEZONE = "user.bdate.timezone";
063    
064            public static final String USER_BDATE_YEAR = "user.bdate.ymd.year";
065    
066            public static final String USER_GENDER = "user.gender";
067    
068            public static final String USER_EMPLOYER = "user.employer";
069    
070            public static final String USER_DEPARTMENT = "user.department";
071    
072            public static final String USER_JOBTITLE = "user.jobtitle";
073    
074            public static final String USER_NAME_PREFIX = "user.name.prefix";
075    
076            public static final String USER_NAME_GIVEN = "user.name.given";
077    
078            public static final String USER_NAME_FAMILY = "user.name.family";
079    
080            public static final String USER_NAME_MIDDLE = "user.name.middle";
081    
082            public static final String USER_NAME_SUFFIX = "user.name.suffix";
083    
084            public static final String USER_NAME_NICKNAME = "user.name.nickName";
085    
086            public static final String USER_HOME_INFO_POSTAL_NAME =
087                    "user.home-info.postal.name";
088    
089            public static final String USER_HOME_INFO_POSTAL_STREET =
090                    "user.home-info.postal.street";
091    
092            public static final String USER_HOME_INFO_POSTAL_CITY =
093                    "user.home-info.postal.city";
094    
095            public static final String USER_HOME_INFO_POSTAL_STATEPROV =
096                    "user.home-info.postal.stateprov";
097    
098            public static final String USER_HOME_INFO_POSTAL_POSTALCODE =
099                    "user.home-info.postal.postalcode";
100    
101            public static final String USER_HOME_INFO_POSTAL_COUNTRY =
102                    "user.home-info.postal.country";
103    
104            public static final String USER_HOME_INFO_POSTAL_ORGANIZATION =
105                    "user.home-info.postal.organization";
106    
107            public static final String USER_HOME_INFO_TELECOM_TELEPHONE_INTCODE =
108                    "user.home-info.telecom.telephone.intcode";
109    
110            public static final String USER_HOME_INFO_TELECOM_TELEPHONE_LOCCODE =
111                    "user.home-info.telecom.telephone.loccode";
112    
113            public static final String USER_HOME_INFO_TELECOM_TELEPHONE_NUMBER =
114                    "user.home-info.telecom.telephone.number";
115    
116            public static final String USER_HOME_INFO_TELECOM_TELEPHONE_EXT =
117                    "user.home-info.telecom.telephone.ext";
118    
119            public static final String USER_HOME_INFO_TELECOM_TELEPHONE_COMMENT =
120                    "user.home-info.telecom.telephone.comment";
121    
122            public static final String USER_HOME_INFO_TELECOM_FAX_INTCODE =
123                    "user.home-info.telecom.fax.intcode";
124    
125            public static final String USER_HOME_INFO_TELECOM_FAX_LOCCODE =
126                    "user.home-info.telecom.fax.loccode";
127    
128            public static final String USER_HOME_INFO_TELECOM_FAX_NUMBER =
129                    "user.home-info.telecom.fax.number";
130    
131            public static final String USER_HOME_INFO_TELECOM_FAX_EXT =
132                    "user.home-info.telecom.fax.ext";
133    
134            public static final String USER_HOME_INFO_TELECOM_FAX_COMMENT =
135                    "user.home-info.telecom.fax.comment";
136    
137            public static final String USER_HOME_INFO_TELECOM_MOBILE_INTCODE =
138                    "user.home-info.telecom.mobile.intcode";
139    
140            public static final String USER_HOME_INFO_TELECOM_MOBILE_LOCCODE =
141                    "user.home-info.telecom.mobile.loccode";
142    
143            public static final String USER_HOME_INFO_TELECOM_MOBILE_NUMBER =
144                    "user.home-info.telecom.mobile.number";
145    
146            public static final String USER_HOME_INFO_TELECOM_MOBILE_EXT =
147                    "user.home-info.telecom.mobile.ext";
148    
149            public static final String USER_HOME_INFO_TELECOM_MOBILE_COMMENT =
150                    "user.home-info.telecom.mobile.comment";
151    
152            public static final String USER_HOME_INFO_TELECOM_PAGER_INTCODE =
153                    "user.home-info.telecom.pager.intcode";
154    
155            public static final String USER_HOME_INFO_TELECOM_PAGER_LOCCODE =
156                    "user.home-info.telecom.pager.loccode";
157    
158            public static final String USER_HOME_INFO_TELECOM_PAGER_NUMBER =
159                    "user.home-info.telecom.pager.number";
160    
161            public static final String USER_HOME_INFO_TELECOM_PAGER_EXT =
162                    "user.home-info.telecom.pager.ext";
163    
164            public static final String USER_HOME_INFO_TELECOM_PAGER_COMMENT =
165                    "user.home-info.telecom.pager.comment";
166    
167            public static final String USER_HOME_INFO_ONLINE_EMAIL =
168                    "user.home-info.online.email";
169    
170            public static final String USER_HOME_INFO_ONLINE_URI =
171                    "user.home-info.online.uri";
172    
173            public static final String USER_BUSINESS_INFO_POSTAL_NAME =
174                    "user.business-info.postal.name";
175    
176            public static final String USER_BUSINESS_INFO_POSTAL_STREET =
177                    "user.business-info.postal.street";
178    
179            public static final String USER_BUSINESS_INFO_POSTAL_CITY =
180                    "user.business-info.postal.city";
181    
182            public static final String USER_BUSINESS_INFO_POSTAL_STATEPROV =
183                    "user.business-info.postal.stateprov";
184    
185            public static final String USER_BUSINESS_INFO_POSTAL_POSTALCODE =
186                    "user.business-info.postal.postalcode";
187    
188            public static final String USER_BUSINESS_INFO_POSTAL_COUNTRY =
189                    "user.business-info.postal.country";
190    
191            public static final String USER_BUSINESS_INFO_POSTAL_ORGANIZATION =
192                    "user.business-info.postal.organization";
193    
194            public static final String USER_BUSINESS_INFO_TELECOM_TELEPHONE_INTCODE =
195                    "user.business-info.telecom.telephone.intcode";
196    
197            public static final String USER_BUSINESS_INFO_TELECOM_TELEPHONE_LOCCODE =
198                    "user.business-info.telecom.telephone.loccode";
199    
200            public static final String USER_BUSINESS_INFO_TELECOM_TELEPHONE_NUMBER =
201                    "user.business-info.telecom.telephone.number";
202    
203            public static final String USER_BUSINESS_INFO_TELECOM_TELEPHONE_EXT =
204                    "user.business-info.telecom.telephone.ext";
205    
206            public static final String USER_BUSINESS_INFO_TELECOM_TELEPHONE_COMMENT =
207                    "user.business-info.telecom.telephone.comment";
208    
209            public static final String USER_BUSINESS_INFO_TELECOM_FAX_INTCODE =
210                    "user.business-info.telecom.fax.intcode";
211    
212            public static final String USER_BUSINESS_INFO_TELECOM_FAX_LOCCODE =
213                    "user.business-info.telecom.fax.loccode";
214    
215            public static final String USER_BUSINESS_INFO_TELECOM_FAX_NUMBER =
216                    "user.business-info.telecom.fax.number";
217    
218            public static final String USER_BUSINESS_INFO_TELECOM_FAX_EXT =
219                    "user.business-info.telecom.fax.ext";
220    
221            public static final String USER_BUSINESS_INFO_TELECOM_FAX_COMMENT =
222                    "user.business-info.telecom.fax.comment";
223    
224            public static final String USER_BUSINESS_INFO_TELECOM_MOBILE_INTCODE =
225                    "user.business-info.telecom.mobile.intcode";
226    
227            public static final String USER_BUSINESS_INFO_TELECOM_MOBILE_LOCCODE =
228                    "user.business-info.telecom.mobile.loccode";
229    
230            public static final String USER_BUSINESS_INFO_TELECOM_MOBILE_NUMBER =
231                    "user.business-info.telecom.mobile.number";
232    
233            public static final String USER_BUSINESS_INFO_TELECOM_MOBILE_EXT =
234                    "user.business-info.telecom.mobile.ext";
235    
236            public static final String USER_BUSINESS_INFO_TELECOM_MOBILE_COMMENT =
237                    "user.business-info.telecom.mobile.comment";
238    
239            public static final String USER_BUSINESS_INFO_TELECOM_PAGER_INTCODE =
240                    "user.business-info.telecom.pager.intcode";
241    
242            public static final String USER_BUSINESS_INFO_TELECOM_PAGER_LOCCODE =
243                    "user.business-info.telecom.pager.loccode";
244    
245            public static final String USER_BUSINESS_INFO_TELECOM_PAGER_NUMBER =
246                    "user.business-info.telecom.pager.number";
247    
248            public static final String USER_BUSINESS_INFO_TELECOM_PAGER_EXT =
249                    "user.business-info.telecom.pager.ext";
250    
251            public static final String USER_BUSINESS_INFO_TELECOM_PAGER_COMMENT =
252                    "user.business-info.telecom.pager.comment";
253    
254            public static final String USER_BUSINESS_INFO_ONLINE_EMAIL =
255                    "user.business-info.online.email";
256    
257            public static final String USER_BUSINESS_INFO_ONLINE_URI =
258                    "user.business-info.online.uri";
259    
260            public static final String USER_LOGIN_ID = "user.login.id";
261    
262            public UserAttributes(User user) {
263                    _user = user;
264    
265                    Address businessAddress = null;
266                    Address personalAddress = null;
267    
268                    Phone businessPhone = null;
269                    Phone businessFaxPhone = null;
270                    Phone mobilePhone = null;
271                    Phone pagerPhone = null;
272                    Phone personalPhone = null;
273                    Phone personalFaxPhone = null;
274    
275                    try {
276                            for (Address address : user.getAddresses()) {
277                                    ListType listType = address.getType();
278    
279                                    String listTypeName = listType.getName();
280    
281                                    if (listTypeName.equals("business")) {
282                                            businessAddress = address;
283                                    }
284                                    else if (listTypeName.equals("personal")) {
285                                            personalAddress = address;
286                                    }
287                            }
288    
289                            for (Phone phone : user.getPhones()) {
290                                    ListType listType = phone.getType();
291    
292                                    String listTypeName = listType.getName();
293    
294                                    if (listTypeName.equals("business")) {
295                                            businessPhone = phone;
296                                    }
297                                    else if (listTypeName.equals("business-fax")) {
298                                            businessFaxPhone = phone;
299                                    }
300                                    else if (listTypeName.equals("mobile-phone")) {
301                                            mobilePhone = phone;
302                                    }
303                                    else if (listTypeName.equals("pager")) {
304                                            pagerPhone = phone;
305                                    }
306                                    else if (listTypeName.equals("personal")) {
307                                            personalPhone = phone;
308                                    }
309                                    else if (listTypeName.equals("personal-fax")) {
310                                            personalFaxPhone = phone;
311                                    }
312                            }
313                    }
314                    catch (Exception e) {
315                            _log.error(e, e);
316                    }
317    
318                    _businessAddress = businessAddress;
319                    _personalAddress = personalAddress;
320    
321                    _businessPhone = businessPhone;
322                    _businessFaxPhone = businessFaxPhone;
323                    _mobilePhone = mobilePhone;
324                    _pagerPhone = pagerPhone;
325                    _personalPhone = personalPhone;
326                    _personalFaxPhone = personalFaxPhone;
327            }
328    
329            public String getValue(String name) throws PortalException {
330                    if (name == null) {
331                            return null;
332                    }
333    
334                    if (name.equals(LIFERAY_COMPANY_ID)) {
335                            return String.valueOf(_user.getCompanyId());
336                    }
337                    else if (name.equals(LIFERAY_USER_ID)) {
338                            return String.valueOf(_user.getUserId());
339                    }
340                    else if (name.equals(USER_NAME_FULL)) {
341                            return _user.getFullName();
342                    }
343                    else if (name.equals(USER_BDATE)) {
344                            Date birthday = _user.getBirthday();
345    
346                            return birthday.toString();
347                    }
348                    else if (name.equals(USER_BDATE_DAY)) {
349                            Date birthday = _user.getBirthday();
350    
351                            if (birthday != null) {
352                                    _calendar.setTime(birthday);
353    
354                                    return String.valueOf(_calendar.get(Calendar.DATE));
355                            }
356    
357                            return null;
358                    }
359                    else if (name.equals(USER_BDATE_FRACTIONSECOND)) {
360                            Date birthday = _user.getBirthday();
361    
362                            if (birthday != null) {
363                                    _calendar.setTime(birthday);
364    
365                                    return String.valueOf(_calendar.get(Calendar.MILLISECOND));
366                            }
367    
368                            return null;
369                    }
370                    else if (name.equals(USER_BDATE_HOUR)) {
371                            Date birthday = _user.getBirthday();
372    
373                            if (birthday != null) {
374                                    _calendar.setTime(birthday);
375    
376                                    return String.valueOf(_calendar.get(Calendar.HOUR));
377                            }
378    
379                            return null;
380                    }
381                    else if (name.equals(USER_BDATE_MINUTE)) {
382                            Date birthday = _user.getBirthday();
383    
384                            if (birthday != null) {
385                                    _calendar.setTime(birthday);
386    
387                                    return String.valueOf(_calendar.get(Calendar.MINUTE));
388                            }
389    
390                            return null;
391                    }
392                    else if (name.equals(USER_BDATE_MONTH)) {
393                            Date birthday = _user.getBirthday();
394    
395                            if (birthday != null) {
396                                    _calendar.setTime(birthday);
397    
398                                    return String.valueOf(_calendar.get(Calendar.MONTH) + 1);
399                            }
400    
401                            return null;
402                    }
403                    else if (name.equals(USER_BDATE_SECOND)) {
404                            Date birthday = _user.getBirthday();
405    
406                            if (birthday != null) {
407                                    _calendar.setTime(birthday);
408    
409                                    return String.valueOf(_calendar.get(Calendar.SECOND));
410                            }
411    
412                            return null;
413                    }
414                    else if (name.equals(USER_BDATE_TIMEZONE)) {
415                            Date birthday = _user.getBirthday();
416    
417                            if (birthday != null) {
418                                    _calendar.setTime(birthday);
419    
420                                    return String.valueOf(_calendar.get(Calendar.ZONE_OFFSET));
421                            }
422    
423                            return null;
424                    }
425                    else if (name.equals(USER_BDATE_YEAR)) {
426                            Date birthday = _user.getBirthday();
427    
428                            if (birthday != null) {
429                                    _calendar.setTime(birthday);
430    
431                                    return String.valueOf(_calendar.get(Calendar.YEAR));
432                            }
433    
434                            return null;
435                    }
436                    else if (name.equals(USER_GENDER)) {
437                            if (_user.isMale()) {
438                                    return "male";
439                            }
440    
441                            return "female";
442                    }
443                    else if (name.equals(USER_EMPLOYER)) {
444                            return StringPool.BLANK;
445                    }
446                    else if (name.equals(USER_DEPARTMENT)) {
447                            return StringPool.BLANK;
448                    }
449                    else if (name.equals(USER_JOBTITLE)) {
450                            return _user.getJobTitle();
451                    }
452                    else if (name.equals(USER_NAME_PREFIX)) {
453                            return StringPool.BLANK;
454                    }
455                    else if (name.equals(USER_NAME_GIVEN)) {
456                            return _user.getFirstName();
457                    }
458                    else if (name.equals(USER_NAME_FAMILY)) {
459                            return _user.getLastName();
460                    }
461                    else if (name.equals(USER_NAME_MIDDLE)) {
462                            return _user.getMiddleName();
463                    }
464                    else if (name.equals(USER_NAME_SUFFIX)) {
465                            return StringPool.BLANK;
466                    }
467                    else if (name.equals(USER_NAME_NICKNAME)) {
468                            return _user.getScreenName();
469                    }
470                    else if (name.equals(USER_LOGIN_ID)) {
471                            return _user.getScreenName();
472                    }
473                    else if (name.equals(USER_HOME_INFO_POSTAL_NAME)) {
474                            return StringPool.BLANK;
475                    }
476                    else if (name.equals(USER_HOME_INFO_POSTAL_STREET)) {
477                            if (_personalAddress != null) {
478                                    return _personalAddress.getStreet1();
479                            }
480    
481                            return StringPool.BLANK;
482                    }
483                    else if (name.equals(USER_HOME_INFO_POSTAL_CITY)) {
484                            if (_personalAddress != null) {
485                                    return _personalAddress.getCity();
486                            }
487    
488                            return StringPool.BLANK;
489                    }
490                    else if (name.equals(USER_HOME_INFO_POSTAL_STATEPROV)) {
491                            if (_personalAddress != null) {
492                                    Region region = _personalAddress.getRegion();
493    
494                                    return region.getRegionCode();
495                            }
496    
497                            return StringPool.BLANK;
498                    }
499                    else if (name.equals(USER_HOME_INFO_POSTAL_POSTALCODE)) {
500                            if (_personalAddress != null) {
501                                    return _personalAddress.getZip();
502                            }
503    
504                            return StringPool.BLANK;
505                    }
506                    else if (name.equals(USER_HOME_INFO_POSTAL_COUNTRY)) {
507                            if (_personalAddress != null) {
508                                    Country country = _personalAddress.getCountry();
509    
510                                    return country.getName(_user.getLocale());
511                            }
512    
513                            return StringPool.BLANK;
514                    }
515                    else if (name.equals(USER_HOME_INFO_POSTAL_ORGANIZATION)) {
516                            return StringPool.BLANK;
517                    }
518                    else if (name.equals(USER_HOME_INFO_TELECOM_TELEPHONE_INTCODE)) {
519                            return StringPool.BLANK;
520                    }
521                    else if (name.equals(USER_HOME_INFO_TELECOM_TELEPHONE_LOCCODE)) {
522                            return StringPool.BLANK;
523                    }
524                    else if (name.equals(USER_HOME_INFO_TELECOM_TELEPHONE_NUMBER)) {
525                            if (_personalPhone != null) {
526                                    return _personalPhone.getNumber();
527                            }
528    
529                            return StringPool.BLANK;
530                    }
531                    else if (name.equals(USER_HOME_INFO_TELECOM_TELEPHONE_EXT)) {
532                            if (_personalPhone != null) {
533                                    return _personalPhone.getExtension();
534                            }
535    
536                            return StringPool.BLANK;
537                    }
538                    else if (name.equals(USER_HOME_INFO_TELECOM_TELEPHONE_COMMENT)) {
539                            return StringPool.BLANK;
540                    }
541                    else if (name.equals(USER_HOME_INFO_TELECOM_FAX_INTCODE)) {
542                            return StringPool.BLANK;
543                    }
544                    else if (name.equals(USER_HOME_INFO_TELECOM_FAX_LOCCODE)) {
545                            return StringPool.BLANK;
546                    }
547                    else if (name.equals(USER_HOME_INFO_TELECOM_FAX_NUMBER)) {
548                            if (_personalFaxPhone != null) {
549                                    return _personalFaxPhone.getNumber();
550                            }
551    
552                            return StringPool.BLANK;
553                    }
554                    else if (name.equals(USER_HOME_INFO_TELECOM_FAX_EXT)) {
555                            if (_personalFaxPhone != null) {
556                                    return _personalFaxPhone.getExtension();
557                            }
558    
559                            return StringPool.BLANK;
560                    }
561                    else if (name.equals(USER_HOME_INFO_TELECOM_FAX_COMMENT)) {
562                            return StringPool.BLANK;
563                    }
564                    else if (name.equals(USER_HOME_INFO_TELECOM_MOBILE_INTCODE)) {
565                            return StringPool.BLANK;
566                    }
567                    else if (name.equals(USER_HOME_INFO_TELECOM_MOBILE_LOCCODE)) {
568                            return StringPool.BLANK;
569                    }
570                    else if (name.equals(USER_HOME_INFO_TELECOM_MOBILE_NUMBER)) {
571                            if (_mobilePhone != null) {
572                                    return _mobilePhone.getNumber();
573                            }
574    
575                            return StringPool.BLANK;
576                    }
577                    else if (name.equals(USER_HOME_INFO_TELECOM_MOBILE_EXT)) {
578                            if (_mobilePhone != null) {
579                                    return _mobilePhone.getExtension();
580                            }
581    
582                            return StringPool.BLANK;
583                    }
584                    else if (name.equals(USER_HOME_INFO_TELECOM_MOBILE_COMMENT)) {
585                            return StringPool.BLANK;
586                    }
587                    else if (name.equals(USER_HOME_INFO_TELECOM_PAGER_INTCODE)) {
588                            return StringPool.BLANK;
589                    }
590                    else if (name.equals(USER_HOME_INFO_TELECOM_PAGER_LOCCODE)) {
591                            return StringPool.BLANK;
592                    }
593                    else if (name.equals(USER_HOME_INFO_TELECOM_PAGER_NUMBER)) {
594                            if (_pagerPhone != null) {
595                                    return _pagerPhone.getNumber();
596                            }
597    
598                            return StringPool.BLANK;
599                    }
600                    else if (name.equals(USER_HOME_INFO_TELECOM_PAGER_EXT)) {
601                            if (_pagerPhone != null) {
602                                    return _pagerPhone.getExtension();
603                            }
604    
605                            return StringPool.BLANK;
606                    }
607                    else if (name.equals(USER_HOME_INFO_TELECOM_PAGER_COMMENT)) {
608                            return StringPool.BLANK;
609                    }
610                    else if (name.equals(USER_HOME_INFO_ONLINE_EMAIL)) {
611                            return _user.getEmailAddress();
612                    }
613                    else if (name.equals(USER_HOME_INFO_ONLINE_URI)) {
614                            return StringPool.BLANK;
615                    }
616                    else if (name.equals(USER_BUSINESS_INFO_POSTAL_NAME)) {
617                            return StringPool.BLANK;
618                    }
619                    else if (name.equals(USER_BUSINESS_INFO_POSTAL_STREET)) {
620                            if (_businessAddress != null) {
621                                    return _businessAddress.getStreet1();
622                            }
623    
624                            return StringPool.BLANK;
625                    }
626                    else if (name.equals(USER_BUSINESS_INFO_POSTAL_CITY)) {
627                            if (_businessAddress != null) {
628                                    return _businessAddress.getCity();
629                            }
630    
631                            return StringPool.BLANK;
632                    }
633                    else if (name.equals(USER_BUSINESS_INFO_POSTAL_STATEPROV)) {
634                            if (_businessAddress != null) {
635                                    Region region = _businessAddress.getRegion();
636    
637                                    return region.getRegionCode();
638                            }
639    
640                            return StringPool.BLANK;
641                    }
642                    else if (name.equals(USER_BUSINESS_INFO_POSTAL_POSTALCODE)) {
643                            if (_businessAddress != null) {
644                                    return _businessAddress.getZip();
645                            }
646    
647                            return StringPool.BLANK;
648                    }
649                    else if (name.equals(USER_BUSINESS_INFO_POSTAL_COUNTRY)) {
650                            if (_businessAddress != null) {
651                                    Country country = _businessAddress.getCountry();
652    
653                                    return country.getName(_user.getLocale());
654                            }
655    
656                            return StringPool.BLANK;
657                    }
658                    else if (name.equals(USER_BUSINESS_INFO_POSTAL_ORGANIZATION)) {
659                            return StringPool.BLANK;
660                    }
661                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_TELEPHONE_INTCODE)) {
662                            return StringPool.BLANK;
663                    }
664                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_TELEPHONE_LOCCODE)) {
665                            return StringPool.BLANK;
666                    }
667                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_TELEPHONE_NUMBER)) {
668                            if (_businessPhone != null) {
669                                    return _businessPhone.getNumber();
670                            }
671    
672                            return StringPool.BLANK;
673                    }
674                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_TELEPHONE_EXT)) {
675                            if (_businessPhone != null) {
676                                    return _businessPhone.getExtension();
677                            }
678    
679                            return StringPool.BLANK;
680                    }
681                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_TELEPHONE_COMMENT)) {
682                            return StringPool.BLANK;
683                    }
684                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_FAX_INTCODE)) {
685                            return StringPool.BLANK;
686                    }
687                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_FAX_LOCCODE)) {
688                            return StringPool.BLANK;
689                    }
690                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_FAX_NUMBER)) {
691                            if (_businessFaxPhone != null) {
692                                    return _businessFaxPhone.getNumber();
693                            }
694    
695                            return StringPool.BLANK;
696                    }
697                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_FAX_EXT)) {
698                            if (_businessFaxPhone != null) {
699                                    return _businessFaxPhone.getExtension();
700                            }
701    
702                            return StringPool.BLANK;
703                    }
704                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_FAX_COMMENT)) {
705                            return StringPool.BLANK;
706                    }
707                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_MOBILE_INTCODE)) {
708                            return StringPool.BLANK;
709                    }
710                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_MOBILE_LOCCODE)) {
711                            return StringPool.BLANK;
712                    }
713                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_MOBILE_NUMBER)) {
714                            if (_mobilePhone != null) {
715                                    return _mobilePhone.getNumber();
716                            }
717    
718                            return StringPool.BLANK;
719                    }
720                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_MOBILE_EXT)) {
721                            if (_mobilePhone != null) {
722                                    return _mobilePhone.getExtension();
723                            }
724    
725                            return StringPool.BLANK;
726                    }
727                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_MOBILE_COMMENT)) {
728                            return StringPool.BLANK;
729                    }
730                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_PAGER_INTCODE)) {
731                            return StringPool.BLANK;
732                    }
733                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_PAGER_LOCCODE)) {
734                            return StringPool.BLANK;
735                    }
736                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_PAGER_NUMBER)) {
737                            if (_pagerPhone != null) {
738                                    return _pagerPhone.getNumber();
739                            }
740    
741                            return StringPool.BLANK;
742                    }
743                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_PAGER_EXT)) {
744                            if (_pagerPhone != null) {
745                                    return _pagerPhone.getExtension();
746                            }
747    
748                            return StringPool.BLANK;
749                    }
750                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_PAGER_COMMENT)) {
751                            return StringPool.BLANK;
752                    }
753                    else if (name.equals(USER_BUSINESS_INFO_ONLINE_EMAIL)) {
754                            return _user.getEmailAddress();
755                    }
756                    else if (name.equals(USER_BUSINESS_INFO_ONLINE_URI)) {
757                            return StringPool.BLANK;
758                    }
759                    else {
760                            return null;
761                    }
762            }
763    
764            private static final Log _log = LogFactoryUtil.getLog(UserAttributes.class);
765    
766            private final Address _businessAddress;
767            private final Phone _businessFaxPhone;
768            private final Phone _businessPhone;
769            private final Calendar _calendar = new GregorianCalendar();
770            private final Phone _mobilePhone;
771            private final Phone _pagerPhone;
772            private final Address _personalAddress;
773            private final Phone _personalFaxPhone;
774            private final Phone _personalPhone;
775            private final User _user;
776    
777    }