Merge branch 'release/4.5.0'
[cdmlib.git] / cdmlib-remote / src / main / java / eu / etaxonomy / cdm / remote / controller / ClassificationPortalListController.java
index bfde35c9637307dfb91cb4322a23e882741ab25c..6c95400081ea883d5a3dd029390b054d07a03541 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$\r
 /**\r
  * Copyright (C) 2009 EDIT European Distributed Institute of Taxonomy\r
  * http://www.e-taxonomy.eu\r
@@ -9,6 +8,8 @@
 \r
 package eu.etaxonomy.cdm.remote.controller;\r
 \r
+import io.swagger.annotations.Api;\r
+\r
 import java.io.IOException;\r
 import java.util.Arrays;\r
 import java.util.List;\r
@@ -26,8 +27,6 @@ import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;\r
 import org.springframework.web.bind.annotation.RequestMethod;\r
 \r
-import com.wordnik.swagger.annotations.Api;\r
-\r
 import eu.etaxonomy.cdm.api.service.IClassificationService;\r
 import eu.etaxonomy.cdm.api.service.ITaxonService;\r
 import eu.etaxonomy.cdm.api.service.ITermService;\r
@@ -46,7 +45,7 @@ import eu.etaxonomy.cdm.remote.editor.RankPropertyEditor;
 @Controller\r
 @Api("portal_classification")\r
 @RequestMapping(value="/portal/classification")\r
-public class ClassificationPortalListController extends IdentifiableListController<Classification,IClassificationService> {\r
+public class ClassificationPortalListController extends AbstractIdentifiableListController<Classification,IClassificationService> {\r
 \r
 \r
     private static final List<String> CLASSIFICATION_INIT_STRATEGY = Arrays.asList(new String[]{\r
@@ -56,6 +55,7 @@ public class ClassificationPortalListController extends IdentifiableListControll
 \r
     private static final List<String> NODE_INIT_STRATEGY = Arrays.asList(new String[]{\r
             "taxon.name.rank",\r
+            "taxon.sec"\r
             });\r
 \r
 \r
@@ -150,9 +150,9 @@ public class ClassificationPortalListController extends IdentifiableListControll
         }\r
         rank = findRank(rankUuid);\r
 \r
-        long start = System.currentTimeMillis();\r
+//        long start = System.currentTimeMillis();\r
         List<TaxonNode> rootNodes = service.listRankSpecificRootNodes(tree, rank, null, null, NODE_INIT_STRATEGY);\r
-        System.err.println("service.listRankSpecificRootNodes() " + (System.currentTimeMillis() - start));\r
+//        System.err.println("service.listRankSpecificRootNodes() " + (System.currentTimeMillis() - start));\r
         return rootNodes;\r
     }\r
 \r
@@ -192,6 +192,22 @@ public class ClassificationPortalListController extends IdentifiableListControll
 \r
     }\r
 \r
+    @RequestMapping(\r
+            value = {"{treeUuid}/siblingsOf/{taxonUuid}"},\r
+            method = RequestMethod.GET)\r
+    public List<TaxonNode> getSiblingsOfTaxon(\r
+            @PathVariable("treeUuid") UUID treeUuid,\r
+            @PathVariable("taxonUuid") UUID taxonUuid,\r
+            HttpServletRequest request,\r
+            HttpServletResponse response) throws IOException {\r
+        logger.info("getSiblingsOfTaxon() " + request.getRequestURI());\r
+\r
+        //FIXME return pager\r
+        List<TaxonNode> childs = service.listSiblingsOfTaxon(taxonUuid, treeUuid, null, null, NODE_INIT_STRATEGY);\r
+        return childs;\r
+\r
+    }\r
+\r
     /**\r
      * Provides path of {@link TaxonNode}s from the base node to the node of the specified taxon.\r
      * <p>\r
@@ -270,4 +286,4 @@ public class ClassificationPortalListController extends IdentifiableListControll
     }\r
 \r
 \r
-}
\ No newline at end of file
+}