JAL-1479 JAL-1979 bugfix to check entire annotation property of a resDetail object...
authortcofoegbu <tcnofoegbu@dundee.ac.uk>
Thu, 21 Jan 2016 17:00:16 +0000 (17:00 +0000)
committertcofoegbu <tcnofoegbu@dundee.ac.uk>
Thu, 21 Jan 2016 17:00:16 +0000 (17:00 +0000)
src/jalview/ws/sifts/SiftsClient.java

index 9f7bc52..5b03ddb 100644 (file)
@@ -630,16 +630,18 @@ public class SiftsClient implements SiftsClientI
    */
   private boolean isResidueObserved(Residue residue)
   {
-    String annotation = getResidueAnnotaiton(residue,
+    HashSet<String> annotations = getResidueAnnotaitons(residue,
             ResidueDetailType.ANNOTATION);
-    if (annotation == null)
+    if (annotations == null || annotations.isEmpty())
     {
       return true;
     }
-    if (!annotation.equalsIgnoreCase(NOT_FOUND)
-            && annotation.equalsIgnoreCase(NOT_OBSERVED))
+    for (String annotation : annotations)
     {
-      return false;
+      if (annotation.equalsIgnoreCase(NOT_OBSERVED))
+      {
+        return false;
+      }
     }
     return true;
   }
@@ -651,18 +653,19 @@ public class SiftsClient implements SiftsClientI
    * @param type
    * @return
    */
-  private String getResidueAnnotaiton(Residue residue,
+  private HashSet<String> getResidueAnnotaitons(Residue residue,
           ResidueDetailType type)
   {
+    HashSet<String> foundAnnotations = new HashSet<String>();
     List<ResidueDetail> resDetails = residue.getResidueDetail();
     for (ResidueDetail resDetail : resDetails)
     {
       if (resDetail.getProperty().equalsIgnoreCase(type.getCode()))
       {
-        return resDetail.getContent();
+        foundAnnotations.add(resDetail.getContent());
       }
     }
-    return NOT_FOUND;
+    return foundAnnotations;
   }
 
   @Override