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.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.util.StringPool;
021    import com.liferay.portal.model.Address;
022    import com.liferay.portal.model.Country;
023    import com.liferay.portal.model.ListType;
024    import com.liferay.portal.model.Phone;
025    import com.liferay.portal.model.Region;
026    import com.liferay.portal.model.User;
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                            return _user.isMale() ? "male" : "female";
438                    }
439                    else if (name.equals(USER_EMPLOYER)) {
440                            return StringPool.BLANK;
441                    }
442                    else if (name.equals(USER_DEPARTMENT)) {
443                            return StringPool.BLANK;
444                    }
445                    else if (name.equals(USER_JOBTITLE)) {
446                            return _user.getJobTitle();
447                    }
448                    else if (name.equals(USER_NAME_PREFIX)) {
449                            return StringPool.BLANK;
450                    }
451                    else if (name.equals(USER_NAME_GIVEN)) {
452                            return _user.getFirstName();
453                    }
454                    else if (name.equals(USER_NAME_FAMILY)) {
455                            return _user.getLastName();
456                    }
457                    else if (name.equals(USER_NAME_MIDDLE)) {
458                            return _user.getMiddleName();
459                    }
460                    else if (name.equals(USER_NAME_SUFFIX)) {
461                            return StringPool.BLANK;
462                    }
463                    else if (name.equals(USER_NAME_NICKNAME)) {
464                            return _user.getScreenName();
465                    }
466                    else if (name.equals(USER_LOGIN_ID)) {
467                            return _user.getScreenName();
468                    }
469                    else if (name.equals(USER_HOME_INFO_POSTAL_NAME)) {
470                            return StringPool.BLANK;
471                    }
472                    else if (name.equals(USER_HOME_INFO_POSTAL_STREET)) {
473                            if (_personalAddress != null) {
474                                    return _personalAddress.getStreet1();
475                            }
476    
477                            return StringPool.BLANK;
478                    }
479                    else if (name.equals(USER_HOME_INFO_POSTAL_CITY)) {
480                            if (_personalAddress != null) {
481                                    return _personalAddress.getCity();
482                            }
483    
484                            return StringPool.BLANK;
485                    }
486                    else if (name.equals(USER_HOME_INFO_POSTAL_STATEPROV)) {
487                            if (_personalAddress != null) {
488                                    Region region = _personalAddress.getRegion();
489    
490                                    return region.getRegionCode();
491                            }
492    
493                            return StringPool.BLANK;
494                    }
495                    else if (name.equals(USER_HOME_INFO_POSTAL_POSTALCODE)) {
496                            if (_personalAddress != null) {
497                                    return _personalAddress.getZip();
498                            }
499    
500                            return StringPool.BLANK;
501                    }
502                    else if (name.equals(USER_HOME_INFO_POSTAL_COUNTRY)) {
503                            if (_personalAddress != null) {
504                                    Country country = _personalAddress.getCountry();
505    
506                                    return country.getName(_user.getLocale());
507                            }
508    
509                            return StringPool.BLANK;
510                    }
511                    else if (name.equals(USER_HOME_INFO_POSTAL_ORGANIZATION)) {
512                            return StringPool.BLANK;
513                    }
514                    else if (name.equals(USER_HOME_INFO_TELECOM_TELEPHONE_INTCODE)) {
515                            return StringPool.BLANK;
516                    }
517                    else if (name.equals(USER_HOME_INFO_TELECOM_TELEPHONE_LOCCODE)) {
518                            return StringPool.BLANK;
519                    }
520                    else if (name.equals(USER_HOME_INFO_TELECOM_TELEPHONE_NUMBER)) {
521                            if (_personalPhone != null) {
522                                    return _personalPhone.getNumber();
523                            }
524    
525                            return StringPool.BLANK;
526                    }
527                    else if (name.equals(USER_HOME_INFO_TELECOM_TELEPHONE_EXT)) {
528                            if (_personalPhone != null) {
529                                    return _personalPhone.getExtension();
530                            }
531    
532                            return StringPool.BLANK;
533                    }
534                    else if (name.equals(USER_HOME_INFO_TELECOM_TELEPHONE_COMMENT)) {
535                            return StringPool.BLANK;
536                    }
537                    else if (name.equals(USER_HOME_INFO_TELECOM_FAX_INTCODE)) {
538                            return StringPool.BLANK;
539                    }
540                    else if (name.equals(USER_HOME_INFO_TELECOM_FAX_LOCCODE)) {
541                            return StringPool.BLANK;
542                    }
543                    else if (name.equals(USER_HOME_INFO_TELECOM_FAX_NUMBER)) {
544                            if (_personalFaxPhone != null) {
545                                    return _personalFaxPhone.getNumber();
546                            }
547    
548                            return StringPool.BLANK;
549                    }
550                    else if (name.equals(USER_HOME_INFO_TELECOM_FAX_EXT)) {
551                            if (_personalFaxPhone != null) {
552                                    return _personalFaxPhone.getExtension();
553                            }
554    
555                            return StringPool.BLANK;
556                    }
557                    else if (name.equals(USER_HOME_INFO_TELECOM_FAX_COMMENT)) {
558                            return StringPool.BLANK;
559                    }
560                    else if (name.equals(USER_HOME_INFO_TELECOM_MOBILE_INTCODE)) {
561                            return StringPool.BLANK;
562                    }
563                    else if (name.equals(USER_HOME_INFO_TELECOM_MOBILE_LOCCODE)) {
564                            return StringPool.BLANK;
565                    }
566                    else if (name.equals(USER_HOME_INFO_TELECOM_MOBILE_NUMBER)) {
567                            if (_mobilePhone != null) {
568                                    return _mobilePhone.getNumber();
569                            }
570    
571                            return StringPool.BLANK;
572                    }
573                    else if (name.equals(USER_HOME_INFO_TELECOM_MOBILE_EXT)) {
574                            if (_mobilePhone != null) {
575                                    return _mobilePhone.getExtension();
576                            }
577    
578                            return StringPool.BLANK;
579                    }
580                    else if (name.equals(USER_HOME_INFO_TELECOM_MOBILE_COMMENT)) {
581                            return StringPool.BLANK;
582                    }
583                    else if (name.equals(USER_HOME_INFO_TELECOM_PAGER_INTCODE)) {
584                            return StringPool.BLANK;
585                    }
586                    else if (name.equals(USER_HOME_INFO_TELECOM_PAGER_LOCCODE)) {
587                            return StringPool.BLANK;
588                    }
589                    else if (name.equals(USER_HOME_INFO_TELECOM_PAGER_NUMBER)) {
590                            if (_pagerPhone != null) {
591                                    return _pagerPhone.getNumber();
592                            }
593    
594                            return StringPool.BLANK;
595                    }
596                    else if (name.equals(USER_HOME_INFO_TELECOM_PAGER_EXT)) {
597                            if (_pagerPhone != null) {
598                                    return _pagerPhone.getExtension();
599                            }
600    
601                            return StringPool.BLANK;
602                    }
603                    else if (name.equals(USER_HOME_INFO_TELECOM_PAGER_COMMENT)) {
604                            return StringPool.BLANK;
605                    }
606                    else if (name.equals(USER_HOME_INFO_ONLINE_EMAIL)) {
607                            return _user.getEmailAddress();
608                    }
609                    else if (name.equals(USER_HOME_INFO_ONLINE_URI)) {
610                            return StringPool.BLANK;
611                    }
612                    else if (name.equals(USER_BUSINESS_INFO_POSTAL_NAME)) {
613                            return StringPool.BLANK;
614                    }
615                    else if (name.equals(USER_BUSINESS_INFO_POSTAL_STREET)) {
616                            if (_businessAddress != null) {
617                                    return _businessAddress.getStreet1();
618                            }
619    
620                            return StringPool.BLANK;
621                    }
622                    else if (name.equals(USER_BUSINESS_INFO_POSTAL_CITY)) {
623                            if (_businessAddress != null) {
624                                    return _businessAddress.getCity();
625                            }
626    
627                            return StringPool.BLANK;
628                    }
629                    else if (name.equals(USER_BUSINESS_INFO_POSTAL_STATEPROV)) {
630                            if (_businessAddress != null) {
631                                    Region region = _businessAddress.getRegion();
632    
633                                    return region.getRegionCode();
634                            }
635    
636                            return StringPool.BLANK;
637                    }
638                    else if (name.equals(USER_BUSINESS_INFO_POSTAL_POSTALCODE)) {
639                            if (_businessAddress != null) {
640                                    return _businessAddress.getZip();
641                            }
642    
643                            return StringPool.BLANK;
644                    }
645                    else if (name.equals(USER_BUSINESS_INFO_POSTAL_COUNTRY)) {
646                            if (_businessAddress != null) {
647                                    Country country = _businessAddress.getCountry();
648    
649                                    return country.getName(_user.getLocale());
650                            }
651    
652                            return StringPool.BLANK;
653                    }
654                    else if (name.equals(USER_BUSINESS_INFO_POSTAL_ORGANIZATION)) {
655                            return StringPool.BLANK;
656                    }
657                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_TELEPHONE_INTCODE)) {
658                            return StringPool.BLANK;
659                    }
660                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_TELEPHONE_LOCCODE)) {
661                            return StringPool.BLANK;
662                    }
663                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_TELEPHONE_NUMBER)) {
664                            if (_businessPhone != null) {
665                                    return _businessPhone.getNumber();
666                            }
667    
668                            return StringPool.BLANK;
669                    }
670                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_TELEPHONE_EXT)) {
671                            if (_businessPhone != null) {
672                                    return _businessPhone.getExtension();
673                            }
674    
675                            return StringPool.BLANK;
676                    }
677                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_TELEPHONE_COMMENT)) {
678                            return StringPool.BLANK;
679                    }
680                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_FAX_INTCODE)) {
681                            return StringPool.BLANK;
682                    }
683                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_FAX_LOCCODE)) {
684                            return StringPool.BLANK;
685                    }
686                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_FAX_NUMBER)) {
687                            if (_businessFaxPhone != null) {
688                                    return _businessFaxPhone.getNumber();
689                            }
690    
691                            return StringPool.BLANK;
692                    }
693                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_FAX_EXT)) {
694                            if (_businessFaxPhone != null) {
695                                    return _businessFaxPhone.getExtension();
696                            }
697    
698                            return StringPool.BLANK;
699                    }
700                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_FAX_COMMENT)) {
701                            return StringPool.BLANK;
702                    }
703                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_MOBILE_INTCODE)) {
704                            return StringPool.BLANK;
705                    }
706                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_MOBILE_LOCCODE)) {
707                            return StringPool.BLANK;
708                    }
709                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_MOBILE_NUMBER)) {
710                            if (_mobilePhone != null) {
711                                    return _mobilePhone.getNumber();
712                            }
713    
714                            return StringPool.BLANK;
715                    }
716                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_MOBILE_EXT)) {
717                            if (_mobilePhone != null) {
718                                    return _mobilePhone.getExtension();
719                            }
720    
721                            return StringPool.BLANK;
722                    }
723                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_MOBILE_COMMENT)) {
724                            return StringPool.BLANK;
725                    }
726                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_PAGER_INTCODE)) {
727                            return StringPool.BLANK;
728                    }
729                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_PAGER_LOCCODE)) {
730                            return StringPool.BLANK;
731                    }
732                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_PAGER_NUMBER)) {
733                            if (_pagerPhone != null) {
734                                    return _pagerPhone.getNumber();
735                            }
736    
737                            return StringPool.BLANK;
738                    }
739                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_PAGER_EXT)) {
740                            if (_pagerPhone != null) {
741                                    return _pagerPhone.getExtension();
742                            }
743    
744                            return StringPool.BLANK;
745                    }
746                    else if (name.equals(USER_BUSINESS_INFO_TELECOM_PAGER_COMMENT)) {
747                            return StringPool.BLANK;
748                    }
749                    else if (name.equals(USER_BUSINESS_INFO_ONLINE_EMAIL)) {
750                            return _user.getEmailAddress();
751                    }
752                    else if (name.equals(USER_BUSINESS_INFO_ONLINE_URI)) {
753                            return StringPool.BLANK;
754                    }
755                    else {
756                            return null;
757                    }
758            }
759    
760            private static final Log _log = LogFactoryUtil.getLog(UserAttributes.class);
761    
762            private final Address _businessAddress;
763            private final Phone _businessFaxPhone;
764            private final Phone _businessPhone;
765            private final Calendar _calendar = new GregorianCalendar();
766            private final Phone _mobilePhone;
767            private final Phone _pagerPhone;
768            private final Address _personalAddress;
769            private final Phone _personalFaxPhone;
770            private final Phone _personalPhone;
771            private final User _user;
772    
773    }