GT-3354: Code review fixes

This commit is contained in:
Ryan Kurtz 2019-12-09 09:06:33 -05:00
parent 2a64cf2a77
commit e53e4c99fc
5 changed files with 34 additions and 10 deletions

View file

@ -26,6 +26,7 @@ import java.util.stream.Collectors;
import javax.swing.*;
import org.apache.commons.collections4.IteratorUtils;
import org.junit.After;
import docking.action.DockingActionIf;
@ -46,7 +47,6 @@ import ghidra.test.AbstractProgramBasedTest;
import ghidra.util.Msg;
import ghidra.util.search.memory.MemSearchResult;
import ghidra.util.table.GhidraTable;
import util.CollectionUtils;
/**
* Base class for memory search tests.
@ -192,7 +192,7 @@ public abstract class AbstractMemSearchTest extends AbstractProgramBasedTest {
AddressSet addressSet = runSwing(() -> markers.getAddressSet());
AddressIterator it = addressSet.getAddresses(true);
List<Address> list = CollectionUtils.asStream(it).collect(Collectors.toList());
List<Address> list = IteratorUtils.toList(it);
assertListEqualUnordered("Search markers not correctly generated", expected, list);
}

View file

@ -36,7 +36,6 @@ import java.util.concurrent.atomic.AtomicReference;
import javax.swing.*;
import javax.swing.table.JTableHeader;
import org.apache.commons.collections4.IteratorUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
@ -1754,8 +1753,7 @@ public class GhidraFileChooserTest extends AbstractDockingTest {
CompletableFuture<List<File>> results = showMultiSelectionChooser(files.parent, FILES_ONLY);
selectFiles(CollectionUtils.asIterable(
IteratorUtils.chainedIterator(files.files.iterator(), files.dirs.iterator())));
selectFiles(CollectionUtils.asIterable(files.files, files.dirs));
pressOk();
assertChooserHidden();
@ -1769,13 +1767,11 @@ public class GhidraFileChooserTest extends AbstractDockingTest {
CompletableFuture<List<File>> results =
showMultiSelectionChooser(files.parent, GhidraFileChooserMode.FILES_AND_DIRECTORIES);
selectFiles(CollectionUtils.asIterable(
IteratorUtils.chainedIterator(files.files.iterator(), files.dirs.iterator())));
selectFiles(CollectionUtils.asIterable(files.files, files.dirs));
pressOk();
assertChooserHidden();
assertChosen(results, CollectionUtils.asIterable(
IteratorUtils.chainedIterator(files.files.iterator(), files.dirs.iterator()))); // dirs are dropped
assertChosen(results, CollectionUtils.asIterable(files.files, files.dirs)); // dirs are dropped
}
//==================================================================================================

View file

@ -398,6 +398,19 @@ public class CollectionUtils {
return () -> iterator;
}
/**
* Combines all collections passed-in into a pass-through not creating a new collection)
* Iterable.
*
* @param iterables the iterables to combine
* @return the iterable
*/
@SafeVarargs
public static <T> Iterable<T> asIterable(Iterable<T>... iterables) {
Stream<T> s = asStream(iterables);
return asIterable(s.iterator());
}
/**
* Turns the given iterator into a stream
*

View file

@ -225,6 +225,21 @@ public class CollectionUtilsTest {
assertEquals("One", iterator.next());
}
@Test
public void testAsIterable_Collections() {
List<String> original = Arrays.asList("One", "Two", "Three", "Four");
Collection<String> a = Arrays.asList(original.get(0), original.get(1));
Collection<String> b = Arrays.asList(original.get(2));
Collection<String> c = Collections.emptyList();
Collection<String> d = Arrays.asList(original.get(3));
Iterable<String> iterable = CollectionUtils.asIterable(a, b, c, d);
List<String> result = new ArrayList<>();
iterable.forEach(s -> result.add(s));
assertEquals(original, result);
}
@Test
public void testAsList_UnknownToType() {
List<String> list = new ArrayList<>();

View file

@ -163,7 +163,7 @@ class ImportGhidraToolsDialog extends DialogComponentProvider {
Set<ToolTemplate> extraTools = ToolUtils.getExtraApplicationTools();
Stream<String> defaultToolNames = defaultTools.stream().map(ToolTemplate::getPath);
Stream<String> extraToolNames = extraTools.parallelStream().map(ToolTemplate::getPath);
Stream<String> extraToolNames = extraTools.stream().map(ToolTemplate::getPath);
int elementCount = defaultTools.size() + extraTools.size();
tools = new String[elementCount];