net.sf.gazpachoquest.facades.impl.ResearchFacadeImpl.java Source code

Java tutorial

Introduction

Here is the source code for net.sf.gazpachoquest.facades.impl.ResearchFacadeImpl.java

Source

/*******************************************************************************
 * Copyright (c) 2014 antoniomariasanchez at gmail.com. All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Public License v3.0 which accompanies this distribution, and is
 * available at http://www.gnu.org/licenses/gpl.html
 * 
 * Contributors: antoniomaria - initial API and implementation
 ******************************************************************************/
package net.sf.gazpachoquest.facades.impl;

import net.sf.gazpachoquest.domain.core.Research;
import net.sf.gazpachoquest.domain.user.User;
import net.sf.gazpachoquest.dto.ResearchDTO;
import net.sf.gazpachoquest.dto.UserDTO;
import net.sf.gazpachoquest.dto.support.PageDTO;
import net.sf.gazpachoquest.facades.ResearchFacade;
import net.sf.gazpachoquest.services.ResearchService;
import net.sf.gazpachoquest.types.EntityStatus;

import org.dozer.Mapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Component;

@Component
public class ResearchFacadeImpl implements ResearchFacade {

    @Autowired
    private Mapper mapper;

    @Autowired
    @Qualifier("researchServiceImpl")
    private ResearchService researchService;

    @Autowired
    @Qualifier("researchPermissionsAwareServiceImpl")
    private ResearchService researchPermissionsAwareServiceImpl;

    @Override
    public PageDTO<ResearchDTO> findPaginated(Integer pageNumber, Integer size) {
        Page<Research> page = researchPermissionsAwareServiceImpl.findPaginated(pageNumber, size);
        PageDTO<ResearchDTO> pageDTO = new PageDTO<>();
        pageDTO.setNumber(page.getNumber() + 1);
        pageDTO.setSize(page.getSize());
        pageDTO.setTotalPages(page.getTotalPages());
        pageDTO.setTotalElements(page.getTotalElements());

        for (Research research : page.getContent()) {
            ResearchDTO researchDTO = mapper.map(research, ResearchDTO.class);
            pageDTO.addElement(researchDTO);
        }
        return pageDTO;
    }

    @Override
    public void delete(final Integer id) {
        researchService.delete(id);
    }

    @Override
    public ResearchDTO findOne(final Integer id) {
        Research entity = researchService.findOne(id);
        return mapper.map(entity, ResearchDTO.class);
    }

    @Override
    public ResearchDTO save(final ResearchDTO research) {
        Research entity = mapper.map(research, Research.class);
        entity = researchService.save(entity);
        return mapper.map(entity, ResearchDTO.class);
    }

    @Override
    public void addRespondent(final Integer researchId, UserDTO respondentDTO) {
        User respondent = mapper.map(respondentDTO, User.class);
        researchService.addRespondent(researchId, respondent);
    }

    @Override
    public void changeStatus(final Integer researchId, EntityStatus newStatus) {
        researchService.changeStatus(researchId, newStatus);
    }

}