a nullable collection leads to confusion

This commit is contained in:
Bas Leijdekkers
2017-06-29 20:59:49 +02:00
parent a775610324
commit dbf5098292
4 changed files with 10 additions and 14 deletions
@@ -58,7 +58,6 @@ import com.intellij.usages.rules.UsageInFile;
import com.intellij.util.AdapterProcessor;
import com.intellij.util.Processor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.util.*;
@@ -491,8 +490,8 @@ public class ReplaceInProjectManager {
return true;
}
private void replaceUsagesUnderCommand(@NotNull final ReplaceContext replaceContext, @Nullable final Set<Usage> usagesSet) {
if (usagesSet == null) {
private void replaceUsagesUnderCommand(@NotNull final ReplaceContext replaceContext, @NotNull final Set<Usage> usagesSet) {
if (usagesSet.isEmpty()) {
return;
}
@@ -31,6 +31,7 @@ import com.intellij.usages.Usage;
import com.intellij.usages.UsageInfo2UsageAdapter;
import com.intellij.usages.UsageView;
import com.intellij.util.ObjectUtils;
import org.jetbrains.annotations.NotNull;
import java.util.*;
import java.util.stream.Collectors;
@@ -65,7 +66,7 @@ class ReplaceUsageViewContext extends UsageViewContext {
final Runnable previewReplacement = () -> {
final Set<Usage> selection = myUsageView.getSelectedUsages();
if (selection == null || selection.isEmpty()) {
if (selection.isEmpty()) {
return;
}
for (Usage usage : selection) {
@@ -85,10 +86,7 @@ class ReplaceUsageViewContext extends UsageViewContext {
myUsageView.addButtonToLowerPane(previewReplacement, SSRBundle.message("preview.replacement.button"));
}
private void replace(Collection<Usage> usages) {
if (usages == null) {
return;
}
private void replace(@NotNull Collection<Usage> usages) {
final Set<Usage> excluded = myUsageView.getExcludedUsages();
usages = usages.stream().filter(u -> !excluded.contains(u)).filter(u -> isValid((UsageInfo2UsageAdapter)u)).collect(Collectors.toList());
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2014 JetBrains s.r.o.
* Copyright 2000-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -81,8 +81,7 @@ public interface UsageView extends Disposable {
@NotNull
Set<Usage> getExcludedUsages();
@Nullable
Set<Usage> getSelectedUsages();
@NotNull Set<Usage> getSelectedUsages();
@NotNull Set<Usage> getUsages();
@NotNull List<Usage> getSortedUsages();
@@ -1470,12 +1470,12 @@ public class UsageViewImpl implements UsageView {
}
@Override
@Nullable
@NotNull
public Set<Usage> getSelectedUsages() {
ApplicationManager.getApplication().assertIsDispatchThread();
TreePath[] selectionPaths = myTree.getSelectionPaths();
if (selectionPaths == null) {
return null;
return Collections.emptySet();
}
Set<Usage> usages = new THashSet<>();
@@ -1679,7 +1679,7 @@ public class UsageViewImpl implements UsageView {
else if (key == USAGES_KEY) {
final Set<Usage> selectedUsages = getSelectedUsages();
sink.put(USAGES_KEY, selectedUsages != null ? selectedUsages.toArray(new Usage[selectedUsages.size()]) : null);
sink.put(USAGES_KEY, selectedUsages.toArray(new Usage[selectedUsages.size()]));
}
else if (key == USAGE_TARGETS_KEY) {