package net.dev123.commons.oauth.config;
import net.dev123.commons.Constants;
import net.dev123.commons.ServiceProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* ConfigurationBase
*
* @version
* @author 马庆升
* @time 2010-7-29 下午02:50:29
*/
public class OAuthConfigurationFactory {
private static final String CLASS_NAME_FORMAT = "net.dev123.%1$s%2$s.%3$sOAuthConfiguration";
private static Logger logger = LoggerFactory.getLogger(OAuthConfigurationFactory.class.getSimpleName());
public static synchronized OAuthConfiguration getOAuthConfiguration(ServiceProvider serviceProvider) {
if (serviceProvider == ServiceProvider.None) {
return null;
}
OAuthConfiguration conf = null;
try {
String spCategoryPath = serviceProvider.getServiceProviderCategory().toLowerCase();
if (!ServiceProvider.CATEGORY_NONE.equals(spCategoryPath)) {
spCategoryPath += ".";
}
String className =
String.format(
CLASS_NAME_FORMAT,
spCategoryPath,
serviceProvider.toString().toLowerCase(),
serviceProvider.toString()
);
conf = (OAuthConfiguration) Class.forName(className).newInstance();
} catch (Exception e) {
if (Constants.DEBUG) {
logger.debug("Get ApiConfiguration instance for {}", serviceProvider, e);
}
}
return conf;
}
}