package edu.asu.spring.quadriga.mapper.workbench;
import edu.asu.spring.quadriga.domain.workbench.IProject;
import edu.asu.spring.quadriga.dto.ConceptCollectionDTO;
import edu.asu.spring.quadriga.dto.DictionaryDTO;
import edu.asu.spring.quadriga.dto.ProjectConceptCollectionDTO;
import edu.asu.spring.quadriga.dto.ProjectDTO;
import edu.asu.spring.quadriga.dto.ProjectDictionaryDTO;
import edu.asu.spring.quadriga.dto.ProjectEditorDTO;
import edu.asu.spring.quadriga.dto.ProjectWorkspaceDTO;
import edu.asu.spring.quadriga.dto.WorkspaceDTO;
import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException;
public interface IProjectBaseMapper {
public abstract IProject getProject(ProjectDTO projectDTO)
throws QuadrigaStorageException;
public abstract ProjectDTO getProjectDTO(IProject project);
public abstract ProjectEditorDTO getProjectEditor(ProjectDTO project,
String userName) throws QuadrigaStorageException;
/**
* This method associated the dictionary with the specified project.
*
* @param project
* @param dictionary
* @param userName
* @return ProjectDictionaryDTO object
*/
public abstract ProjectDictionaryDTO getProjectDictionary(
ProjectDTO project, DictionaryDTO dictionary, String userName);
/**
* This method associates the concept collection to the given project.
*
* @param project
* @param conceptCollection
* @param userName
* @return ProjectConceptCollectionDTO object
*/
public abstract ProjectConceptCollectionDTO getProjectConceptCollection(
ProjectDTO project, ConceptCollectionDTO conceptCollection,
String userName);
/**
* This method associates the workspace with the given project
*
* @param project
* @param workspace
* @return ProjectWorkspaceDTO object
*/
public abstract ProjectWorkspaceDTO getProjectWorkspace(ProjectDTO project,
WorkspaceDTO workspace);
}