package edu.asu.spring.quadriga.mapper.workspace; import java.util.List; import edu.asu.spring.quadriga.domain.impl.workbench.Project; import edu.asu.spring.quadriga.domain.impl.workspace.WorkSpace; import edu.asu.spring.quadriga.domain.proxy.WorkSpaceProxy; import edu.asu.spring.quadriga.domain.workbench.IProject; import edu.asu.spring.quadriga.domain.workbench.IProjectWorkspace; import edu.asu.spring.quadriga.domain.workspace.IWorkSpace; import edu.asu.spring.quadriga.dto.ProjectWorkspaceDTO; import edu.asu.spring.quadriga.dto.WorkspaceDTO; import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException; /** * This interface has methods to implement the mapping of DTO object to Domain * objects for the service layer for Workspace. These methods need to map * {@link WorkspaceDTO} to {@link WorkSpaceProxy} object. * * @author Lohith Dwaraka, Julia Damerow * */ public interface IWorkspaceShallowMapper extends IBaseWorkspaceMapper { /** * This class should get a {@link IWorkSpace} of domain class type * {@link WorkSpaceProxy} for a {@link IWorkSpace} ID. * * @param workspaceDTO * {@link WorkspaceDTO} object * @return Returns {@link IWorkSpace} object of domain class typ * {@link WorkSpaceProxy} * @throws QuadrigaStorageException * Throws the storage exception when the method has issues to * access the database */ IWorkSpace mapWorkspaceDTO(WorkspaceDTO workspaceDTO) throws QuadrigaStorageException; /** * Given a list of {@link ProjectWorkspaceDTO}s, this method create a list of {@link IProjectWorkspace}s * that connect {@link Project}s with {@link WorkSpace}s. The {@link WorkSpace}s that are * referenced in the {@link IProjectWorkspace}s are {@link WorkSpaceProxy}s. * * @param project The project that the {@link IProjectWorkspace}s link to. * @param projectWorkspaceDTOList the list of {@link ProjectWorkspaceDTO}s that should be turned * into {@link IProjectWorkspace}s. * @return * @throws QuadrigaStorageException */ List<IProjectWorkspace> getProjectWorkspaceList(IProject project, List<ProjectWorkspaceDTO> projectWorkspaceDTOList) throws QuadrigaStorageException; }