From: <hs...@us...> - 2011-12-12 18:01:15
|
Revision: 1003 http://treebase.svn.sourceforge.net/treebase/?rev=1003&view=rev Author: hshyket Date: 2011-12-12 18:01:09 +0000 (Mon, 12 Dec 2011) Log Message: ----------- Fixing issue where the numbering of the translation table in the tree string was not converting properly Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/TaxonLabelSet.java trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/TreeBlock.java trunk/treebase-core/src/test/java/org/cipres/treebase/domain/taxon/TaxonLabelTest.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/TaxonLabelSet.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/TaxonLabelSet.java 2011-12-09 16:23:11 UTC (rev 1002) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/TaxonLabelSet.java 2011-12-12 18:01:09 UTC (rev 1003) @@ -260,7 +260,7 @@ return getTitle(); } - private void sortByTaxonLabel(List<TaxonLabel> tList) + public void sortByTaxonLabel(List<TaxonLabel> tList) { java.util.Collections.sort(tList, new Comparator<TaxonLabel>() { @@ -273,4 +273,16 @@ }); } + + public void sortByTaxonLabelLength(List<TaxonLabel> tList) + { + java.util.Collections.sort(tList, new Comparator<TaxonLabel>() { + + public int compare(TaxonLabel pObject1, TaxonLabel pObject2) { + return pObject2.getTaxonLabel().length() - pObject1.getTaxonLabel().length(); + } + + }); + + } } Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/TreeBlock.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/TreeBlock.java 2011-12-09 16:23:11 UTC (rev 1002) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/TreeBlock.java 2011-12-12 18:01:09 UTC (rev 1003) @@ -244,11 +244,18 @@ } String tmpnewick, newick = atree.getNewickString(); + List<TaxonLabel> txnlbllistclone = new ArrayList<TaxonLabel>(txnlbllist); + tlSet.sortByTaxonLabelLength(txnlbllistclone); + HashMap<String, Integer> txnOrder = new HashMap<String, Integer>(); + for (int y = 0; y < numoftxnlbls; y++) { + txnOrder.put(txnlbllist.get(y).getTaxonLabel(), y); + } for (int z = 0; z < numoftxnlbls; z++) { - String label = StringUtil.tokenize(txnlbllist.get(z).getTaxonLabel()); - tmpnewick = newick.replace(label, String.valueOf(z + 1)); + String label = StringUtil.tokenize(txnlbllistclone.get(z).getTaxonLabel()); + tmpnewick = newick.replace(label, String.valueOf(txnOrder.get(txnlbllistclone.get(z).getTaxonLabel())+1)); newick = tmpnewick; } + txnlbllistclone = null; // out.append(atree.getNewickString()); pBuilder.append(newick); pBuilder.append("\n"); Modified: trunk/treebase-core/src/test/java/org/cipres/treebase/domain/taxon/TaxonLabelTest.java =================================================================== --- trunk/treebase-core/src/test/java/org/cipres/treebase/domain/taxon/TaxonLabelTest.java 2011-12-09 16:23:11 UTC (rev 1002) +++ trunk/treebase-core/src/test/java/org/cipres/treebase/domain/taxon/TaxonLabelTest.java 2011-12-12 18:01:09 UTC (rev 1003) @@ -2,6 +2,7 @@ import java.util.ArrayList; import java.util.Collection; +import java.util.List; import org.apache.log4j.Logger; import org.cipres.treebase.dao.AbstractDAOTest; @@ -112,17 +113,49 @@ } assertTrue(matricesOkay); } + + public void testTaxonLabelLengthSorting() { + int x = 0; + boolean isTaxonSorted = false; + + List<TaxonLabel> res = (List<TaxonLabel>) findHomoSapiensTL(); + LOGGER.info("Homo matrices: " + res.size() + " result(s)"); + assertNotNull(res); + TaxonLabel newTaxon = new TaxonLabel(); + newTaxon.setTaxonLabel("Homo Sapiens ABCD"); + res.add(newTaxon); + //res.get(1).setTaxonLabel("Homo Sapiens ABCD"); + TaxonLabelSet tlSet = new TaxonLabelSet(); + tlSet.sortByTaxonLabelLength(res); + + //for (TaxonLabel tLabel : res) { + for (x = 0; x < res.size(); x++) { + if (x > 0) { + if (res.get(x-1).getTaxonLabel().length() >= res.get(x).getTaxonLabel().length()) { + isTaxonSorted = true; + } + else { + LOGGER.debug("Taxon Labels are not sorted"); + isTaxonSorted = false; + break; + } + } + } + assertTrue(isTaxonSorted); + } private Collection<TaxonLabel> findHomoSapiensTL() { return getTaxonLabelHome().findByExactString("Homo sapiens"); } - + private TaxonVariant findHomoSapiensTV() { Collection<TaxonVariant> hSap = getTaxonLabelHome().findTaxonVariantByFullName("Homo sapiens"); if (hSap == null) return null; if (hSap.isEmpty()) return null; return hSap.iterator().next(); } + + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |