in src/org/jetbrains/tfsIntegration/core/tfs/VersionControlServer.java [652:702]
public Map<FilePath, ExtendedItem> getExtendedItems(final String workspaceName,
final String ownerName,
List<FilePath> paths,
final DeletedState deletedState,
Object projectOrComponent, String progressTitle) throws TfsException {
OperationOnList<FilePath, Map<FilePath, ExtendedItem>> operation = new OperationOnList<FilePath, Map<FilePath, ExtendedItem>>() {
@Override
public Map<FilePath, ExtendedItem> execute(List<FilePath> items, Credentials credentials, ProgressIndicator pi)
throws RemoteException, HostNotApplicableException {
final List<ItemSpec> itemSpecs = new ArrayList<>();
for (FilePath path : items) {
itemSpecs.add(createItemSpec(path, RecursionType.None));
}
final ArrayOfItemSpec arrayOfItemSpec = new ArrayOfItemSpec();
arrayOfItemSpec.setItemSpec(itemSpecs.toArray(new ItemSpec[0]));
QueryItemsExtended param = new QueryItemsExtended();
param.setWorkspaceName(workspaceName);
param.setWorkspaceOwner(ownerName);
param.setItems(arrayOfItemSpec);
param.setDeletedState(deletedState);
param.setItemType(ItemType.Any);
ArrayOfExtendedItem[] extendedItems =
myBeans.getRepositoryStub(credentials, pi).queryItemsExtended(param).getQueryItemsExtendedResult().getArrayOfExtendedItem();
TFSVcs.assertTrue(extendedItems != null && extendedItems.length == items.size());
Map<FilePath, ExtendedItem> result = new HashMap<>();
//noinspection ConstantConditions
for (int i = 0; i < extendedItems.length; i++) {
ExtendedItem[] resultItems = extendedItems[i].getExtendedItem();
ExtendedItem item = null;
if (resultItems != null) {
item = chooseExtendedItem(resultItems);
}
result.put(items.get(i), item);
}
return result;
}
@Override
public Map<FilePath, ExtendedItem> merge(Collection<Map<FilePath, ExtendedItem>> results) {
Map<FilePath, ExtendedItem> merged = new HashMap<>();
for (Map<FilePath, ExtendedItem> r : results) {
merged.putAll(r);
}
return merged;
}
};
return execute(operation, projectOrComponent, paths, progressTitle);
}