10ba6179cb
There are 3 classes that represent an inline comment: - CommentInfo represents an inline comment in the REST API - PatchLineComment represents an inline comment in ReviewDb - RevisionNote.Comment represents an inline comment in NoteDb To support robot comments CommentInfo and RevisionNote.Comment must be extended so that the additional fields that are specific for robot comments can be supported. PatchLineComment should not be touched since robot comments will only be supported with NoteDb, but not with ReviewDb. At the moment PatchLineComment is also used to represent inline comments in all middle layers and in all utility classes that deal with inline comments. This means if NoteDb is used, inline comments come in over REST as CommentInfo, then they are converted into PatchLineComment and for storing them in NoteDb they are converted to RevisionNote.Comment. The intermediate transformation to PatchLineComment is bad for implementing robot comments, since this class should stay unchanged. To fix this RevisionNote.Comment is extracted into an own Comment class and then Comment is used instead of PatchLineComment in the middle layer. This means when NoteDb is used, inline comments are only converted once, from CommentInfo to Comment. Both types will have extensions for robot comments (by subtypes). For storing inline comments in ReviewDb inline comments are converted from CommentInfo to Comment to PatchLineComment. This is better than having the double-conversion for NoteDb, because ReviewDb will be removed in favour of NoteDb. This means when ReviewDb is removed PatchLineComment can then easily be deleted, as it's no longer used all over the codebase, but only in the ReviewDb layer. Change-Id: I53481e8231e04aeca5b924e409e97b0f1d53f516 Signed-off-by: Edwin Kempin <ekempin@google.com> |
||
---|---|---|
.. | ||
src | ||
BUCK | ||
BUILD |