in src/org/jetbrains/tfsIntegration/core/tfs/VersionControlServer.java [1170:1249]
public ResultWithFailures<CheckinResult> checkIn(final String workspaceName,
final String workspaceOwnerName,
Collection<String> serverItems,
final String comment,
final @NotNull Map<WorkItem, CheckinWorkItemAction> workItemsActions,
final List<Pair<String, String>> checkinNotes,
final @Nullable Pair<String/*comment*/, Map<String/*policyName*/, String/*policyMessage*/>> policyOverride,
Object projectOrComponent, String progressTitle)
throws TfsException {
final ArrayOfCheckinNoteFieldValue fieldValues = new ArrayOfCheckinNoteFieldValue();
for (Pair<String, String> checkinNote : checkinNotes) {
final CheckinNoteFieldValue fieldValue = new CheckinNoteFieldValue();
fieldValue.setName(checkinNote.first);
fieldValue.setVal(checkinNote.second);
fieldValues.addCheckinNoteFieldValue(fieldValue);
}
final CheckinNote checkinNote = new CheckinNote();
checkinNote.setValues(fieldValues);
final PolicyOverrideInfo policyOverrideInfo = new PolicyOverrideInfo();
if (policyOverride != null) {
policyOverrideInfo.setComment(policyOverride.first);
ArrayOfPolicyFailureInfo policyFailures = new ArrayOfPolicyFailureInfo();
for (Map.Entry<String, String> entry : policyOverride.second.entrySet()) {
PolicyFailureInfo policyFailureInfo = new PolicyFailureInfo();
policyFailureInfo.setPolicyName(entry.getKey());
policyFailureInfo.setMessage(entry.getValue());
policyFailures.addPolicyFailureInfo(policyFailureInfo);
}
policyOverrideInfo.setPolicyFailures(policyFailures);
}
final Changeset changeset = new Changeset();
changeset.setCset(0);
changeset.setDate(TfsUtil.getZeroCalendar());
changeset.setOwner(workspaceOwnerName);
changeset.setComment(comment);
changeset.setCheckinNote(checkinNote);
changeset.setPolicyOverride(policyOverrideInfo);
final CheckinNotificationInfo checkinNotificationInfo = new CheckinNotificationInfo();
checkinNotificationInfo.setWorkItemInfo(toArrayOfCheckinNotificationWorkItemInfo(workItemsActions));
final CheckinOptions checkinOptions = new CheckinOptions();
checkinOptions.setCheckinOptions_type0(new CheckinOptions_type0[]{CheckinOptions_type0.ValidateCheckinOwner}); // TODO checkin options
OperationOnCollection<String, ResultWithFailures<CheckinResult>> operation =
new OperationOnCollection<String, ResultWithFailures<CheckinResult>>() {
@Override
public ResultWithFailures<CheckinResult> execute(Collection<String> items, Credentials credentials, ProgressIndicator pi)
throws RemoteException, HostNotApplicableException {
CheckIn param = new CheckIn();
param.setWorkspaceName(workspaceName);
param.setOwnerName(workspaceOwnerName);
param.setServerItems(TfsUtil.toArrayOfString(items));
param.setInfo(changeset);
param.setCheckinNotificationInfo(checkinNotificationInfo);
param.setCheckinOptions(checkinOptions);
CheckInResponse response = myBeans.getRepositoryStub(credentials, pi).checkIn(param);
ResultWithFailures<CheckinResult> result = new ResultWithFailures<>();
if (response.getCheckInResult() != null) {
result.getResult().add(response.getCheckInResult());
}
if (response.getFailures().getFailure() != null) {
ContainerUtil.addAll(result.getFailures(), response.getFailures().getFailure());
}
return result;
}
@Override
public ResultWithFailures<CheckinResult> merge(Collection<ResultWithFailures<CheckinResult>> results) {
return ResultWithFailures.merge(results);
}
};
return execute(operation, projectOrComponent, serverItems, progressTitle);
}