Project

General

Profile

« Previous | Next » 

Revision 32ba7109

Added by Andreas Kohlbecker almost 8 years ago

refactoring taxonNode controllers - return dtos from the service layer, support for #5887

View differences:

cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonNodeController.java
12 12

  
13 13
import io.swagger.annotations.Api;
14 14

  
15
import java.util.Arrays;
16
import java.util.List;
15
import java.io.IOException;
16
import java.util.UUID;
17

  
18
import javax.servlet.http.HttpServletResponse;
17 19

  
18
import org.apache.log4j.Logger;
19 20
import org.springframework.beans.factory.annotation.Autowired;
20 21
import org.springframework.stereotype.Controller;
22
import org.springframework.web.bind.annotation.PathVariable;
21 23
import org.springframework.web.bind.annotation.RequestMapping;
24
import org.springframework.web.bind.annotation.RequestMethod;
25
import org.springframework.web.bind.annotation.RequestParam;
22 26

  
23 27
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
28
import eu.etaxonomy.cdm.api.service.NodeSortMode;
29
import eu.etaxonomy.cdm.api.service.pager.Pager;
24 30
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
31
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
32
import eu.etaxonomy.cdm.remote.controller.util.PagerParameters;
25 33

  
26 34
/**
27
 * @author n.hoffmann
28
 * @created Apr 9, 2010
29
 * @version 1.0
35
 *
36
 * @author a.kohlbecker
37
 * @date Jun 13, 2016
38
 *
30 39
 */
31 40
@Controller
32 41
@Api("taxonNode")
33 42
@RequestMapping(value = {"/taxonNode/{uuid}"})
34
public class TaxonNodeController extends BaseController<TaxonNode, ITaxonNodeService> {
35
    @SuppressWarnings("unused")
36
    private static final Logger logger = Logger
37
            .getLogger(TaxonNodeController.class);
38

  
39
    private static final List<String> NODE_INIT_STRATEGY = Arrays.asList(new String[]{
40
            "taxon.sec",
41
            "taxon.name"
42
    });
43

  
44
    public TaxonNodeController(){
45
        super();
46
        setInitializationStrategy(NODE_INIT_STRATEGY);
47
    }
43
public class TaxonNodeController extends AbstractController<TaxonNode, ITaxonNodeService> {
44

  
48 45

  
49 46
    /* (non-Javadoc)
50 47
     * @see eu.etaxonomy.cdm.remote.controller.BaseController#setService(eu.etaxonomy.cdm.api.service.IService)
......
54 51
    public void setService(ITaxonNodeService service) {
55 52
        this.service = service;
56 53
    }
54

  
55

  
56
    /**
57
     *
58
     * @param uuid
59
     * @param response
60
     * @return
61
     * @throws IOException
62
     */
63
    @RequestMapping(
64
            value = {"parent"},
65
            method = RequestMethod.GET)
66
    public TaxonNodeDto doGetParent(
67
            @PathVariable("uuid") UUID uuid,
68
            HttpServletResponse response
69
            ) throws IOException {
70

  
71
        return service.parentDto(uuid);
72
    }
73

  
74
    /**
75
     *
76
     * @param uuid
77
     * @param pageIndex
78
     * @param pageSize
79
     * @param sortMode
80
     * @param response
81
     * @return
82
     * @throws IOException
83
     */
84
    @RequestMapping(
85
            value = {"childNodes"},
86
            method = RequestMethod.GET)
87
    public Pager<TaxonNodeDto> doPageChildNodes(
88
            @PathVariable("uuid") UUID uuid,
89
            @RequestParam(value = "pageNumber", required = false) Integer pageIndex,
90
            @RequestParam(value = "pageSize", required = false) Integer pageSize,
91
            @RequestParam(value="sortMode", defaultValue="AlphabeticalOrder") NodeSortMode sortMode,
92
            HttpServletResponse response
93
            ) throws IOException {
94

  
95
        PagerParameters pagerParameters = new PagerParameters(pageSize, pageIndex);
96
        pagerParameters.normalizeAndValidate(response);
97

  
98
        return service.pageChildNodesDTOs(uuid, false, sortMode, pagerParameters.getPageSize(), pagerParameters.getPageIndex());
99
    }
57 100
}

Also available in: Unified diff