* @return\r
*/\r
private TreePath createTreePathFromString(String string) {\r
- List<TaxonNode> pathList = new ArrayList<TaxonNode>();\r
+\r
+ List<CdmBase> pathList = new ArrayList<CdmBase>();\r
\r
if(string.length() == 0) return null; \r
\r
for (String uuid : string.split(" ")) {\r
- TaxonNode taxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(UUID.fromString(uuid));\r
- if (taxonNode == null) {\r
- return null;\r
+ CdmBase cdmBaseObject = CdmStore.getTaxonService().getTaxonNodeByUuid(UUID.fromString(uuid));\r
+ if (cdmBaseObject == null) {\r
+ // is this a tree uuid?\r
+ cdmBaseObject = CdmStore.getTaxonService().getTaxonomicTreeByUuid(UUID.fromString(uuid));\r
+ \r
+ if(cdmBaseObject == null) return null;\r
}\r
- pathList.add(taxonNode);\r
+ pathList.add(cdmBaseObject);\r
}\r
return new TreePath(pathList.toArray());\r
}\r
String path = "";\r
for (int i = 0; i < pathLength; i++) {\r
Object segment = treePath.getSegment(i);\r
- // FIXME I don't see the meaning of filtering out objects here. \r
- // Each time a new content type is added to the navigator we have to add it here as \r
- // well. What is the worst that could happen when a "Non-taxon tree path segment" is encountered\r
- // or when exactly could this happen? Anomalies should also be handled in the restore code. (n.hoffmann)\r
- if ((segment instanceof TaxonomicTree) || (segment instanceof TaxonNode)) {\r
+ if (segment instanceof CdmBase) {\r
path += ((CdmBase) segment).getUuid().toString() + " ";\r
} else {\r
logger.warn("Non-taxon tree path segment " + segment);\r