in src/org/jetbrains/tfsIntegration/core/tfs/VersionControlServer.java [347:407]
private <T> ResultWithFailures<GetOperation> pendChanges(final String workspaceName,
final String workspaceOwner,
Collection<T> paths,
final boolean updateLocalVersion,
final ChangeRequestProvider<T> changeRequestProvider,
Object projectOrComponent,
String progressTitle) throws TfsException {
OperationOnCollection<T, ResultWithFailures<GetOperation>> operation =
new OperationOnCollection<T, ResultWithFailures<GetOperation>>() {
@Override
public ResultWithFailures<GetOperation> execute(Collection<T> items, Credentials credentials, ProgressIndicator pi)
throws RemoteException, HostNotApplicableException {
ResultWithFailures<GetOperation> result = new ResultWithFailures<>();
List<ChangeRequest> changeRequests = new ArrayList<>(items.size());
for (T path : items) {
changeRequests.add(changeRequestProvider.createChangeRequest(path));
}
final ArrayOfChangeRequest arrayOfChangeRequest = new ArrayOfChangeRequest();
arrayOfChangeRequest.setChangeRequest(changeRequests.toArray(new ChangeRequest[0]));
final PendChanges param = new PendChanges();
param.setOwnerName(workspaceOwner);
param.setWorkspaceName(workspaceName);
param.setChanges(arrayOfChangeRequest);
final PendChangesResponse response = myBeans.getRepositoryStub(credentials, pi).pendChanges(param);
if (updateLocalVersion && response.getPendChangesResult().getGetOperation() != null) {
final ArrayOfLocalVersionUpdate arrayOfLocalVersionUpdate = new ArrayOfLocalVersionUpdate();
List<LocalVersionUpdate> localVersionUpdates =
new ArrayList<>(response.getPendChangesResult().getGetOperation().length);
for (GetOperation getOperation : response.getPendChangesResult().getGetOperation()) {
localVersionUpdates.add(getLocalVersionUpdate(getOperation));
}
arrayOfLocalVersionUpdate
.setLocalVersionUpdate(localVersionUpdates.toArray(new LocalVersionUpdate[0]));
final UpdateLocalVersion param2 = new UpdateLocalVersion();
param2.setOwnerName(workspaceOwner);
param2.setWorkspaceName(workspaceName);
param2.setUpdates(arrayOfLocalVersionUpdate);
myBeans.getRepositoryStub(credentials, pi).updateLocalVersion(param2);
}
if (response.getPendChangesResult().getGetOperation() != null) {
ContainerUtil.addAll(result.getResult(), response.getPendChangesResult().getGetOperation());
}
if (response.getFailures().getFailure() != null) {
ContainerUtil.addAll(result.getFailures(), response.getFailures().getFailure());
}
return result;
}
@Override
public ResultWithFailures<GetOperation> merge(Collection<ResultWithFailures<GetOperation>> results) {
return ResultWithFailures.merge(results);
}
};
return execute(operation, projectOrComponent, paths, progressTitle);
}