Browse Source

Exposed the constructor of Note class

Additionally, defined the NoteMap.getNote method which returns a Note
instance.  These changes were necessary to enable implementation of
the NoteMerger interface (the merge method needs to instantiate a
Note) and to enable direct use of NoteMerger which expects instances
of Note class as its paramters.  Implementing creation of code review
summary notes in Gerrit [1] will make use of both of these features.

[1] https://review.source.android.com/#change,20045

Change-Id: I627aefcedcd3434deecd63fa1d3e90e303b385ac
Signed-off-by: Sasa Zivkov <sasa.zivkov@sap.com>
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
stable-0.11
Sasa Zivkov 14 years ago committed by Chris Aniszczyk
parent
commit
832d3b8384
  1. 116
      org.eclipse.jgit.test/tst/org/eclipse/jgit/notes/LeafBucketTest.java
  2. 9
      org.eclipse.jgit/src/org/eclipse/jgit/notes/FanoutBucket.java
  3. 5
      org.eclipse.jgit/src/org/eclipse/jgit/notes/LeafBucket.java
  4. 2
      org.eclipse.jgit/src/org/eclipse/jgit/notes/Note.java
  5. 2
      org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteBucket.java
  6. 16
      org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java

116
org.eclipse.jgit.test/tst/org/eclipse/jgit/notes/LeafBucketTest.java

