package is.idega.idegaweb.egov.bpm.cases.messages;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import com.idega.jbpm.exe.BPMFactory;
import com.idega.jbpm.exe.ProcessInstanceW;
import com.idega.jbpm.identity.BPMUserFactory;
import com.idega.user.data.User;
/**
* @author <a href="mailto:civilis@idega.com">Vytautas Čivilis</a>
* @version $Revision: 1.2 $
*
* Last modified: $Date: 2009/01/22 17:29:22 $ by $Author: anton $
*/
@Service
@Scope(BeanDefinition.SCOPE_SINGLETON)
public class CaseUserFactory {
@Autowired private BPMFactory bpmFactory;
@Autowired private BPMUserFactory bpmUserFactory;
public CaseUserImpl getCaseUser(User user, ProcessInstanceW piw) {
// TODO: use some caching or smth
return createCaseUser(user, piw);
}
private CaseUserImpl createCaseUser(User user, ProcessInstanceW piw) {
CaseUserImpl caseUser = new CaseUserImpl(user, piw);
caseUser.setBpmFactory(getBpmFactory());
caseUser.setBpmUserFactory(getBpmUserFactory());
return caseUser;
}
BPMFactory getBpmFactory() {
return bpmFactory;
}
void setBpmFactory(BPMFactory bpmFactory) {
this.bpmFactory = bpmFactory;
}
BPMUserFactory getBpmUserFactory() {
return bpmUserFactory;
}
void setBpmUserFactory(BPMUserFactory bpmUserFactory) {
this.bpmUserFactory = bpmUserFactory;
}
}