]> source.dussan.org Git - jgit.git/commitdiff
Add set to IntList 06/6/2
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Thu, 3 Sep 2009 10:46:31 +0000 (12:46 +0200)
committerShawn O. Pearce <spearce@spearce.org>
Tue, 6 Oct 2009 14:42:49 +0000 (07:42 -0700)
Some applications may wish to modify an int list.

Bug: 291083
Eclipse-CQ: 3559
Change-Id: Iea871443ec661230aec92397229f1eda6c74216f
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
org.eclipse.jgit.test/tst/org/eclipse/jgit/util/IntListTest.java
org.eclipse.jgit/src/org/eclipse/jgit/util/IntList.java

index ecabeeea5b65297cb6245b84cdd645abb93eaf19..b8d5bd10250634263fb6cbc8fb2c31a621153ab3 100644 (file)
@@ -150,6 +150,27 @@ public class IntListTest extends TestCase {
                }
        }
 
+       public void testSet() {
+               final IntList i = new IntList();
+               i.add(1);
+               assertEquals(1, i.size());
+               assertEquals(1, i.get(0));
+
+               i.set(0, 5);
+               assertEquals(5, i.get(0));
+
+               try {
+                       i.set(5, 5);
+                       fail("accepted set of 5 beyond end of list");
+               } catch (ArrayIndexOutOfBoundsException e){
+                       assertTrue(true);
+               }
+
+               i.set(1, 2);
+               assertEquals(2, i.size());
+               assertEquals(2, i.get(1));
+       }
+
        public void testToString() {
                final IntList i = new IntList();
                i.add(1);
index 510f2a4db99f87f117d1eab2c0f4a2d257dd61d3..510032eeb0bfb68a5e25e1a2d25b782adc721055 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2008, Google Inc.
+ * Copyright (C) 2009, Johannes Schindelin <johannes.schindelin@gmx.de>
  * and other copyright owners as documented in the project's IP log.
  *
  * This program and the accompanying materials are made available
@@ -99,6 +100,23 @@ public class IntList {
                entries[count++] = n;
        }
 
+       /**
+        * Assign an entry in the list.
+        *
+        * @param index
+        *            index to set, must be in the range [0, {@link #size()}).
+        * @param n
+        *            value to store at the position.
+        */
+       public void set(final int index, final int n) {
+               if (count < index)
+                       throw new ArrayIndexOutOfBoundsException(index);
+               else if (count == index)
+                       add(n);
+               else
+                       entries[index] = n;
+       }
+
        /**
         * Pad the list with entries.
         *