package org.atricore.idbus.capabilities.atricoreid.as.main.binding;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.atricore.idbus.kernel.main.mediation.Channel;
import org.atricore.idbus.kernel.main.mediation.MediationBinding;
import org.atricore.idbus.kernel.main.mediation.MediationBindingFactory;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
/**
* @author <a href=mailto:sgonzalez@atricore.org>Sebastian Gonzalez Oyuela</a>
*/
public class AtricoreIDBindingFactory extends MediationBindingFactory implements ApplicationContextAware {
private static final Log logger = LogFactory.getLog(AtricoreIDBindingFactory.class);
protected ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
public ApplicationContext getApplicationContext() {
return applicationContext;
}
public MediationBinding createBinding(String binding, Channel channel) {
AtricoreIDBinding b = null;
try {
b = AtricoreIDBinding.asEnum(binding);
} catch (IllegalArgumentException e) {
return null;
}
MediationBinding mb = null;
switch (b) {
case OAUTH2_SOAP:
mb = new AtricoreIDSoapBinding(channel);
break;
case OAUTH2_RESTFUL:
mb = new AtricoreIDRestfulBinding(channel);
break;
default:
break;
}
return mb;
}
}