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.ICollaborator; import edu.asu.spring.quadriga.domain.IQuadrigaRole; import edu.asu.spring.quadriga.domain.conceptcollection.IConcept; import edu.asu.spring.quadriga.domain.conceptcollection.IConceptCollection; import edu.asu.spring.quadriga.domain.factories.ICollaboratorFactory; import edu.asu.spring.quadriga.domain.factory.conceptcollection.IConceptCollectionFactory; import edu.asu.spring.quadriga.domain.factory.conceptcollection.IConceptFactory; import edu.asu.spring.quadriga.dto.ConceptCollectionCollaboratorDTO; import edu.asu.spring.quadriga.dto.ConceptCollectionDTO; import edu.asu.spring.quadriga.dto.ConceptsDTO; import edu.asu.spring.quadriga.dto.QuadrigaUserDTO; import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException; import edu.asu.spring.quadriga.service.IQuadrigaRoleManager; @Service public class ConceptCollectionDTOMapper extends BaseMapper { @Autowired private IConceptCollectionFactory conceptCollectionFactory; @Autowired private IConceptFactory conceptFactory; @Autowired private ICollaboratorFactory collaboratorFactory; @Autowired private UserDTOMapper userDTOMapper; @Autowired private IQuadrigaRoleManager roleManager; public IConcept getConceptCollectionItems(ConceptsDTO conceptDTO) { IConcept concept = null; concept = conceptFactory.createConceptObject(); concept.setConceptId(conceptDTO.getItem()); concept.setDescription(conceptDTO.getDescription()); concept.setLemma(conceptDTO.getLemma()); concept.setPos(conceptDTO.getPos()); return concept; } public List<IConcept> getConceptCollectionItemList(List<ConceptsDTO> conceptsList) { List<IConcept> conceptList = new ArrayList<IConcept>(); if(conceptsList != null && conceptsList.size() > 0) { Iterator<ConceptsDTO> ccItemsIterator = conceptsList.iterator(); while(ccItemsIterator.hasNext()) { conceptList.add(getConceptCollectionItems(ccItemsIterator.next())); } } return conceptList; } public ICollaborator getConceptCollectionCollaborators(ConceptCollectionCollaboratorDTO conceptCollectionCollaborator) { ICollaborator collaborator = null; List<IQuadrigaRole> collaboratorRoles = null; collaborator = collaboratorFactory.createCollaborator(); collaboratorRoles = new ArrayList<IQuadrigaRole>(); QuadrigaUserDTO userName = conceptCollectionCollaborator.getQuadrigaUserDTO(); String role = conceptCollectionCollaborator.getCollaboratorDTOPK().getCollaboratorrole(); collaboratorRoles.add(roleManager.getQuadrigaRoleByDbId(IQuadrigaRoleManager.CONCEPT_COLLECTION_ROLES, role)); collaborator.setUserObj(userDTOMapper.getUser(userName)); collaborator.setCollaboratorRoles(collaboratorRoles); //TODO : add collaborator description return collaborator; } /** * * Returns ConceptcollectionsDTO mapped to Conceptcollection * @param conceptCollection * @return ConceptcollectionsDTO * @author Karthik Jayaraman * */ public ConceptCollectionDTO getConceptCollectionDTO(IConceptCollection conceptCollection) throws QuadrigaStorageException { ConceptCollectionDTO conceptcollectionsDTO = new ConceptCollectionDTO(); conceptcollectionsDTO.setUpdatedby(conceptCollection.getOwner().getUserName()); conceptcollectionsDTO.setUpdateddate(new Date()); conceptcollectionsDTO.setCreatedby(conceptCollection.getOwner().getUserName()); conceptcollectionsDTO.setCreateddate(new Date()); conceptcollectionsDTO.setCollectionname(conceptCollection.getConceptCollectionName()); conceptcollectionsDTO.setDescription(conceptCollection.getDescription()); conceptcollectionsDTO.setCollectionname(conceptCollection.getConceptCollectionName()); conceptcollectionsDTO.setCollectionowner(getUserDTO(conceptCollection.getOwner().getUserName())); conceptcollectionsDTO.setAccessibility(Boolean.FALSE); return conceptcollectionsDTO; } }