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>
tags/v0.11.1
Sasa Zivkov 13 years ago
parent
commit
832d3b8384

+ 58
- 58
org.eclipse.jgit.test/tst/org/eclipse/jgit/notes/LeafBucketTest.java View File

@@ -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) {

+ 5
- 4
org.eclipse.jgit/src/org/eclipse/jgit/notes/FanoutBucket.java View File

@@ -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

+ 3
- 2
org.eclipse.jgit/src/org/eclipse/jgit/notes/LeafBucket.java View File

@@ -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) {

+ 1
- 1
org.eclipse.jgit/src/org/eclipse/jgit/notes/Note.java View File

@@ -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;
}

+ 1
- 1
org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteBucket.java View File

@@ -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)

+ 15
- 1
org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java View File

@@ -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