package org.pac4j.oauth.profile.google2;
import java.net.URI;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import org.pac4j.oauth.profile.OAuth20Profile;
/**
* <p>This class is the user profile for Google (using OAuth protocol version 2) with appropriate getters.</p>
* <p>It is returned by the {@link org.pac4j.oauth.client.Google2Client}.</p>
*
* @author Jerome Leleu
* @since 1.2.0
*/
public class Google2Profile extends OAuth20Profile {
private static final long serialVersionUID = -7486869356444327783L;
@Override
public String getEmail() {
final List<Google2Email> list = getEmails();
if (list != null && !list.isEmpty()) {
return list.get(0).getEmail();
} else {
return null;
}
}
@Override
public String getFirstName() {
return (String) getAttribute(Google2ProfileDefinition.GIVEN_NAME);
}
@Override
public String getFamilyName() {
return (String) getAttribute(Google2ProfileDefinition.FAMILY_NAME);
}
@Override
public String getDisplayName() {
return (String) getAttribute(Google2ProfileDefinition.DISPLAY_NAME);
}
@Override
public Locale getLocale() {
return (Locale) getAttribute(Google2ProfileDefinition.LANGUAGE);
}
@Override
public URI getPictureUrl() {
return (URI) getAttribute(Google2ProfileDefinition.PICTURE);
}
@Override
public URI getProfileUrl() {
return (URI) getAttribute(Google2ProfileDefinition.URL);
}
public Date getBirthday() {
return (Date) getAttribute(Google2ProfileDefinition.BIRTHDAY);
}
@SuppressWarnings("unchecked")
public List<Google2Email> getEmails() {
return (List<Google2Email>) getAttribute(Google2ProfileDefinition.EMAILS);
}
}