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.dictionary.IDictionary; import edu.asu.spring.quadriga.domain.dictionary.IItem; import edu.asu.spring.quadriga.domain.factories.ICollaboratorFactory; import edu.asu.spring.quadriga.domain.factory.dictionary.IDictionaryFactory; import edu.asu.spring.quadriga.domain.factory.dictionary.IDictionaryItemFactory; import edu.asu.spring.quadriga.dto.DictionaryCollaboratorDTO; import edu.asu.spring.quadriga.dto.DictionaryDTO; import edu.asu.spring.quadriga.dto.DictionaryItemsDTO; import edu.asu.spring.quadriga.dto.DictionaryItemsDTOPK; import edu.asu.spring.quadriga.dto.QuadrigaUserDTO; import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException; import edu.asu.spring.quadriga.service.IQuadrigaRoleManager; @Service public class DictionaryDTOMapper extends BaseMapper { @Autowired private IDictionaryFactory dictionaryFactory; @Autowired private IDictionaryItemFactory dictionaryItemsFactory; @Autowired private UserDTOMapper userMapper; @Autowired private ICollaboratorFactory collaboratorFactory; @Autowired private IQuadrigaRoleManager roleManager; public ICollaborator getDictionaryCollaborators(DictionaryCollaboratorDTO dictionaryCollaborator) { ICollaborator collaborator = null; List<IQuadrigaRole> collaboratorRoles = null; collaborator = collaboratorFactory.createCollaborator(); collaboratorRoles = new ArrayList<IQuadrigaRole>(); QuadrigaUserDTO userName = dictionaryCollaborator.getQuadrigaUserDTO(); String role = dictionaryCollaborator.getDictionaryCollaboratorDTOPK().getCollaboratorrole(); collaboratorRoles.add(roleManager.getQuadrigaRoleByDbId(IQuadrigaRoleManager.DICT_ROLES, role)); collaborator.setUserObj(userMapper.getUser(userName)); collaborator.setCollaboratorRoles(collaboratorRoles); return collaborator; } public DictionaryDTO getDictionaryDTO(IDictionary dictionary) throws QuadrigaStorageException { DictionaryDTO dictionaryDTO = new DictionaryDTO(); dictionaryDTO.setDictionaryid(dictionary.getDictionaryId()); dictionaryDTO.setDictionaryname(dictionary.getDictionaryName()); dictionaryDTO.setDescription(dictionary.getDescription()); dictionaryDTO.setAccessibility(Boolean.FALSE); dictionaryDTO.setDictionaryowner((getUserDTO(dictionary.getOwner().getUserName()))); dictionaryDTO.setCreatedby(dictionary.getOwner().getUserName()); dictionaryDTO.setCreateddate(new Date()); dictionaryDTO.setUpdatedby(dictionary.getOwner().getUserName()); dictionaryDTO.setUpdateddate(new Date()); return dictionaryDTO; } public IItem getDictionaryItem(DictionaryItemsDTO dictionaryItemsDTO) { IItem dictionaryItem = dictionaryItemsFactory.createDictionaryItemObject(); dictionaryItem.setDictionaryItemId(dictionaryItemsDTO.getDictionaryItemsDTOPK().getTermid()); dictionaryItem.setTerm(dictionaryItemsDTO.getTerm()); dictionaryItem.setPos(dictionaryItemsDTO.getPos()); return dictionaryItem; } public List<IItem> getDictionaryItemList(List<DictionaryItemsDTO> dictItemsDTOList) { List<IItem> dictItemList = new ArrayList<IItem>(); if(dictItemsDTOList != null && dictItemsDTOList.size() > 0) { Iterator<DictionaryItemsDTO> dictItemsIterator = dictItemsDTOList.iterator(); while(dictItemsIterator.hasNext()) { dictItemList.add(getDictionaryItem(dictItemsIterator.next())); } } return dictItemList; } /** * This method associates the items to dictionary. * @param dictionary * @param item * @param termid * @param pos * @param owner * @return DictionaryItemsDTO object */ public DictionaryItemsDTO getDictionaryItemsDTO(DictionaryDTO dictionary,String item,String termid, String pos, String owner) { DictionaryItemsDTO dictionaryItems = null; DictionaryItemsDTOPK dictionaryItemsKey = null; Date date = new Date(); dictionaryItemsKey = new DictionaryItemsDTOPK(dictionary.getDictionaryid(),termid); dictionaryItems = new DictionaryItemsDTO(); dictionaryItems.setDictionaryItemsDTOPK(dictionaryItemsKey); dictionaryItems.setDictionaryDTO(dictionary); dictionaryItems.setPos(pos); dictionaryItems.setTerm(item); dictionaryItems.setCreatedby(owner); dictionaryItems.setCreateddate(date); dictionaryItems.setUpdatedby(owner); dictionaryItems.setUpdateddate(date); return dictionaryItems; } }