return list;\r
}\r
@Override\r
- public List<TaxonNodeDto> getTaxonNodeDtosFromTaxon(UUID taxonUuid) {\r
+ public List<TaxonNodeDto> getTaxonNodeDtosFromTaxon(UUID taxonUuid, String subTreeIndex) {\r
String queryString = getTaxonNodeDtoQuery();\r
queryString += " WHERE t.uuid = :uuid ";\r
+ if (subTreeIndex != null) {\r
+ subTreeIndex += "%";\r
+ queryString += " AND tn.treeIndex like :subTreeIndex ";\r
+ }\r
Query<SortableTaxonNodeQueryResult> query = getSession().createQuery(queryString, SortableTaxonNodeQueryResult.class);\r
query.setParameter("uuid", taxonUuid);\r
-\r
+ if (subTreeIndex != null) {\r
+ query.setParameter("subTreeIndex", subTreeIndex);\r
+ }\r
+ \r
List<SortableTaxonNodeQueryResult> result = query.list();\r
List<TaxonNodeDto> list = createNodeDtos(result);\r
if (list.isEmpty()) {\r
* @return\r
*/\r
List<TaxonNodeDto> createNodeDtos(List<SortableTaxonNodeQueryResult> result);\r
-\r
- List<TaxonNodeDto> getTaxonNodeDtosFromTaxon(UUID taxonUuids);\r
+ /**\r
+ * @param taxonUuid\r
+ * @param subTreeIndex\r
+ * @return\r
+ */\r
+ List<TaxonNodeDto> getTaxonNodeDtosFromTaxon(UUID taxonUuid, String subTreeIndex);\r
}\r
HttpServletResponse response) throws IOException {\r
\r
logger.info("doGetTaxonNodes" + requestPathAndQuery(request));\r
- TaxonBase<?> taxonBase = null;\r
+ //this should be done by treeIndex as parameter, but as first implementation we get the node and then the treeinde\r
+ String subTreeIndex = null;\r
if (subtreeUuid != null){\r
- taxonBase = doGet(taxonUuid, subtreeUuid, request, response);\r
- }else{\r
-// taxonBase = service.load(taxonUuid, NO_UNPUBLISHED, getTaxonNodeInitStrategy().getPropertyPaths());\r
+ TaxonNode subtree = getSubtreeOrError(subtreeUuid, nodeService, response);\r
+ subTreeIndex = subtree != null? subtree.treeIndex(): null;\r
}\r
- if(taxonBase != null && taxonBase instanceof Taxon){\r
- return ((Taxon)taxonBase).getTaxonNodes().stream().map(e -> new TaxonNodeDto(e)).collect(Collectors.toSet());\r
- }else { \r
- try {\r
- return nodeService.getTaxonNodeDtosFromTaxon(taxonUuid);\r
- }catch(Exception e) {\r
+ try {\r
+ return nodeService.getTaxonNodeDtosFromTaxon(taxonUuid, subTreeIndex);\r
+ }catch(Exception e) {\r
HttpStatusMessage.UUID_REFERENCES_WRONG_TYPE.send(response);\r
return null;\r
- }\r
+ }\r
\r
- }\r
+ \r
\r
\r
\r
*/
TaxonNodeDto getTaxonNodeDto(UUID nodeUuid);
- List<TaxonNodeDto> getTaxonNodeDtosFromTaxon(UUID taxonUuids);
+ /**
+ * @param taxonUuid
+ * @param subTreeIndex
+ * @return
+ */
+ List<TaxonNodeDto> getTaxonNodeDtosFromTaxon(UUID taxonUuid, String subTreeIndex);
}
}
@Override
- public List<TaxonNodeDto> getTaxonNodeDtosFromTaxon(UUID taxonUuids) {
- return dao.getTaxonNodeDtosFromTaxon(taxonUuids);
+ public List<TaxonNodeDto> getTaxonNodeDtosFromTaxon(UUID taxonUuid, String subTreeIndex) {
+ return dao.getTaxonNodeDtosFromTaxon(taxonUuid, subTreeIndex);
}
}
\ No newline at end of file