package pl.net.bluesoft.rnd.pt.ext.jbpm;
import pl.net.bluesoft.rnd.processtool.ProcessToolContext;
import pl.net.bluesoft.rnd.processtool.bpm.ProcessToolBpmSession;
import pl.net.bluesoft.rnd.processtool.bpm.ProcessToolSessionFactory;
import pl.net.bluesoft.rnd.processtool.model.UserData;
import java.util.Collection;
import java.util.HashSet;
/**
* @author tlipski@bluesoft.net.pl
*/
public class ProcessToolJbpmSessionFactory implements ProcessToolSessionFactory {
private UserData autoUser;
private ProcessToolContext ctx;
public ProcessToolJbpmSessionFactory(ProcessToolContext ctx) {
this.ctx = ctx;
}
public ProcessToolBpmSession createSession(UserData user, Collection<String> roles) {
ProcessToolJbpmSession processToolJbpmSession = new ProcessToolJbpmSession(user, roles, ctx);
return processToolJbpmSession;
}
public ProcessToolBpmSession createAutoSession() {
return createAutoSession(new HashSet<String>());
}
public ProcessToolBpmSession createAutoSession(Collection<String> roles) {
if (autoUser == null) {
autoUser = ctx.getAutoUser();
}
return new ProcessToolJbpmSession(autoUser, roles, ctx);
}
}