Some applications may wish to modify an int list. Signed-off-by: Shawn O. Pearce <spearce@xxxxxxxxxxx> --- .../tst/org/spearce/jgit/util/IntListTest.java | 21 ++++++++++++++++++++ .../src/org/spearce/jgit/util/IntList.java | 17 ++++++++++++++++ 2 files changed, 38 insertions(+), 0 deletions(-) diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/util/IntListTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/util/IntListTest.java index c470d55..ce0d7af 100644 --- a/org.spearce.jgit.test/tst/org/spearce/jgit/util/IntListTest.java +++ b/org.spearce.jgit.test/tst/org/spearce/jgit/util/IntListTest.java @@ -144,6 +144,27 @@ public void testClear() { } } + 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); diff --git a/org.spearce.jgit/src/org/spearce/jgit/util/IntList.java b/org.spearce.jgit/src/org/spearce/jgit/util/IntList.java index 0a84793..9d86a5c 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/util/IntList.java +++ b/org.spearce.jgit/src/org/spearce/jgit/util/IntList.java @@ -94,6 +94,23 @@ public void add(final int 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. * * @param toIndex -- 1.6.3.rc3.212.g8c698 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html