/*
* 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.database;
import java.io.File;
import org.pieShare.pieShareApp.model.PieShareAppBeanNames;
import org.pieShare.pieShareApp.model.PieUser;
import org.pieShare.pieShareApp.model.entities.ConfigurationEntity;
import org.pieShare.pieShareApp.model.entities.FilterEntity;
import org.pieShare.pieShareApp.model.entities.PieFileEntity;
import org.pieShare.pieShareApp.model.entities.PieUserEntity;
import org.pieShare.pieShareApp.model.pieFile.PieFile;
import org.pieShare.pieShareApp.model.PieShareConfiguration;
import org.pieShare.pieShareApp.service.database.api.IModelEntityConverterService;
import org.pieShare.pieShareApp.service.fileFilterService.filters.RegexFileFilter;
import org.pieShare.pieShareApp.service.fileFilterService.filters.api.IFilter;
import org.pieShare.pieTools.pieUtilities.service.beanService.IBeanService;
/**
*
* @author Svetoslav
*/
public class ModelEntityConverterService implements IModelEntityConverterService {
private IBeanService beanService;
public void setBeanService(IBeanService beanService) {
this.beanService = beanService;
}
@Override
public PieFileEntity convertToEntity(PieFile file) {
PieFileEntity entity = this.beanService.getBean(PieFileEntity.class);
entity.setMd5(file.getMd5());
entity.setLastModified(file.getLastModified());
entity.setFileName(file.getFileName());
entity.setRelativeFilePath(file.getRelativeFilePath());
entity.setDeleted(file.isDeleted());
entity.setAbsoluteWorkingPath(file.getRelativeFilePath());
return entity;
}
@Override
public PieFile convertFromEntity(PieFileEntity entity) {
if(entity == null) {
return null;
}
PieFile file = this.beanService.getBean(PieFile.class);
file.setFileName(entity.getFileName());
file.setLastModified(entity.getLastModified());
file.setMd5(entity.getMd5());
file.setRelativeFilePath(entity.getRelativeFilePath());
file.setDeleted(entity.isDeleted());
return file;
}
@Override
public PieUserEntity convertToEntity(PieUser user) {
PieUserEntity entity = new PieUserEntity();
entity.setHasPasswordFile(user.hasPasswordFile());
entity.setUserName(user.getUserName());
entity.setConfigurationEntity(this.convertToEntity(user.getPieShareConfiguration(), user));
entity.getConfigurationEntity().setPieUserEntity(entity);
return entity;
}
@Override
public PieUser convertFromEntity(PieUserEntity entity) {
PieUser user = beanService.getBean(PieShareAppBeanNames.getPieUser());
user.setHasPasswordFile(entity.isHasPasswordFile());
user.setUserName(entity.getUserName());
user.setIsLoggedIn(false);
user.setPieShareConfiguration(convertFromEntity(entity.getConfigurationEntity()));
return user;
}
@Override
public PieShareConfiguration convertFromEntity(ConfigurationEntity entity) {
if (entity == null) {
return null;
}
PieShareConfiguration configuration = new PieShareConfiguration();
configuration.setPwdFile(new File(entity.getPwdFile()));
configuration.setTmpDir(new File(entity.getTmpDir()));
configuration.setWorkingDir(new File(entity.getWorkingDir()));
return configuration;
}
@Override
public ConfigurationEntity convertToEntity(PieShareConfiguration conf, PieUser user) {
ConfigurationEntity entity = new ConfigurationEntity();
entity.setPwdFile(conf.getPwdFile().toPath().toString());
entity.setTmpDir(conf.getTmpDir().toPath().toString());
entity.setWorkingDir(conf.getWorkingDir().toPath().toString());
entity.setUser(user.getUserName());
return entity;
}
@Override
public FilterEntity convertToEntity(IFilter filter) {
//ToDo: Spring
FilterEntity en = new FilterEntity();
en.setPattern(filter.getPattern());
filter.setEntity(en);
return en;
}
@Override
public RegexFileFilter convertFromEntity(FilterEntity entity) {
RegexFileFilter filter = beanService.getBean(RegexFileFilter.class);
filter.setEntity(entity);
filter.setPattern(entity.getPattern());
return filter;
}
}