JAL-3397 final update
[jalview.git] / src / jalview / datamodel / SequenceFeature.java
index 6f51420..30e0929 100755 (executable)
@@ -230,7 +230,7 @@ public class SequenceFeature implements FeatureLocationI
   @Override
   public boolean equalsInterval(IntervalI sf)
   {
-    return equals((SequenceFeature) sf, false);
+    return sf != null && equals((SequenceFeature) sf, false);
   }
   /**
    * Overloaded method allows the equality test to optionally ignore the
@@ -244,39 +244,17 @@ public class SequenceFeature implements FeatureLocationI
    */
   public boolean equals(SequenceFeature sf, boolean ignoreParent)
   {
-    boolean sameScore = Float.isNaN(score) ? Float.isNaN(sf.score)
-            : score == sf.score;
-    if (begin != sf.begin || end != sf.end || !sameScore)
-    {
-      return false;
-    }
-
-    if (getStrand() != sf.getStrand())
-    {
-      return false;
-    }
-
-    if (!(type + description + featureGroup + getPhase()).equals(
-            sf.type + sf.description + sf.featureGroup + sf.getPhase()))
-    {
-      return false;
-    }
-    if (!equalAttribute(getValue("ID"), sf.getValue("ID")))
-    {
-      return false;
-    }
-    if (!equalAttribute(getValue("Name"), sf.getValue("Name")))
-    {
-      return false;
-    }
-    if (!ignoreParent)
-    {
-      if (!equalAttribute(getValue("Parent"), sf.getValue("Parent")))
-      {
-        return false;
-      }
-    }
-    return true;
+    return (begin == sf.begin && end == sf.end
+            && getStrand() == sf.getStrand()
+            && (Float.isNaN(score) ? Float.isNaN(sf.score)
+                    : score == sf.score)
+            && (type + description + featureGroup + getPhase())
+                    .equals(sf.type + sf.description + sf.featureGroup
+                            + sf.getPhase())
+            && equalAttribute(getValue("ID"), sf.getValue("ID"))
+            && equalAttribute(getValue("Name"), sf.getValue("Name"))
+            && (ignoreParent || equalAttribute(getValue("Parent"),
+                    sf.getValue("Parent"))));
   }
 
   /**