/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.api.client.model.user;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
public final class UserInfo
implements Serializable
{
private static final long serialVersionUID = 7047283709960546469L;
private String firstName;
private String lastName;
private String middleName;
private Date birthday;
private String country;
private String description;
private Gender gender;
private String initials;
private String globalPosition;
private Boolean htmlEmail;
private Locale locale;
private String nickName;
private String personalId;
private String memberId;
private String organization;
private String prefix;
private String suffix;
private String title;
private String homePage;
private String mobile;
private String phone;
private String fax;
private byte[] photo;
private TimeZone timeZone;
private Address[] addresses;
public UserInfo()
{
this.addresses = new Address[0];
}
public String getFirstName()
{
return firstName;
}
public void setFirstName( String firstName )
{
this.firstName = firstName;
}
public String getLastName()
{
return lastName;
}
public void setLastName( String lastName )
{
this.lastName = lastName;
}
public String getMiddleName()
{
return middleName;
}
public void setMiddleName( String middleName )
{
this.middleName = middleName;
}
public Date getBirthday()
{
return birthday;
}
public void setBirthday( Date birthday )
{
this.birthday = birthday;
}
public String getCountry()
{
return country;
}
public void setCountry( String country )
{
this.country = country;
}
public String getDescription()
{
return description;
}
public void setDescription( String description )
{
this.description = description;
}
public Gender getGender()
{
return gender;
}
public void setGender( Gender gender )
{
this.gender = gender;
}
public String getInitials()
{
return initials;
}
public void setInitials( String initials )
{
this.initials = initials;
}
public String getGlobalPosition()
{
return globalPosition;
}
public void setGlobalPosition( String globalPosition )
{
this.globalPosition = globalPosition;
}
public Boolean getHtmlEmail()
{
return htmlEmail;
}
public void setHtmlEmail( Boolean htmlEmail )
{
this.htmlEmail = htmlEmail;
}
public Locale getLocale()
{
return locale;
}
public void setLocale( Locale locale )
{
this.locale = locale;
}
public String getNickName()
{
return nickName;
}
public void setNickName( String nickName )
{
this.nickName = nickName;
}
public String getPersonalId()
{
return personalId;
}
public void setPersonalId( String personalId )
{
this.personalId = personalId;
}
public String getMemberId()
{
return memberId;
}
public void setMemberId( String memberId )
{
this.memberId = memberId;
}
public String getOrganization()
{
return organization;
}
public void setOrganization( String organization )
{
this.organization = organization;
}
public String getPrefix()
{
return prefix;
}
public void setPrefix( String prefix )
{
this.prefix = prefix;
}
public String getSuffix()
{
return suffix;
}
public void setSuffix( String suffix )
{
this.suffix = suffix;
}
public String getTitle()
{
return title;
}
public void setTitle( String title )
{
this.title = title;
}
public String getHomePage()
{
return homePage;
}
public void setHomePage( String homePage )
{
this.homePage = homePage;
}
public byte[] getPhoto()
{
return this.photo;
}
public void setPhoto( byte[] photo )
{
this.photo = photo;
}
public Address[] getAddresses()
{
return this.addresses;
}
public Address getPrimaryAddress()
{
return this.addresses.length > 0 ? this.addresses[0] : null;
}
public void setAddresses( Address... addresses )
{
this.addresses = addresses != null ? addresses : new Address[0];
}
public String getMobile()
{
return this.mobile;
}
public void setMobile( String mobile )
{
this.mobile = mobile;
}
public String getPhone()
{
return this.phone;
}
public void setPhone( String phone )
{
this.phone = phone;
}
public String getFax()
{
return this.fax;
}
public void setFax( String fax )
{
this.fax = fax;
}
public TimeZone getTimeZone()
{
return timeZone;
}
public void setTimezone( TimeZone timeZone )
{
this.timeZone = timeZone;
}
@Override
public boolean equals( Object o )
{
if ( this == o )
{
return true;
}
if ( o == null || getClass() != o.getClass() )
{
return false;
}
UserInfo userInfo = (UserInfo) o;
if ( !Arrays.equals( addresses, userInfo.addresses ) )
{
return false;
}
if ( birthday != null ? !birthday.equals( userInfo.birthday ) : userInfo.birthday != null )
{
return false;
}
if ( country != null ? !country.equals( userInfo.country ) : userInfo.country != null )
{
return false;
}
if ( description != null ? !description.equals( userInfo.description ) : userInfo.description != null )
{
return false;
}
if ( fax != null ? !fax.equals( userInfo.fax ) : userInfo.fax != null )
{
return false;
}
if ( firstName != null ? !firstName.equals( userInfo.firstName ) : userInfo.firstName != null )
{
return false;
}
if ( gender != userInfo.gender )
{
return false;
}
if ( globalPosition != null ? !globalPosition.equals( userInfo.globalPosition ) : userInfo.globalPosition != null )
{
return false;
}
if ( homePage != null ? !homePage.equals( userInfo.homePage ) : userInfo.homePage != null )
{
return false;
}
if ( htmlEmail != null ? !htmlEmail.equals( userInfo.htmlEmail ) : userInfo.htmlEmail != null )
{
return false;
}
if ( initials != null ? !initials.equals( userInfo.initials ) : userInfo.initials != null )
{
return false;
}
if ( lastName != null ? !lastName.equals( userInfo.lastName ) : userInfo.lastName != null )
{
return false;
}
if ( locale != null ? !locale.equals( userInfo.locale ) : userInfo.locale != null )
{
return false;
}
if ( memberId != null ? !memberId.equals( userInfo.memberId ) : userInfo.memberId != null )
{
return false;
}
if ( middleName != null ? !middleName.equals( userInfo.middleName ) : userInfo.middleName != null )
{
return false;
}
if ( mobile != null ? !mobile.equals( userInfo.mobile ) : userInfo.mobile != null )
{
return false;
}
if ( nickName != null ? !nickName.equals( userInfo.nickName ) : userInfo.nickName != null )
{
return false;
}
if ( organization != null ? !organization.equals( userInfo.organization ) : userInfo.organization != null )
{
return false;
}
if ( personalId != null ? !personalId.equals( userInfo.personalId ) : userInfo.personalId != null )
{
return false;
}
if ( phone != null ? !phone.equals( userInfo.phone ) : userInfo.phone != null )
{
return false;
}
if ( !Arrays.equals( photo, userInfo.photo ) )
{
return false;
}
if ( prefix != null ? !prefix.equals( userInfo.prefix ) : userInfo.prefix != null )
{
return false;
}
if ( suffix != null ? !suffix.equals( userInfo.suffix ) : userInfo.suffix != null )
{
return false;
}
if ( timeZone != null ? !timeZone.equals( userInfo.timeZone ) : userInfo.timeZone != null )
{
return false;
}
if ( title != null ? !title.equals( userInfo.title ) : userInfo.title != null )
{
return false;
}
return true;
}
@Override
public int hashCode()
{
int result = firstName != null ? firstName.hashCode() : 0;
result = 31 * result + ( lastName != null ? lastName.hashCode() : 0 );
result = 31 * result + ( middleName != null ? middleName.hashCode() : 0 );
return result;
}
}