package edu.asu.spring.quadriga.service.network.mapper.impl; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import edu.asu.spring.quadriga.dao.IEditorDAO; import edu.asu.spring.quadriga.dao.INetworkDAO; import edu.asu.spring.quadriga.domain.IUser; import edu.asu.spring.quadriga.domain.factory.impl.networks.NetworkFactory; import edu.asu.spring.quadriga.domain.factory.networks.INetworkNodeInfoFactory; import edu.asu.spring.quadriga.domain.network.INetwork; import edu.asu.spring.quadriga.domain.network.INetworkNodeInfo; import edu.asu.spring.quadriga.domain.workspace.IWorkspaceNetwork; import edu.asu.spring.quadriga.dto.NetworkStatementsDTO; import edu.asu.spring.quadriga.dto.NetworksDTO; import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException; import edu.asu.spring.quadriga.service.network.mapper.INetworkMapper; import edu.asu.spring.quadriga.service.network.mapper.IWorkspaceNetworkMapper; import edu.asu.spring.quadriga.service.user.mapper.IUserDeepMapper; @Service public class NetworkMapper implements INetworkMapper{ @Autowired private INetworkDAO dbconnect; @Autowired private IEditorDAO editormanager; @Autowired private NetworkFactory networkFactory; @Autowired private IUserDeepMapper userDeepMapper; @Autowired private IWorkspaceNetworkMapper networkworkspacemapper; @Autowired private INetworkNodeInfoFactory networkNodeInfoFactory; @Override public INetwork getNetwork(NetworksDTO networksDTO) throws QuadrigaStorageException { INetwork network = null; if(networksDTO != null) { network = networkFactory.createNetworkObject(); network.setNetworkId(networksDTO.getNetworkid()); network.setNetworkName(networksDTO.getNetworkname()); IWorkspaceNetwork networkworkspace = networkworkspacemapper.getNetworkWorkspaceByNetworkDTO(networksDTO, network); network.setNetworkWorkspace(networkworkspace); network.setStatus(networksDTO.getStatus()); if(networksDTO.getNetworkowner() != null) network.setCreator(userDeepMapper.getUser(networksDTO.getNetworkowner())); network.setCreatedBy(networksDTO.getCreatedby()); network.setCreatedDate(networksDTO.getCreateddate()); network.setUpdatedBy(networksDTO.getUpdatedby()); network.setUpdatedDate(networksDTO.getUpdateddate()); List<Integer> version = dbconnect.getLatestVersionOfNetwork(networksDTO.getNetworkid()); if(version!=null && !version.isEmpty()){ network.setVersionNumber(version.get(0)); } List<NetworkStatementsDTO> networkStatementsDTOList = networksDTO.getNetworkStamentesDTOList(); List<INetworkNodeInfo> networkList = null; if(networkStatementsDTOList != null) { networkList = new ArrayList<INetworkNodeInfo>(); INetworkNodeInfo networkNodeInfo = null; for(NetworkStatementsDTO networkStatementsDTO:networkStatementsDTOList) { networkNodeInfo = networkNodeInfoFactory.createNetworkNodeInfoObject(); networkNodeInfo.setId(networkStatementsDTO.getStatementid()); networkNodeInfo.setStatementType(networkStatementsDTO.getStatementtype()); networkNodeInfo.setVersion(networkStatementsDTO.getVersion()); networkNodeInfo.setIsTop(networkStatementsDTO.getIstop()); networkList.add(networkNodeInfo); } } network.setNetworkNodes(networkList); //TODO : add version number and text url to network DTO //network.setAssignedUser(networksDTO.get) //network.setNetworkNodes(networksDTO.get) //network.setNetworksAccess(networksDTO.getn) //network.setTextUrl(textUrl) //network.setVersionNumber(networksDTO.get) } return network; } @Override public INetwork getNetworkShallowDetails(NetworksDTO networksDTO) throws QuadrigaStorageException{ INetwork network = null; if(networksDTO != null) { network = networkFactory.createNetworkObject(); network.setNetworkId(networksDTO.getNetworkid()); network.setNetworkName(networksDTO.getNetworkname()); network.setStatus(networksDTO.getStatus()); if(networksDTO.getNetworkowner() != null) network.setCreator(userDeepMapper.getUser(networksDTO.getNetworkowner())); network.setCreatedBy(networksDTO.getCreatedby()); network.setCreatedDate(networksDTO.getCreateddate()); network.setUpdatedBy(networksDTO.getUpdatedby()); network.setUpdatedDate(networksDTO.getUpdateddate()); } return network; } @Override public List<INetwork> getListOfNetworksForUser(IUser user) throws QuadrigaStorageException { List<INetwork> networkList = null; List<NetworksDTO> networksDTO = dbconnect.getNetworkList(user); if(networksDTO!=null){ networkList = getNetworkListFromDTOList(networksDTO); } return networkList; } @Override public List<INetwork> getListOfApprovedNetworks() throws QuadrigaStorageException { List<NetworksDTO> networksDTO = dbconnect.getApprovedNetworkList(); if(networksDTO!=null){ return getNetworkListFromDTOList(networksDTO); } return null; } @Override public List<INetwork> getNetworkListForProject(String projectid) throws QuadrigaStorageException{ List<INetwork> networkList = null; List<NetworksDTO> networksDTO = dbconnect.getNetworkDTOList(projectid); if(networksDTO!=null){ networkList = getNetworkListFromDTOList(networksDTO); } return networkList; } @Override public List<INetwork> getNetworksOfUserWithStatus(IUser user, String networkStatus) throws QuadrigaStorageException{ List<INetwork> networkList = null; List<NetworksDTO> networksDTO = editormanager.getNetworksOfUserWithStatus(user,networkStatus); if(networksDTO!=null){ networkList = getNetworkListFromDTOList(networksDTO); } return networkList; } @Override public List<INetworkNodeInfo> getNetworkNodes(String networkId,int versionId) throws QuadrigaStorageException{ List<INetworkNodeInfo> networkNodeList = null; List<NetworkStatementsDTO> networkStatementsDTOList = dbconnect.getNetworkNodes(networkId, versionId); if(networkStatementsDTOList != null) { networkNodeList = new ArrayList<INetworkNodeInfo>(); INetworkNodeInfo networkNodeInfo = null; for(NetworkStatementsDTO networkStatementsDTO:networkStatementsDTOList) { networkNodeInfo = networkNodeInfoFactory.createNetworkNodeInfoObject(); networkNodeInfo.setId(networkStatementsDTO.getStatementid()); networkNodeInfo.setStatementType(networkStatementsDTO.getStatementtype()); networkNodeInfo.setVersion(networkStatementsDTO.getVersion()); networkNodeInfo.setIsTop(networkStatementsDTO.getIstop()); networkNodeList.add(networkNodeInfo); } } return networkNodeList; } @Override public List<INetwork> getEditorNetworkList(IUser user) throws QuadrigaStorageException{ List<INetwork> networkList = null; List<NetworksDTO> networksDTO = editormanager.getEditorNetworkList(user); if(networksDTO!=null){ networkList = getNetworkListFromDTOList(networksDTO); } return networkList; } public List<INetwork> getNetworkListFromDTOList(List<NetworksDTO> networksDTOList) throws QuadrigaStorageException{ List<INetwork> networkList = null; if(networksDTOList != null) { networkList = new ArrayList<INetwork>(); INetwork network = null; for(NetworksDTO networkDTO: networksDTOList) { network = networkFactory.createNetworkObject(); network.setNetworkId(networkDTO.getNetworkid()); network.setNetworkName(networkDTO.getNetworkname()); network.setStatus(networkDTO.getStatus()); network.setCreatedDate(networkDTO.getCreateddate()); IWorkspaceNetwork networkworkspace = networkworkspacemapper.getNetworkWorkspaceByNetworkDTO(networkDTO, network); network.setNetworkWorkspace(networkworkspace); if(networkDTO.getNetworkowner() != null) network.setCreator(userDeepMapper.getUser(networkDTO.getNetworkowner())); networkList.add(network); } } return networkList; } }