package edu.asu.spring.quadriga.dao.workbench.impl;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import edu.asu.spring.quadriga.dao.impl.BaseDAO;
import edu.asu.spring.quadriga.dao.workbench.IProjectWorkspaceDAO;
import edu.asu.spring.quadriga.dto.ProjectWorkspaceDTO;
import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException;
@Service
public class ProjectWorkspaceDAO extends BaseDAO<ProjectWorkspaceDTO> implements
IProjectWorkspaceDAO {
@Override
public ProjectWorkspaceDTO getDTO(String id) {
return getDTO(ProjectWorkspaceDTO.class, id);
}
/**
* This method gets the project id for the workspace id.
*
* @param workspaceId
* @return Project Id - String object
* @throws QuadrigaStorageException
*/
@Override
@Transactional
public String getCorrespondingProjectID(String workspaceId)
throws QuadrigaStorageException {
ProjectWorkspaceDTO projectWorkspaceDTO = null;
try {
Query query = sessionFactory.getCurrentSession().getNamedQuery(
"ProjectWorkspaceDTO.findByWorkspaceid");
query.setParameter("workspaceid", workspaceId);
projectWorkspaceDTO = (ProjectWorkspaceDTO) query.uniqueResult();
} catch (HibernateException he) {
throw new QuadrigaStorageException(he);
}
if (projectWorkspaceDTO != null) {
return projectWorkspaceDTO.getProjectDTO() != null ? projectWorkspaceDTO
.getProjectDTO().getProjectid() : null;
}
return null;
}
}