Просмотр исходного кода

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 лет назад
Родитель
Сommit
832d3b8384

+ 58
- 58
org.eclipse.jgit.test/tst/org/eclipse/jgit/notes/LeafBucketTest.java Просмотреть файл

@Test @Test
public void testEmpty() { public void testEmpty() {
LeafBucket b = new LeafBucket(0); 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 @Test
b.parseOneEntry(id(0x44), id(0x84)); b.parseOneEntry(id(0x44), id(0x84));
b.parseOneEntry(id(0x55), id(0x85)); 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 @Test
assertSame(b, b.set(id(0x44), id(0x84), null)); assertSame(b, b.set(id(0x44), id(0x84), null));
assertSame(b, b.set(id(0x55), id(0x85), 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 @Test
assertSame(b, b.set(id(0x22), id(0x82), null)); assertSame(b, b.set(id(0x22), id(0x82), null));
assertSame(b, b.set(id(0x11), id(0x81), 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 @Test
assertSame(b, b.set(id(0x22), id(0x82), null)); assertSame(b, b.set(id(0x22), id(0x82), null));
assertSame(b, b.set(id(0x44), id(0x84), 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 @Test
LeafBucket b = new LeafBucket(0); LeafBucket b = new LeafBucket(0);


assertSame(b, b.set(id(0x11), id(0x81), null)); 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)); 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 @Test
public void testRemoveMissingNote() throws IOException { public void testRemoveMissingNote() throws IOException {
LeafBucket b = new LeafBucket(0); 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)); assertSame(b, b.set(id(0x11), null, null));
assertNull(b.get(id(0x11), null));
assertNull(b.getNote(id(0x11), null));
} }


@Test @Test


assertSame(b, b.set(id(0x11), null, null)); 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 @Test


assertSame(b, b.set(id(0x33), null, null)); 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 @Test


assertSame(b, b.set(id(0x55), null, null)); 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 @Test
LeafBucket b = new LeafBucket(0); LeafBucket b = new LeafBucket(0);


assertSame(b, b.set(id(0x11), id(0x81), null)); 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.set(id(0x11), null, null));
assertNull(b.get(id(0x11), null));
assertNull(b.getNote(id(0x11), null));
} }


private static AnyObjectId id(int first) { private static AnyObjectId id(int first) {

+ 5
- 4
org.eclipse.jgit/src/org/eclipse/jgit/notes/FanoutBucket.java Просмотреть файл

} }


@Override @Override
ObjectId get(AnyObjectId objId, ObjectReader or) throws IOException {
Note getNote(AnyObjectId objId, ObjectReader or) throws IOException {
NoteBucket b = table[cell(objId)]; 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) { NoteBucket getBucket(int cell) {
} }


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

+ 3
- 2
org.eclipse.jgit/src/org/eclipse/jgit/notes/LeafBucket.java Просмотреть файл

return -(low + 1); return -(low + 1);
} }


ObjectId get(AnyObjectId objId, ObjectReader or) {
@Override
Note getNote(AnyObjectId objId, ObjectReader or) {
int idx = search(objId); int idx = search(objId);
return 0 <= idx ? notes[idx].getData() : null;
return 0 <= idx ? notes[idx] : null;
} }


Note get(int index) { Note get(int index) {

+ 1
- 1
org.eclipse.jgit/src/org/eclipse/jgit/notes/Note.java Просмотреть файл

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

+ 1
- 1
org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteBucket.java Просмотреть файл

* @see LeafBucket * @see LeafBucket
*/ */
abstract class NoteBucket { abstract class NoteBucket {
abstract ObjectId get(AnyObjectId objId, ObjectReader reader)
abstract Note getNote(AnyObjectId objId, ObjectReader reader)
throws IOException; throws IOException;


abstract Iterator<Note> iterator(AnyObjectId objId, ObjectReader reader) abstract Iterator<Note> iterator(AnyObjectId objId, ObjectReader reader)

+ 15
- 1
org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java Просмотреть файл

* a portion of the note space is not accessible. * a portion of the note space is not accessible.
*/ */
public ObjectId get(AnyObjectId id) throws IOException { 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);
} }


/** /**

Загрузка…
Отмена
Сохранить