/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.pieShare.pieShareApp.service.configurationService; import org.pieShare.pieShareApp.model.PieShareConfiguration; import java.io.File; import org.pieShare.pieShareApp.service.configurationService.api.IApplicationConfigurationService; import org.pieShare.pieShareApp.service.configurationService.api.IConfigurationFactory; import org.pieShare.pieTools.pieUtilities.service.beanService.IBeanService; /** * * @author Richard */ public class ConfigurationFactory implements IConfigurationFactory { private IApplicationConfigurationService configurationService; private IBeanService beanService; public void setBeanService(IBeanService beanService) { this.beanService = beanService; } public void setApplicationConfiguration(IApplicationConfigurationService configurationService) { this.configurationService = configurationService; } @Override public PieShareConfiguration checkAndCreateConfig(PieShareConfiguration config, boolean create) { if (config == null) { config = beanService.getBean(PieShareConfiguration.class); } checkAndCreateFolders(config, create); return config; } private void checkAndCreateFolders(PieShareConfiguration conf, boolean createFolders) { if (conf.getPwdFile() == null) { conf.setPwdFile(new File(String.format("%s/%s", configurationService.getBaseConfigPath(), "pwd.pie"))); } if (conf.getTmpDir() == null) { conf.setTmpDir(new File(String.format("%s/%s", configurationService.getBaseConfigPath(), "tmpDir"))); } if (!conf.getTmpDir().exists() && createFolders) { conf.getTmpDir().mkdirs(); } if (conf.getWorkingDir() == null) { //todo: important!!! this has to be change to work relatively to the tmpDir!!! //instead of configuring seperate paths for tmp database and working dir setup one path //and relatively to this path all other dirs get set up conf.setWorkingDir(new File("PieShare")); } if (!conf.getWorkingDir().exists() && createFolders) { conf.getWorkingDir().mkdirs(); } } }