Fix API breakage on ChangeDetailService

The Mylyn Reviews project pointed out Gerrit changed the API
signature of a JSON method they use remotely. Fix the API back to the
original signature, and define a new method with the extra arguments.

Change-Id: I51cbbdd64bdb72a666a6b5266db3b93494b75182
Signed-off-by: Shawn O. Pearce <sop@google.com>
This commit is contained in:
Shawn O. Pearce 2011-06-07 10:10:36 -07:00
parent 40d2020668
commit e313242c05
5 changed files with 25 additions and 17 deletions

View File

@ -29,7 +29,9 @@ public interface ChangeDetailService extends RemoteJsonService {
void includedInDetail(Change.Id id, AsyncCallback<IncludedInDetail> callback);
void patchSetDetail(PatchSet.Id keyA, PatchSet.Id keyB,
void patchSetDetail(PatchSet.Id key, AsyncCallback<PatchSetDetail> callback);
void patchSetDetail2(PatchSet.Id baseId, PatchSet.Id key,
AccountDiffPreference diffPrefs, AsyncCallback<PatchSetDetail> callback);
@SignInRequired

View File

@ -539,7 +539,7 @@ class PatchSetComplexDisclosurePanel extends ComplexDisclosurePanel implements O
diffPrefs = patchTable.getPreferences().get();
}
Util.DETAIL_SVC.patchSetDetail(patchSet.getId(), diffBaseId, diffPrefs,
Util.DETAIL_SVC.patchSetDetail2(diffBaseId, patchSet.getId(), diffPrefs,
new GerritCallback<PatchSetDetail>() {
@Override
public void onSuccess(PatchSetDetail result) {
@ -575,7 +575,7 @@ class PatchSetComplexDisclosurePanel extends ComplexDisclosurePanel implements O
diffPrefs = new ListenableAccountDiffPreference().get();
}
Util.DETAIL_SVC.patchSetDetail(patchSet.getId(), diffBaseId, diffPrefs,
Util.DETAIL_SVC.patchSetDetail2(diffBaseId, patchSet.getId(), diffPrefs,
new GerritCallback<PatchSetDetail>() {
public void onSuccess(final PatchSetDetail result) {
ensureLoaded(result);

View File

@ -320,7 +320,7 @@ public abstract class PatchScreen extends Screen implements
protected void onLoad() {
super.onLoad();
if (patchSetDetail == null) {
Util.DETAIL_SVC.patchSetDetail(idSideB, null, null,
Util.DETAIL_SVC.patchSetDetail(idSideB,
new GerritCallback<PatchSetDetail>() {
@Override
public void onSuccess(PatchSetDetail result) {
@ -403,7 +403,7 @@ public abstract class PatchScreen extends Screen implements
commitMessageBlock.display(patchSetDetail.getInfo().getMessage());
} else {
commitMessageBlock.setVisible(false);
Util.DETAIL_SVC.patchSetDetail(idSideB, null, null,
Util.DETAIL_SVC.patchSetDetail(idSideB,
new GerritCallback<PatchSetDetail>() {
@Override
public void onSuccess(PatchSetDetail result) {
@ -500,7 +500,7 @@ public abstract class PatchScreen extends Screen implements
final PatchSet.Id psid = patchKey.getParentKey();
fileList = new PatchTable(prefs);
fileList.setSavePointerId("PatchTable " + psid);
Util.DETAIL_SVC.patchSetDetail(psid, null, null,
Util.DETAIL_SVC.patchSetDetail(psid,
new GerritCallback<PatchSetDetail>() {
public void onSuccess(final PatchSetDetail result) {
fileList.display(result);

View File

@ -52,10 +52,14 @@ class ChangeDetailServiceImpl implements ChangeDetailService {
includedInDetail.create(id).to(callback);
}
public void patchSetDetail(final PatchSet.Id idA, final PatchSet.Id idB,
final AccountDiffPreference diffPrefs,
final AsyncCallback<PatchSetDetail> callback) {
patchSetDetail.create(idA, idB, diffPrefs).to(callback);
public void patchSetDetail(PatchSet.Id id,
AsyncCallback<PatchSetDetail> callback) {
patchSetDetail2(null, id, null, callback);
}
public void patchSetDetail2(PatchSet.Id baseId, PatchSet.Id id,
AccountDiffPreference diffPrefs, AsyncCallback<PatchSetDetail> callback) {
patchSetDetail.create(baseId, id, diffPrefs).to(callback);
}
public void patchSetPublishDetail(final PatchSet.Id id,

View File

@ -56,8 +56,10 @@ class PatchSetDetailFactory extends Handler<PatchSetDetail> {
LoggerFactory.getLogger(PatchSetDetailFactory.class);
interface Factory {
PatchSetDetailFactory create(@Assisted("psIdNew") PatchSet.Id psIdA,
@Assisted("psIdOld") PatchSet.Id psIdB, AccountDiffPreference diffPrefs);
PatchSetDetailFactory create(
@Assisted("psIdBase") @Nullable PatchSet.Id psIdBase,
@Assisted("psIdNew") PatchSet.Id psIdNew,
@Nullable AccountDiffPreference diffPrefs);
}
private final PatchSetInfoFactory infoFactory;
@ -66,8 +68,8 @@ class PatchSetDetailFactory extends Handler<PatchSetDetail> {
private final ChangeControl.Factory changeControlFactory;
private Project.NameKey projectKey;
private final PatchSet.Id psIdBase;
private final PatchSet.Id psIdNew;
private final PatchSet.Id psIdOld;
private final AccountDiffPreference diffPrefs;
private ObjectId oldId;
private ObjectId newId;
@ -80,16 +82,16 @@ class PatchSetDetailFactory extends Handler<PatchSetDetail> {
PatchSetDetailFactory(final PatchSetInfoFactory psif, final ReviewDb db,
final PatchListCache patchListCache,
final ChangeControl.Factory changeControlFactory,
@Assisted("psIdBase") @Nullable final PatchSet.Id psIdBase,
@Assisted("psIdNew") final PatchSet.Id psIdNew,
@Assisted("psIdOld") @Nullable final PatchSet.Id psIdOld,
@Assisted @Nullable final AccountDiffPreference diffPrefs) {
this.infoFactory = psif;
this.db = db;
this.patchListCache = patchListCache;
this.changeControlFactory = changeControlFactory;
this.psIdBase = psIdBase;
this.psIdNew = psIdNew;
this.psIdOld = psIdOld;
this.diffPrefs = diffPrefs;
}
@ -106,9 +108,9 @@ class PatchSetDetailFactory extends Handler<PatchSetDetail> {
final PatchList list;
if (psIdOld != null) {
if (psIdBase != null) {
oldId = toObjectId(psIdBase);
newId = toObjectId(psIdNew);
oldId = psIdOld != null ? toObjectId(psIdOld) : null;
projectKey = control.getProject().getNameKey();