Project

General

Profile

Download (2.96 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10

    
11
package eu.etaxonomy.cdm.remote.controller;
12

    
13
import io.swagger.annotations.Api;
14

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

    
18
import javax.servlet.http.HttpServletResponse;
19

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

    
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;
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;
33

    
34
/**
35
 *
36
 * @author a.kohlbecker
37
 * @date Jun 13, 2016
38
 *
39
 */
40
@Controller
41
@Api("taxonNode")
42
@RequestMapping(value = {"/taxonNode/{uuid}"})
43
public class TaxonNodeController extends AbstractController<TaxonNode, ITaxonNodeService> {
44

    
45

    
46
    /* (non-Javadoc)
47
     * @see eu.etaxonomy.cdm.remote.controller.BaseController#setService(eu.etaxonomy.cdm.api.service.IService)
48
     */
49
    @Override
50
    @Autowired
51
    public void setService(ITaxonNodeService service) {
52
        this.service = service;
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
    }
100
}
(56-56/63)