@ -57,9 +57,9 @@ public class LeafBucketTest {
@Test
public void testEmpty() {
LeafBucket b = new LeafBucket(0);
assertNull(b.get(id(0x00), null));
assertNull(b.get(id(0x01), null));
assertNull(b.get(id(0xfe), null));
assertNull(b.getNote(id(0x00), null));
assertNull(b.getNote(id(0x01), null));
assertNull(b.getNote(id(0xfe), null));
}
@Test
@ -72,13 +72,13 @@ public class LeafBucketTest {
b.parseOneEntry(id(0x44), id(0x84));
b.parseOneEntry(id(0x55), id(0x85));
assertNull(b.get(id(0x01), null));
assertEquals(id(0x81), b.get(id(0x11), null));
assertEquals(id(0x82), b.get(id(0x22), null));
assertEquals(id(0x83), b.get(id(0x33), null));
assertEquals(id(0x84), b.get(id(0x44), null));
assertEquals(id(0x85), b.get(id(0x55), null));
assertNull(b.get(id(0x66), null));
assertNull(b.getNote(id(0x01), null));
assertEquals(id(0x81), b.getNote(id(0x11), null).getData());
assertEquals(id(0x82), b.getNote(id(0x22), null).getData());
assertEquals(id(0x83), b.getNote(id(0x33), null).getData());
assertEquals(id(0x84), b.getNote(id(0x44), null).getData());
assertEquals(id(0x85), b.getNote(id(0x55), null).getData());
assertNull(b.getNote(id(0x66), null));
}
@Test
@ -91,13 +91,13 @@ public class LeafBucketTest {
assertSame(b, b.set(id(0x44), id(0x84), null));
assertSame(b, b.set(id(0x55), id(0x85), null));
assertNull(b.get(id(0x01), null));
assertEquals(id(0x81), b.get(id(0x11), null));
assertEquals(id(0x82), b.get(id(0x22), null));
assertEquals(id(0x83), b.get(id(0x33), null));
assertEquals(id(0x84), b.get(id(0x44), null));
assertEquals(id(0x85), b.get(id(0x55), null));
assertNull(b.get(id(0x66), null));
assertNull(b.getNote(id(0x01), null));
assertEquals(id(0x81), b.getNote(id(0x11), null).getData());
assertEquals(id(0x82), b.getNote(id(0x22), null).getData());
assertEquals(id(0x83), b.getNote(id(0x33), null).getData());
assertEquals(id(0x84), b.getNote(id(0x44), null).getData());
assertEquals(id(0x85), b.getNote(id(0x55), null).getData());
assertNull(b.getNote(id(0x66), null));
}
@Test
@ -110,13 +110,13 @@ public class LeafBucketTest {
assertSame(b, b.set(id(0x22), id(0x82), null));
assertSame(b, b.set(id(0x11), id(0x81), null));
assertNull(b.get(id(0x01), null));
assertEquals(id(0x81), b.get(id(0x11), null));
assertEquals(id(0x82), b.get(id(0x22), null));
assertEquals(id(0x83), b.get(id(0x33), null));
assertEquals(id(0x84), b.get(id(0x44), null));
assertEquals(id(0x85), b.get(id(0x55), null));
assertNull(b.get(id(0x66), null));
assertNull(b.getNote(id(0x01), null));
assertEquals(id(0x81), b.getNote(id(0x11), null).getData());
assertEquals(id(0x82), b.getNote(id(0x22), null).getData());
assertEquals(id(0x83), b.getNote(id(0x33), null).getData());
assertEquals(id(0x84), b.getNote(id(0x44), null).getData());
assertEquals(id(0x85), b.getNote(id(0x55), null).getData());
assertNull(b.getNote(id(0x66), null));
}
@Test
@ -130,13 +130,13 @@ public class LeafBucketTest {
assertSame(b, b.set(id(0x22), id(0x82), null));
assertSame(b, b.set(id(0x44), id(0x84), null));
assertNull(b.get(id(0x01), null));
assertEquals(id(0x81), b.get(id(0x11), null));
assertEquals(id(0x82), b.get(id(0x22), null));
assertEquals(id(0x83), b.get(id(0x33), null));
assertEquals(id(0x84), b.get(id(0x44), null));
assertEquals(id(0x85), b.get(id(0x55), null));
assertNull(b.get(id(0x66), null));
assertNull(b.getNote(id(0x01), null));
assertEquals(id(0x81), b.getNote(id(0x11), null).getData());
assertEquals(id(0x82), b.getNote(id(0x22), null).getData());
assertEquals(id(0x83), b.getNote(id(0x33), null).getData());
assertEquals(id(0x84), b.getNote(id(0x44), null).getData());
assertEquals(id(0x85), b.getNote(id(0x55), null).getData());
assertNull(b.getNote(id(0x66), null));
}
@Test
@ -144,18 +144,18 @@ public class LeafBucketTest {
LeafBucket b = new LeafBucket(0);
assertSame(b, b.set(id(0x11), id(0x81), null));
assertEquals(id(0x81), b.get(id(0x11), null));
assertEquals(id(0x81), b.getNote(id(0x11), null).getData());
assertSame(b, b.set(id(0x11), id(0x01), null));
assertEquals(id(0x01), b.get(id(0x11), null));
assertEquals(id(0x01), b.getNote(id(0x11), null).getData());
}
@Test
public void testRemoveMissingNote() throws IOException {
LeafBucket b = new LeafBucket(0);
assertNull(b.get(id(0x11), null));
assertNull(b.getNote(id(0x11), null));
assertSame(b, b.set(id(0x11), null, null));
assertNull(b.get(id(0x11), null));
assertNull(b.getNote(id(0x11), null));
}
@Test
@ -170,13 +170,13 @@ public class LeafBucketTest {
assertSame(b, b.set(id(0x11), null, null));
assertNull(b.get(id(0x01), null));
assertNull(b.get(id(0x11), null));
assertEquals(id(0x82), b.get(id(0x22), null));
assertEquals(id(0x83), b.get(id(0x33), null));
assertEquals(id(0x84), b.get(id(0x44), null));
assertEquals(id(0x85), b.get(id(0x55), null));
assertNull(b.get(id(0x66), null));
assertNull(b.getNote(id(0x01), null));
assertNull(b.getNote(id(0x11), null));
assertEquals(id(0x82), b.getNote(id(0x22), null).getData());
assertEquals(id(0x83), b.getNote(id(0x33), null).getData());
assertEquals(id(0x84), b.getNote(id(0x44), null).getData());
assertEquals(id(0x85), b.getNote(id(0x55), null).getData());
assertNull(b.getNote(id(0x66), null));
}
@Test
@ -191,13 +191,13 @@ public class LeafBucketTest {
assertSame(b, b.set(id(0x33), null, null));
assertNull(b.get(id(0x01), null));
assertEquals(id(0x81), b.get(id(0x11), null));
assertEquals(id(0x82), b.get(id(0x22), null));
assertNull(b.get(id(0x33), null));
assertEquals(id(0x84), b.get(id(0x44), null));
assertEquals(id(0x85), b.get(id(0x55), null));
assertNull(b.get(id(0x66), null));
assertNull(b.getNote(id(0x01), null));
assertEquals(id(0x81), b.getNote(id(0x11), null).getData());
assertEquals(id(0x82), b.getNote(id(0x22), null).getData());
assertNull(b.getNote(id(0x33), null));
assertEquals(id(0x84), b.getNote(id(0x44), null).getData());
assertEquals(id(0x85), b.getNote(id(0x55), null).getData());
assertNull(b.getNote(id(0x66), null));
}
@Test
@ -212,13 +212,13 @@ public class LeafBucketTest {
assertSame(b, b.set(id(0x55), null, null));
assertNull(b.get(id(0x01), null));
assertEquals(id(0x81), b.get(id(0x11), null));
assertEquals(id(0x82), b.get(id(0x22), null));
assertEquals(id(0x83), b.get(id(0x33), null));
assertEquals(id(0x84), b.get(id(0x44), null));
assertNull(b.get(id(0x55), null));
assertNull(b.get(id(0x66), null));
assertNull(b.getNote(id(0x01), null));
assertEquals(id(0x81), b.getNote(id(0x11), null).getData());
assertEquals(id(0x82), b.getNote(id(0x22), null).getData());
assertEquals(id(0x83), b.getNote(id(0x33), null).getData());
assertEquals(id(0x84), b.getNote(id(0x44), null).getData());
assertNull(b.getNote(id(0x55), null));
assertNull(b.getNote(id(0x66), null));
}
@Test
@ -226,10 +226,10 @@ public class LeafBucketTest {
LeafBucket b = new LeafBucket(0);
assertSame(b, b.set(id(0x11), id(0x81), null));
assertEquals(id(0x81), b.get(id(0x11), null));
assertEquals(id(0x81), b.getNote(id(0x11), null).getData());
assertNull(b.set(id(0x11), null, null));
assertNull(b.get(id(0x11), null));
assertNull(b.getNote(id(0x11), null));
}
private static AnyObjectId id(int first) {

9
org.eclipse.jgit/src/org/eclipse/jgit/notes/FanoutBucket.java

@ -110,9 +110,10 @@ class FanoutBucket extends InMemoryNoteBucket {
}
@Override
ObjectId get(AnyObjectId objId, ObjectReader or) throws IOException {
Note getNote(AnyObjectId objId, ObjectReader or) throws IOException {
NoteBucket b = table[cell(objId)];
return b != null ? b.get(objId, or) : null;
return b != null ? b.getNote(objId, or) : null;
}
NoteBucket getBucket(int cell) {
@ -337,8 +338,8 @@ class FanoutBucket extends InMemoryNoteBucket {
}
@Override
ObjectId get(AnyObjectId objId, ObjectReader or) throws IOException {
return load(objId, or).get(objId, or);
Note getNote(AnyObjectId objId, ObjectReader or) throws IOException {
return load(objId, or).getNote(objId, or);
}
@Override

5
org.eclipse.jgit/src/org/eclipse/jgit/notes/LeafBucket.java

@ -102,9 +102,10 @@ class LeafBucket extends InMemoryNoteBucket {
return -(low + 1);
}
ObjectId get(AnyObjectId objId, ObjectReader or) {
@Override
Note getNote(AnyObjectId objId, ObjectReader or) {
int idx = search(objId);
return 0 <= idx ? notes[idx].getData() : null;
return 0 <= idx ? notes[idx] : null;
}
Note get(int index) {

2
org.eclipse.jgit/src/org/eclipse/jgit/notes/Note.java

@ -58,7 +58,7 @@ public class Note extends ObjectId {
* @param noteData
* the actual note data contained in this note
*/
Note(AnyObjectId noteOn, ObjectId noteData) {
public Note(AnyObjectId noteOn, ObjectId noteData) {
super(noteOn);
data = noteData;
}

2
org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteBucket.java

@ -58,7 +58,7 @@ import org.eclipse.jgit.lib.ObjectReader;
* @see LeafBucket
*/
abstract class NoteBucket {
abstract ObjectId get(AnyObjectId objId, ObjectReader reader)
abstract Note getNote(AnyObjectId objId, ObjectReader reader)
throws IOException;
abstract Iterator<Note> iterator(AnyObjectId objId, ObjectReader reader)

16
org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java

@ -206,7 +206,21 @@ public class NoteMap implements Iterable<Note> {
* a portion of the note space is not accessible.
*/
public ObjectId get(AnyObjectId id) throws IOException {
return root.get(id, reader);
Note n = root.getNote(id, reader);
return n == null ? null : n.getData();
}
/**
* Lookup a note for a specific ObjectId.
*
* @param id
* the object to look for.
* @return the note for the given object id, or null if no note exists.
* @throws IOException
* a portion of the note space is not accessible.
*/
public Note getNote(AnyObjectId id) throws IOException {
return root.getNote(id, reader);
}
/**

Loading…
Cancel
Save