All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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