package org.genedb.db.taxon;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.springframework.util.StringUtils;
public class TaxonUtils {
private static TaxonNodeManager tnm;
public static String getTaxonListFromNodes(TaxonNode[] nodes) {
return StringUtils.arrayToDelimitedString(nodes, " ");
}
public static String getOrgNamesInHqlFormat(TaxonNode[] nodes) {
Set<String> orgNames = new HashSet<String>();
for (TaxonNode node : nodes) {
orgNames.addAll(node.getAllChildrenNames());
}
StringBuilder ret = new StringBuilder();
boolean notFirst = false;
for (String orgName : orgNames) {
if (notFirst) {
ret.append(", ");
} else {
notFirst = true;
}
ret.append('\'');
ret.append(orgName);
ret.append('\'');
}
return ret.toString();
}
public static Collection<String> getOrgNames(String org) {
String sections[] = org.split(",");
Set<String> orgNames = new HashSet<String>();
for (String orgLabel : sections) {
TaxonNode node = tnm.getTaxonNodeForLabel(orgLabel);
if (node.getAllChildrenNames().size() > 0) {
orgNames.addAll(node.getAllChildrenNames());
} else {
orgNames.add(node.getLabel());
}
}
return orgNames;
}
public static String getOrgNamesInHqlFormat(String org) {
StringBuilder ret = new StringBuilder();
boolean notFirst = false;
for (String orgName : getOrgNames(org)) {
if (notFirst) {
ret.append(", ");
} else {
notFirst = true;
}
ret.append('\'');
ret.append(orgName);
ret.append('\'');
}
return ret.toString();
}
public void setTnm(TaxonNodeManager tnm) {
TaxonUtils.tnm = tnm;
}
}