JAL-2413 extracted new method SetUtils.countDisjunction()
[jalview.git] / src / jalview / analysis / scoremodels / FeatureScoreModel.java
index 6da55c3..6fffcab 100644 (file)
@@ -25,6 +25,7 @@ import jalview.api.analysis.ViewBasedAnalysisI;
 import jalview.datamodel.AlignmentView;
 import jalview.datamodel.SeqCigar;
 import jalview.datamodel.SequenceFeature;
+import jalview.util.SetUtils;
 
 import java.util.HashMap;
 import java.util.HashSet;
@@ -91,10 +92,9 @@ public class FeatureScoreModel implements ScoreModelI, ViewBasedAnalysisI
         {
           for (int j = i + 1; j < noseqs; j++)
           {
-            int seqDistance = countUnsharedFeatureTypes(sfap.get(seqs[i]),
+            int seqDistance = SetUtils.countDisjunction(sfap.get(seqs[i]),
                     sfap.get(seqs[j]));
             distance[i][j] += seqDistance;
-            // distance[j][i] += distance[i][j];
           }
         }
       }
@@ -116,32 +116,6 @@ public class FeatureScoreModel implements ScoreModelI, ViewBasedAnalysisI
   }
 
   /**
-   * Returns the count of values that are set1 or set2 but not in both
-   * 
-   * @param set1
-   * @param set2
-   * @return
-   */
-  protected int countUnsharedFeatureTypes(Set<String> set1, Set<String> set2)
-  {
-    int size1 = set1.size();
-    int size2 = set2.size();
-    Set<String> smallerSet = size1 < size2 ? set1 : set2;
-    Set<String> largerSet = (smallerSet == set1 ? set2 : set1);
-    int inCommon = 0;
-    for (String k : smallerSet)
-    {
-      if (largerSet.contains(k))
-      {
-        inCommon++;
-      }
-    }
-
-    int notInCommon = (size1 - inCommon) + (size2 - inCommon);
-    return notInCommon;
-  }
-
-  /**
    * Builds and returns a list (one per SeqCigar) of visible feature types at
    * the given column position
    *