Revision 32ba7109
Added by Andreas Kohlbecker almost 8 years ago
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
refactoring taxonNode controllers - return dtos from the service layer, support for #5887