/******************************************************************************* * Copyright (c) 2013 Ericsson and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Miles Parker, Tasktop Technologies - initial API and implementation * Steffen Pingel, Tasktop Technologies - original GerritUtil implementation *******************************************************************************/ package org.eclipse.mylyn.internal.gerrit.core.remote; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.mylyn.internal.gerrit.core.client.PatchSetContent; import org.eclipse.mylyn.reviews.core.model.IReviewItemSet; import com.google.gerrit.common.data.PatchSetDetail; import com.google.gerrit.reviewdb.PatchSet; /** * Manages retrieval of patch set contents, including file revisions and associated comments, from Gerrit API, * supporting arbitrary patch set contents, including comparisons. * * @author Miles Parker */ public class PatchSetContentCompareRemoteFactory extends PatchSetContentRemoteFactory<PatchSetContent> { public PatchSetContentCompareRemoteFactory(GerritRemoteFactoryProvider gerritRemoteFactoryProvider) { super(gerritRemoteFactoryProvider); } @Override public PatchSetContent pull(IReviewItemSet parentObject, PatchSetContent content, IProgressMonitor monitor) throws CoreException { return super.pull(parentObject, content, monitor); } @Override public PatchSetContent getRemoteKey(PatchSetContent remoteObject) { return remoteObject; } @Override public String getLocalKeyForRemoteKey(PatchSetContent content) { return content.getId(); } @Override public PatchSetContent getRemoteObjectForLocalKey(IReviewItemSet parentObject, String localKey) { return super.getRemoteKeyForLocalKey(parentObject, localKey); } @Override public PatchSetContent getRemoteKeyForLocalKey(IReviewItemSet parentObject, String localKey) { PatchSetDetailRemoteFactory itemSetFactory = ((GerritRemoteFactoryProvider) getFactoryProvider()).getReviewItemSetFactory(); PatchSetDetail detail = itemSetFactory.getRemoteKeyForLocalKey(parentObject.getReview(), localKey); if (detail != null) { return new PatchSetContent((PatchSet) null, detail); } return null; } }