JAL-3120 preserve feature colour/mincolour/maxcolour while modifying,
[jalview.git] / src / jalview / datamodel / features / NCList.java
index a911666..ae58a69 100644 (file)
@@ -1,5 +1,28 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.datamodel.features;
 
+import jalview.datamodel.ContiguousI;
+import jalview.datamodel.Range;
+
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -74,7 +97,7 @@ public class NCList<T extends ContiguousI>
   public NCList(T entry)
   {
     this();
-    subranges.add(new NCNode<T>(entry));
+    subranges.add(new NCNode<>(entry));
     size = 1;
   }
 
@@ -92,7 +115,7 @@ public class NCList<T extends ContiguousI>
    */
   protected List<Range> buildSubranges(List<T> ranges)
   {
-    List<Range> sublists = new ArrayList<Range>();
+    List<Range> sublists = new ArrayList<>();
     
     if (ranges.isEmpty())
     {
@@ -171,7 +194,7 @@ public class NCList<T extends ContiguousI>
       /*
        * all subranges precede this one - add it on the end
        */
-      subranges.add(new NCNode<T>(entry));
+      subranges.add(new NCNode<>(entry));
       return true;
     }
 
@@ -193,7 +216,7 @@ public class NCList<T extends ContiguousI>
         /*
          * new entry lies between subranges j-1 j
          */
-        subranges.add(j, new NCNode<T>(entry));
+        subranges.add(j, new NCNode<>(entry));
         return true;
       }
 
@@ -241,7 +264,7 @@ public class NCList<T extends ContiguousI>
              * entry spans two subranges but doesn't enclose any
              * so just add it 
              */
-            subranges.add(j, new NCNode<T>(entry));
+            subranges.add(j, new NCNode<>(entry));
             return true;
           }
         }
@@ -262,7 +285,7 @@ public class NCList<T extends ContiguousI>
     }
     else
     {
-      subranges.add(new NCNode<T>(entry));
+      subranges.add(new NCNode<>(entry));
     }
 
     return true;
@@ -320,9 +343,9 @@ public class NCList<T extends ContiguousI>
   protected synchronized void addEnclosingRange(T entry, final int i,
           final int j)
   {
-    NCList<T> newNCList = new NCList<T>();
+    NCList<T> newNCList = new NCList<>();
     newNCList.addNodes(subranges.subList(i, j + 1));
-    NCNode<T> newNode = new NCNode<T>(entry, newNCList);
+    NCNode<T> newNode = new NCNode<>(entry, newNCList);
     for (int k = j; k >= i; k--)
     {
       subranges.remove(k);
@@ -351,7 +374,7 @@ public class NCList<T extends ContiguousI>
    */
   public List<T> findOverlaps(long from, long to)
   {
-    List<T> result = new ArrayList<T>();
+    List<T> result = new ArrayList<>();
 
     findOverlaps(from, to, result);
     
@@ -551,7 +574,7 @@ public class NCList<T extends ContiguousI>
    */
   public List<T> getEntries()
   {
-    List<T> result = new ArrayList<T>();
+    List<T> result = new ArrayList<>();
     getEntries(result);
     return result;
   }