
com.talk2object.plum.interaction.application.PlumFactory Maven / Gradle / Ivy
The newest version!
package com.talk2object.plum.interaction.application;
import com.talk2object.plum.interaction.session.SessionManager;
import com.talk2object.plum.interaction.session.SessionManagerImpl;
import com.talk2object.plum.repository.biz.TransactionExecutor;
import com.talk2object.plum.repository.biz.interafce.Repository;
import com.talk2object.plum.security.SecurityService;
import com.talk2object.plum.viewgeneration.ViewFactory;
import com.talk2object.plum.viewgeneration.ViewFactoryImpl;
public class PlumFactory {
private String viewBuilderBasePackage;
private String defaultModelClassName;
private TransactionExecutor transactionExecutor;
private ViewFactory viewFactory;
private Repository repository;
private SessionManager sessionManager;
private SecurityService securityService;
public PlumFactory() {
init();
}
public PlumFactory(String viewBuilderBasePackage,
String defaultModelClassName,
TransactionExecutor transactionExecutor, Repository repository,
SecurityService securityService) {
this.viewBuilderBasePackage = viewBuilderBasePackage;
this.defaultModelClassName = defaultModelClassName;
this.transactionExecutor = transactionExecutor;
this.repository = repository;
this.securityService = securityService;
init();
}
private void init() {
if (transactionExecutor == null) {
transactionExecutor = new TransactionExecutor();
}
if (viewFactory == null) {
ViewFactoryImpl vf = new ViewFactoryImpl();
if (viewBuilderBasePackage != null
&& !viewBuilderBasePackage.isEmpty())
vf.setBasePackage(viewBuilderBasePackage);
viewFactory = vf;
}
if (sessionManager == null) {
SessionManagerImpl sm = new SessionManagerImpl();
sm.setDefaultModelClassName(defaultModelClassName);
sessionManager = sm;
}
}
public Plum create() {
Plum plum = new Plum();
plum.setTransactionExecutor(transactionExecutor);
plum.setRepository(repository);
plum.setViewFactory(viewFactory);
plum.setSessionManager(sessionManager);
plum.setSecurityService(securityService);
return plum;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy