In the change screen a user can select various objects as base for the
diff view: a regular patch set, the base of a patch set, the parent of
a merge, the auto-merge of a merge or an edit patch set. At the moment
all of these are represented by a PatchSet.Id:
* regular patch set: PatchSet.Id with id > 0
* base of a patch set: null
* the parent of a merge: PatchSet.Id with id < 0
* auto-merge of a merge: null
* edit patch set: PatchSet.Id with id == 0
This means if we only look at the patch set ID and it is null, we
don't know if it's the base of a patch set or the auto-merge of a
merge. To understand what null means, we must know if we are looking
at a merge commit, but this knowledge is not available in all classes.
This change refactors the UI classes to take a DiffObject as base
instead of a PatchSet.Id so that in future we can differentiate
between the base of a patch set and the auto-merge of a merge (see
follow-up change).
Change-Id: Ie3097ae4ff6435eef909f62eced8e6e82ff65de6
Signed-off-by: Edwin Kempin <ekempin@google.com>