package org.pac4j.oauth.profile.linkedin2;
import java.net.URI;
import java.util.List;
import org.pac4j.core.util.CommonHelper;
import org.pac4j.oauth.profile.OAuth20Profile;
/**
* <p>This class is the user profile for LinkedIn with appropriate getters.</p>
* <p>It is returned by the {@link org.pac4j.oauth.client.LinkedIn2Client}.</p>
*
* @author Jerome Leleu
* @since 1.4.1
*/
@SuppressWarnings("unchecked")
public class LinkedIn2Profile extends OAuth20Profile {
private static final long serialVersionUID = -2652388591255880018L;
public String getOAuth10Id() {
String url = getSiteStandardProfileRequest();
return CommonHelper.substringBetween(url, "id=", "&authType=");
}
@Override
public String getFirstName() {
return (String) getAttribute(LinkedIn2ProfileDefinition.FIRST_NAME);
}
@Override
public String getFamilyName() {
return (String) getAttribute(LinkedIn2ProfileDefinition.LAST_NAME);
}
@Override
public String getDisplayName() {
return (String) getAttribute(LinkedIn2ProfileDefinition.FORMATTED_NAME);
}
@Override
public String getLocation() {
LinkedIn2Location location = (LinkedIn2Location) getAttribute(LinkedIn2ProfileDefinition.LOCATION);
if (location != null) {
return location.getName();
} else {
return null;
}
}
@Override
public String getEmail() {
return (String) getAttribute(LinkedIn2ProfileDefinition.EMAIL_ADDRESS);
}
@Override
public URI getPictureUrl() {
return (URI) getAttribute(LinkedIn2ProfileDefinition.PICTURE_URL);
}
@Override
public URI getProfileUrl() {
return (URI) getAttribute(LinkedIn2ProfileDefinition.PUBLIC_PROFILE_URL);
}
public LinkedIn2Location getCompleteLocation() {
return (LinkedIn2Location) getAttribute(LinkedIn2ProfileDefinition.LOCATION);
}
public String getMaidenName() {
return (String) getAttribute(LinkedIn2ProfileDefinition.MAIDEN_NAME);
}
public String getPhoneticFirstName() { return (String) getAttribute(LinkedIn2ProfileDefinition.PHONETIC_FIRST_NAME); }
public String getPhoneticLastName() { return (String) getAttribute(LinkedIn2ProfileDefinition.PHONETIC_LAST_NAME); }
public String getFormattedPhoneticName() { return (String) getAttribute(LinkedIn2ProfileDefinition.FORMATTED_PHONETIC_NAME); }
public String getHeadline() {
return (String) getAttribute(LinkedIn2ProfileDefinition.HEADLINE);
}
public String getIndustry() {
return (String) getAttribute(LinkedIn2ProfileDefinition.INDUSTRY);
}
public String getCurrentShare() {
return (String) getAttribute(LinkedIn2ProfileDefinition.CURRENT_SHARE);
}
public Integer getNumConnections() {
return (Integer) getAttribute(LinkedIn2ProfileDefinition.NUM_CONNECTIONS);
}
public Boolean getNumConnectionsCapped() {
return (Boolean) getAttribute(LinkedIn2ProfileDefinition.NUM_CONNECTIONS_CAPPED);
}
public String getSummary() {
return (String) getAttribute(LinkedIn2ProfileDefinition.SUMMARY);
}
public String getSpecialties() {
return (String) getAttribute(LinkedIn2ProfileDefinition.SPECIALTIES);
}
public List<LinkedIn2Position> getPositions() {
return (List<LinkedIn2Position>) getAttribute(LinkedIn2ProfileDefinition.POSITIONS);
}
public String getSiteStandardProfileRequest() {
return (String) getAttribute(LinkedIn2ProfileDefinition.SITE_STANDARD_PROFILE_REQUEST);
}
public String getApiStandardProfileRequest() {
return (String) getAttribute(LinkedIn2ProfileDefinition.API_STANDARD_PROFILE_REQUEST);
}
}