package edu.asu.spring.quadriga.service.textfile.mapper.impl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import edu.asu.spring.quadriga.domain.enums.ETextAccessibility;
import edu.asu.spring.quadriga.domain.factory.workspace.ITextFileFactory;
import edu.asu.spring.quadriga.domain.impl.workspace.TextFile;
import edu.asu.spring.quadriga.domain.workspace.ITextFile;
import edu.asu.spring.quadriga.dto.TextFileDTO;
import edu.asu.spring.quadriga.service.textfile.mapper.ITextFileMapper;
/**
* @author Nischal Samji
*
*/
@Service
public class TextFileMapper implements ITextFileMapper {
@Autowired
private ITextFileFactory textFileFactory;
private static final Logger logger = LoggerFactory.getLogger(TextFileMapper.class);
@Override
public ITextFile getTextFile(TextFileDTO tfDTO) {
ITextFile txtFile = textFileFactory.createTextFileObject();
txtFile.setTextId(tfDTO.getTextId());
txtFile.setRefId(tfDTO.getRefId());
txtFile.setFileName(tfDTO.getFilename());
txtFile.setProjectId(tfDTO.getProjectId());
txtFile.setWorkspaceId(tfDTO.getWorkspaceId());
try {
txtFile.setAccessibility(ETextAccessibility.valueOf(tfDTO.getAccessibility()));
} catch (NullPointerException npe) {
logger.error("error:", npe);
txtFile.setAccessibility(ETextAccessibility.PRIVATE);
}
txtFile.setAuthor(tfDTO.getAuthor());
txtFile.setTitle(tfDTO.getTitle());
txtFile.setCreationDate(tfDTO.getCreationDate());
return txtFile;
}
@Override
public TextFileDTO getTextFileDTO(ITextFile txtFile) {
TextFileDTO tfDTO = new TextFileDTO();
tfDTO.setFilename(txtFile.getFileName());
tfDTO.setProjectId(txtFile.getProjectId());
tfDTO.setRefId(txtFile.getRefId());
tfDTO.setWorkspaceId(txtFile.getWorkspaceId());
tfDTO.setAccessibility(txtFile.getAccessibility().name());
tfDTO.setTextId(txtFile.getTextId());
tfDTO.setAuthor(txtFile.getAuthor());
tfDTO.setTitle(txtFile.getTitle());
tfDTO.setCreationDate(txtFile.getCreationDate());
return tfDTO;
}
}