Skip to content

Commit 0d9a845

Browse files
committed
Improve case sensitivity handling in generatePedigree
1 parent 948d286 commit 0d9a845

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed

SequenceAnalysis/src/org/labkey/sequenceanalysis/SequenceAnalysisServiceImpl.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.apache.logging.log4j.LogManager;
1010
import org.apache.logging.log4j.Logger;
1111
import org.jetbrains.annotations.Nullable;
12+
import org.labkey.api.collections.CaseInsensitiveHashSet;
1213
import org.labkey.api.data.CompareType;
1314
import org.labkey.api.data.Container;
1415
import org.labkey.api.data.ContainerManager;
@@ -376,7 +377,7 @@ public List<PedigreeRecord> generatePedigree(Collection<String> sampleNames, Con
376377
});
377378

378379
//insert record for any missing parents:
379-
Set<String> distinctSubjects = new HashSet<>();
380+
Set<String> distinctSubjects = new CaseInsensitiveHashSet();
380381
for (PedigreeRecord p : pedigreeRecords)
381382
{
382383
distinctSubjects.add(p.getSubjectName());
@@ -421,8 +422,8 @@ else if (!StringUtils.isEmpty(pd.getFather()) && StringUtils.isEmpty(pd.getMothe
421422

422423
pedigreeRecords.sort((o1, o2) ->
423424
{
424-
boolean o1ParentOfO2 = o1.getSubjectName().equals(o2.getFather()) || o1.getSubjectName().equals(o2.getMother());
425-
boolean o2ParentOfO1 = o2.getSubjectName().equals(o1.getFather()) || o2.getSubjectName().equals(o1.getMother());
425+
boolean o1ParentOfO2 = o1.getSubjectName().equalsIgnoreCase(o2.getFather()) || o1.getSubjectName().equalsIgnoreCase(o2.getMother());
426+
boolean o2ParentOfO1 = o2.getSubjectName().equalsIgnoreCase(o1.getFather()) || o2.getSubjectName().equalsIgnoreCase(o1.getMother());
426427

427428
if (o1ParentOfO2 && o2ParentOfO1)
428429
{
@@ -435,12 +436,8 @@ else if (!StringUtils.isEmpty(pd.getFather()) && StringUtils.isEmpty(pd.getMothe
435436
return -1;
436437
else if (o2ParentOfO1)
437438
return 1;
438-
else if ((o1.getTotalParents(true) == 0 && o2.getTotalParents(true) != 0))
439-
return -1;
440-
else if ((o1.getTotalParents(true) != 0 && o2.getTotalParents(true) == 0))
441-
return 1;
442439

443-
return o1.getSubjectName().compareTo(o2.getSubjectName());
440+
return o1.getSubjectName().toLowerCase().compareTo(o2.getSubjectName().toLowerCase());
444441
});
445442

446443
return pedigreeRecords;

0 commit comments

Comments
 (0)