package org.picketlink.producer;
import org.picketlink.annotations.PicketLink;
import org.picketlink.authentication.levels.LevelFactory;
import org.picketlink.authentication.levels.internal.DefaultLevelFactory;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.inject.Any;
import javax.enterprise.inject.Instance;
import javax.inject.Inject;
/**
* Provides correct level factory
*
* @author Michal Trnka
*/
@ApplicationScoped
public class LevelFactoryResolver {
@Inject
@Any
@PicketLink
private Instance<LevelFactory> factory;
@Inject
private DefaultLevelFactory defFactory;
public LevelFactory resolve() {
if(factory.isUnsatisfied()){
return defFactory;
}else{
return factory.get();
}
}
}