package org.pac4j.oauth.profile.facebook.converter;
import org.pac4j.core.profile.converter.AttributeConverter;
import org.pac4j.oauth.profile.facebook.FacebookRelationshipStatus;
/**
* This class converts a String into a FacebookRelationshipStatus.
*
* @author Jerome Leleu
* @since 1.0.0
*/
public final class FacebookRelationshipStatusConverter implements AttributeConverter<FacebookRelationshipStatus> {
public FacebookRelationshipStatus convert(final Object attribute) {
if (attribute != null) {
if (attribute instanceof String) {
String s = ((String) attribute).toLowerCase();
s = s.replaceAll("_", " ");
s = s.replaceAll("'", "");
if ("single".equals(s)) {
return FacebookRelationshipStatus.SINGLE;
} else if ("in a relationship".equals(s)) {
return FacebookRelationshipStatus.IN_A_RELATIONSHIP;
} else if ("engaged".equals(s)) {
return FacebookRelationshipStatus.ENGAGED;
} else if ("married".equals(s)) {
return FacebookRelationshipStatus.MARRIED;
} else if ("its complicated".equals(s)) {
return FacebookRelationshipStatus.ITS_COMPLICATED;
} else if ("in an open relationship".equals(s)) {
return FacebookRelationshipStatus.IN_AN_OPEN_RELATIONSHIP;
} else if ("widowed".equals(s)) {
return FacebookRelationshipStatus.WIDOWED;
} else if ("separated".equals(s)) {
return FacebookRelationshipStatus.SEPARATED;
} else if ("divorced".equals(s)) {
return FacebookRelationshipStatus.DIVORCED;
} else if ("in a civil union".equals(s)) {
return FacebookRelationshipStatus.IN_A_CIVIL_UNION;
} else if ("in a domestic partnership".equals(s)) {
return FacebookRelationshipStatus.IN_A_DOMESTIC_PARTNERSHIP;
}
} else if (attribute instanceof FacebookRelationshipStatus) {
return (FacebookRelationshipStatus) attribute;
}
}
return null;
}
}