package edu.asu.spring.quadriga.mapper; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import edu.asu.spring.quadriga.domain.factory.workspace.IWorkspaceFactory; import edu.asu.spring.quadriga.domain.workspace.IWorkSpace; import edu.asu.spring.quadriga.dto.ConceptCollectionDTO; import edu.asu.spring.quadriga.dto.DictionaryDTO; import edu.asu.spring.quadriga.dto.ProjectDTO; import edu.asu.spring.quadriga.dto.WorkspaceConceptcollectionDTO; import edu.asu.spring.quadriga.dto.WorkspaceConceptcollectionDTOPK; import edu.asu.spring.quadriga.dto.WorkspaceDTO; import edu.asu.spring.quadriga.dto.WorkspaceDictionaryDTO; import edu.asu.spring.quadriga.dto.WorkspaceDictionaryDTOPK; import edu.asu.spring.quadriga.dto.WorkspaceEditorDTO; import edu.asu.spring.quadriga.dto.WorkspaceEditorDTOPK; import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException; import edu.asu.spring.quadriga.mapper.workbench.IProjectShallowMapper; import edu.asu.spring.quadriga.service.IUserManager; @Service public class WorkspaceDTOMapper extends BaseMapper { @Autowired private IWorkspaceFactory workspaceFactory; @Autowired private IProjectShallowMapper projectMapper; @Autowired private IUserManager userManager; public WorkspaceDTO getWorkspaceDTO(IWorkSpace iWorkSpace) { WorkspaceDTO workspaceDTO = new WorkspaceDTO(); workspaceDTO.setWorkspacename(iWorkSpace.getWorkspaceName()); workspaceDTO.setDescription(iWorkSpace.getDescription()); workspaceDTO.setWorkspaceowner((getUserDTO(iWorkSpace.getOwner().getUserName()))); workspaceDTO.setIsarchived(false); workspaceDTO.setIsdeactivated(false); workspaceDTO.setUpdatedby(iWorkSpace.getOwner().getUserName()); workspaceDTO.setUpdateddate(new Date()); workspaceDTO.setCreatedby(iWorkSpace.getOwner().getUserName()); workspaceDTO.setCreateddate(new Date()); return workspaceDTO; } public IWorkSpace getWorkSpace(WorkspaceDTO workspaceDTO) throws QuadrigaStorageException { IWorkSpace workSpace = workspaceFactory.createWorkspaceObject(); workSpace.setWorkspaceName(workspaceDTO.getWorkspacename()); workSpace.setDescription(workspaceDTO.getDescription()); workSpace.setWorkspaceId(workspaceDTO.getWorkspaceid()); workSpace.setOwner(userManager.getUser(workspaceDTO.getWorkspaceowner().getUsername())); ProjectDTO projectDto = workspaceDTO.getProjectWorkspaceDTO().getProjectDTO(); workSpace.setProject(projectMapper.getProject(projectDto)); return workSpace; } public List<IWorkSpace> getWorkSpaceList(List<WorkspaceDTO> workspaceDTOList) throws QuadrigaStorageException { Iterator<WorkspaceDTO> workspaceItr = workspaceDTOList.listIterator(); List<IWorkSpace> workspaceList = new ArrayList<IWorkSpace>(); while(workspaceItr.hasNext()) { WorkspaceDTO workspaceDTO = workspaceItr.next(); workspaceList.add(getWorkSpace(workspaceDTO)); } return workspaceList; } /** * This method associates editor with the workspace supplied * @param workspace * @param userName * @return WorkspaceEditorDTO object * @throws QuadrigaStorageException */ public WorkspaceEditorDTO getWorkspaceEditor(WorkspaceDTO workspace, String userName) throws QuadrigaStorageException { WorkspaceEditorDTO workspaceEditor = null; WorkspaceEditorDTOPK workspaceEditorKey = null; Date date = new Date(); workspaceEditor = new WorkspaceEditorDTO(); workspaceEditorKey = new WorkspaceEditorDTOPK(workspace.getWorkspaceid(),userName); workspaceEditor.setWorkspaceEditorDTOPK(workspaceEditorKey); workspaceEditor.setWorkspaceDTO(workspace); workspaceEditor.setQuadrigaUserDTO(getUserDTO(userName)); workspaceEditor.setCreatedby(userName); workspaceEditor.setCreateddate(date); workspaceEditor.setUpdatedby(userName); workspaceEditor.setUpdateddate(date); return workspaceEditor; } /** * This method associates the concept collection to the given workspace. * @param workspace * @param conceptCollection * @param userName * @return WorkspaceConceptCollectionDTO object */ public WorkspaceConceptcollectionDTO getWorkspaceConceptCollection(WorkspaceDTO workspace, ConceptCollectionDTO conceptCollection,String userName) { WorkspaceConceptcollectionDTO workspaceConceptCollection = null; WorkspaceConceptcollectionDTOPK workspaceConceptCollectionKey = null; Date date = new Date(); workspaceConceptCollectionKey = new WorkspaceConceptcollectionDTOPK(workspace.getWorkspaceid(),conceptCollection.getConceptCollectionid()); workspaceConceptCollection = new WorkspaceConceptcollectionDTO(); workspaceConceptCollection.setWorkspaceConceptcollectionDTOPK(workspaceConceptCollectionKey); workspaceConceptCollection.setWorkspaceDTO(workspace); workspaceConceptCollection.setConceptCollectionDTO(conceptCollection); workspaceConceptCollection.setCreatedby(userName); workspaceConceptCollection.setCreateddate(date); workspaceConceptCollection.setUpdatedby(userName); workspaceConceptCollection.setUpdateddate(date); return workspaceConceptCollection; } /** * This method associates the dictionary to the given workspace. * @param workspace * @param dictionary * @param userName * @return WorkspaceConceptCollectionDTO object */ public WorkspaceDictionaryDTO getWorkspaceDictionary(WorkspaceDTO workspace, DictionaryDTO dictionary, String userName) { WorkspaceDictionaryDTO workspaceDictionary = null; WorkspaceDictionaryDTOPK workspaceDictionaryKey = null; Date date = new Date(); workspaceDictionaryKey = new WorkspaceDictionaryDTOPK(workspace.getWorkspaceid(),dictionary.getDictionaryid()); workspaceDictionary = new WorkspaceDictionaryDTO(); workspaceDictionary.setWorkspaceDictionaryDTOPK(workspaceDictionaryKey); workspaceDictionary.setCreatedby(userName); workspaceDictionary.setCreateddate(date); workspaceDictionary.setUpdatedby(userName); workspaceDictionary.setUpdateddate(date); workspaceDictionary.setDictionaryDTO(dictionary); workspaceDictionary.setWorkspaceDTO(workspace); return workspaceDictionary; } }