package edu.asu.spring.quadriga.mapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import edu.asu.spring.quadriga.domain.impl.projectblog.ProjectBlogEntry; import edu.asu.spring.quadriga.domain.projectblog.IProjectBlogEntry; import edu.asu.spring.quadriga.dto.ProjectBlogEntryDTO; import edu.asu.spring.quadriga.dto.QuadrigaUserDTO; import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException; import edu.asu.spring.quadriga.service.IUserManager; /** * This DTO mapper class provides the mapping from {@linkplain IProjectBlogEntry} * instance to {@linkplain ProjectBlogEntryDTO} instance. * * @author PawanMahalle * */ @Service public class ProjectBlogEntryDTOMapper extends BaseMapper { @Autowired private IUserManager userManager; /** * generates {@linkplain ProjectBlogEntryDTO} when {@linkplain IProjectBlogEntry} is * provided * * @param projectBlogEntry * @param userName * @return */ public ProjectBlogEntryDTO getProjectBlogEntryDTO(IProjectBlogEntry projectBlogEntry) { ProjectBlogEntryDTO projectBlogEntryDTO = new ProjectBlogEntryDTO(); projectBlogEntryDTO.setProjectBlogEntryId(projectBlogEntry.getProjectBlogEntryId()); projectBlogEntryDTO.setTitle(projectBlogEntry.getTitle()); projectBlogEntryDTO.setDescription(projectBlogEntry.getDescription()); projectBlogEntryDTO.setCreatedDate(projectBlogEntry.getCreatedDate()); String username = projectBlogEntry.getAuthor().getUserName(); QuadrigaUserDTO author = getUserDTO(username); projectBlogEntryDTO.setProjectBlogEntryAuthorDTO(author); projectBlogEntryDTO.setAuthor(author.getUsername()); projectBlogEntryDTO.setProjectid(projectBlogEntry.getProjectId()); return projectBlogEntryDTO; } /** * generates {@linkplain IProjectBlogEntry} when {@linkplain ProjectBlogEntryDTO} is * provided * * @param projectBlogEntryDTO * @return * @throws QuadrigaStorageException */ public IProjectBlogEntry getProjectBlogEntry(ProjectBlogEntryDTO projectBlogEntryDTO) throws QuadrigaStorageException { IProjectBlogEntry projectBlogEntry = new ProjectBlogEntry(); projectBlogEntry.setProjectBlogEntryId(projectBlogEntryDTO.getProjectBlogEntryId()); projectBlogEntry.setTitle(projectBlogEntryDTO.getTitle()); projectBlogEntry.setDescription(projectBlogEntryDTO.getDescription()); projectBlogEntry.setCreatedDate(projectBlogEntryDTO.getCreatedDate()); projectBlogEntry.setProjectId(projectBlogEntryDTO.getProjectid()); String author = projectBlogEntryDTO.getAuthor(); projectBlogEntry.setAuthor(userManager.getUser(author)); return projectBlogEntry; } }