package edu.asu.spring.quadriga.mapper.workbench.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import edu.asu.spring.quadriga.domain.workbench.IProject;
import edu.asu.spring.quadriga.dto.ProjectDTO;
import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException;
import edu.asu.spring.quadriga.mapper.workbench.IProjectConceptCollectionShallowMapper;
import edu.asu.spring.quadriga.mapper.workbench.IProjectDeepMapper;
import edu.asu.spring.quadriga.mapper.workbench.IProjectDictionaryShallowMapper;
import edu.asu.spring.quadriga.mapper.workspace.IWorkspaceShallowMapper;
@Service
public class ProjectDeepMapper extends ProjectDTOMapper implements
IProjectDeepMapper {
@Autowired
private IProjectConceptCollectionShallowMapper projectConceptCollectionShallowMapper;
@Autowired
private IProjectDictionaryShallowMapper projectDictionaryShallowMapper;
@Autowired
private IWorkspaceShallowMapper wsShallowMapper;
/**
* {@inheritDoc}
*/
@Override
@Transactional
public IProject getProject(ProjectDTO projectDTO)
throws QuadrigaStorageException {
IProject project = super.getProject(projectDTO);
// Set Project Concept Collections
project.setProjectConceptCollections(projectConceptCollectionShallowMapper
.getProjectConceptCollectionList(project,
projectDTO.getProjectConceptCollectionDTOList()));
// Set Project Dictionaries
project.setProjectDictionaries(projectDictionaryShallowMapper
.getProjectDictionaryList(project, projectDTO));
// Set Project Workspaces
project.setProjectWorkspaces(wsShallowMapper
.getProjectWorkspaceList(project, projectDTO.getProjectWorkspaceDTOList()));
return project;
}
}