public Map getExtendedItems()

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);
  }