package org.pac4j.oauth.profile.yahoo;
import java.net.URI;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import org.pac4j.core.util.CommonHelper;
import org.pac4j.oauth.profile.OAuth10Profile;
/**
* <p>This class is the user profile for Yahoo with appropriate getters.</p>
* <p>It is returned by the {@link org.pac4j.oauth.client.YahooClient}.</p>
*
* @author Jerome Leleu
* @since 1.1.0
*/
@SuppressWarnings("unchecked")
public class YahooProfile extends OAuth10Profile {
private static final long serialVersionUID = 791758805376191144L;
@Override
public String getEmail() {
final List<YahooEmail> emails = getEmails();
if (emails != null) {
for (final YahooEmail email : emails) {
if (email != null && (Boolean.TRUE.equals(email.getPrimary()) || emails.size() == 1)) {
return email.getHandle();
}
}
}
return null;
}
@Override
public String getFirstName() {
return (String) getAttribute(YahooProfileDefinition.GIVEN_NAME);
}
@Override
public String getFamilyName() {
return (String) getAttribute(YahooProfileDefinition.FAMILY_NAME);
}
@Override
public String getDisplayName() {
return getFirstName() + " " + getFamilyName();
}
@Override
public String getUsername() {
return (String) getAttribute(YahooProfileDefinition.NICKNAME);
}
@Override
public Locale getLocale() {
return (Locale) getAttribute(YahooProfileDefinition.LANG);
}
@Override
public URI getPictureUrl() {
final YahooImage yahooImage = (YahooImage) getAttribute(YahooProfileDefinition.IMAGE);
if (yahooImage != null) {
return CommonHelper.asURI(yahooImage.getImageUrl());
}
return null;
}
@Override
public URI getProfileUrl() {
return (URI) getAttribute(YahooProfileDefinition.PROFILE_URL);
}
public String getAboutMe() {
return (String) getAttribute(YahooProfileDefinition.ABOUT_ME);
}
public List<YahooAddress> getAddresses() {
return (List<YahooAddress>) getAttribute(YahooProfileDefinition.ADDRESSES);
}
public Integer getBirthYear() {
return (Integer) getAttribute(YahooProfileDefinition.BIRTH_YEAR);
}
public Date getBirthdate() {
return (Date) getAttribute(YahooProfileDefinition.BIRTHDATE);
}
public Date getCreated() {
return (Date) getAttribute(YahooProfileDefinition.CREATED);
}
public Integer getDisplayAge() {
return (Integer) getAttribute(YahooProfileDefinition.DISPLAY_AGE);
}
public List<YahooDisclosure> getDisclosures() {
return (List<YahooDisclosure>) getAttribute(YahooProfileDefinition.DISCLOSURES);
}
public List<YahooEmail> getEmails() {
return (List<YahooEmail>) getAttribute(YahooProfileDefinition.EMAILS);
}
public YahooImage getImage() {
return (YahooImage) getAttribute(YahooProfileDefinition.IMAGE);
}
public List<YahooInterest> getInterests() {
return (List<YahooInterest>) getAttribute(YahooProfileDefinition.INTERESTS);
}
public Boolean getIsConnected() {
return (Boolean) getAttribute(YahooProfileDefinition.IS_CONNECTED);
}
public Date getMemberSince() {
return (Date) getAttribute(YahooProfileDefinition.MEMBER_SINCE);
}
public String getTimeZone() {
return (String) getAttribute(YahooProfileDefinition.TIME_ZONE);
}
public Date getUpdated() {
return (Date) getAttribute(YahooProfileDefinition.UPDATED);
}
public String getUri() {
return (String) getAttribute(YahooProfileDefinition.URI);
}
public String getAgeCategory() {
return (String) getAttribute(YahooProfileDefinition.AGE_CATEGORY);
}
}