From d07cbd866a06f5be431a1bc5ff79a32eedb4a5dc Mon Sep 17 00:00:00 2001 From: Anton Keks Date: Fri, 14 Aug 2015 01:38:06 +0300 Subject: [PATCH] use List instead of arrays for feeders/fetchers/exporters - it will be easier to add plugins that way --- .../azib/ipscan/config/ComponentRegistry.java | 13 +++++++------ .../ipscan/exporters/ExporterRegistry.java | 3 ++- .../azib/ipscan/fetchers/FetcherRegistry.java | 4 ++-- .../ipscan/gui/feeders/FeederGUIRegistry.java | 7 +++---- .../ipscan/exporters/ExporterRegistryTest.java | 7 ++++--- .../ipscan/fetchers/FetcherRegistryTest.java | 18 +++++++++--------- .../gui/feeders/FeederGUIRegistryTest.java | 6 ++++-- 7 files changed, 31 insertions(+), 27 deletions(-) diff --git a/src/net/azib/ipscan/config/ComponentRegistry.java b/src/net/azib/ipscan/config/ComponentRegistry.java index ec5dec78..d26aa164 100644 --- a/src/net/azib/ipscan/config/ComponentRegistry.java +++ b/src/net/azib/ipscan/config/ComponentRegistry.java @@ -19,6 +19,7 @@ import org.eclipse.swt.widgets.*; import org.picocontainer.MutablePicoContainer; import javax.inject.Named; +import java.util.Arrays; import java.util.List; /** @@ -66,18 +67,18 @@ public class ComponentRegistry { return feederRegistry; } - @Provides public AbstractFeederGUI[] feeders(RangeFeederGUI f1, RandomFeederGUI f2, FileFeederGUI f3) { - return new AbstractFeederGUI[] {f1, f2, f3}; + @Provides public List feeders(RangeFeederGUI f1, RandomFeederGUI f2, FileFeederGUI f3) { + return Arrays.asList(f1, f2, f3); } - @Provides public Exporter[] exporters(TXTExporter e1, CSVExporter e2, XMLExporter e3, IPListExporter e4) { - return new Exporter[] {e1, e2, e3, e4}; + @Provides public List exporters(TXTExporter e1, CSVExporter e2, XMLExporter e3, IPListExporter e4) { + return Arrays.asList(e1, e2, e3, e4); } - @Provides public Fetcher[] fetchers(IPFetcher f1, PingFetcher f2, PingTTLFetcher f3, HostnameFetcher f4, PortsFetcher f5, + @Provides public List fetchers(IPFetcher f1, PingFetcher f2, PingTTLFetcher f3, HostnameFetcher f4, PortsFetcher f5, FilteredPortsFetcher f6, WebDetectFetcher f7, HTTPSenderFetcher f8, CommentFetcher f9, NetBIOSInfoFetcher f10, MACFetcher f11, MACVendorFetcher f12) { - return new Fetcher[] {f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12}; + return Arrays.asList(f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12); } @Provides MACFetcher selectMacFetcher() { diff --git a/src/net/azib/ipscan/exporters/ExporterRegistry.java b/src/net/azib/ipscan/exporters/ExporterRegistry.java index 989f7fdf..5735b986 100644 --- a/src/net/azib/ipscan/exporters/ExporterRegistry.java +++ b/src/net/azib/ipscan/exporters/ExporterRegistry.java @@ -8,6 +8,7 @@ package net.azib.ipscan.exporters; import javax.inject.Inject; import java.util.Iterator; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; /** @@ -22,7 +23,7 @@ public class ExporterRegistry implements Iterable { private Map exporters; @Inject - public ExporterRegistry(Exporter[] registeredExporters) { + public ExporterRegistry(List registeredExporters) { exporters = new LinkedHashMap(); for (Exporter exporter : registeredExporters) { diff --git a/src/net/azib/ipscan/fetchers/FetcherRegistry.java b/src/net/azib/ipscan/fetchers/FetcherRegistry.java index ca8f7f48..258d34c2 100644 --- a/src/net/azib/ipscan/fetchers/FetcherRegistry.java +++ b/src/net/azib/ipscan/fetchers/FetcherRegistry.java @@ -36,11 +36,11 @@ public class FetcherRegistry { /** A collection of update listeners - observers of FetcherRegistry */ private List updateListeners = new ArrayList(); - @Inject public FetcherRegistry(Fetcher[] registeredFetchers, Preferences preferences) { + @Inject public FetcherRegistry(List registeredFetchers, Preferences preferences) { this.preferences = preferences; MutablePicoContainer prefsContainer = new DefaultPicoContainer(); - this.registeredFetchers = new LinkedHashMap(registeredFetchers.length); + this.registeredFetchers = new LinkedHashMap(registeredFetchers.size()); for (Fetcher fetcher : registeredFetchers) { this.registeredFetchers.put(fetcher.getId(), fetcher); Class prefsClass = fetcher.getPreferencesClass(); diff --git a/src/net/azib/ipscan/gui/feeders/FeederGUIRegistry.java b/src/net/azib/ipscan/gui/feeders/FeederGUIRegistry.java index 87b0c627..d7112887 100644 --- a/src/net/azib/ipscan/gui/feeders/FeederGUIRegistry.java +++ b/src/net/azib/ipscan/gui/feeders/FeederGUIRegistry.java @@ -16,7 +16,6 @@ import org.eclipse.swt.widgets.TableItem; import javax.inject.Inject; import javax.inject.Named; -import java.util.Arrays; import java.util.Iterator; import java.util.List; @@ -34,14 +33,14 @@ public class FeederGUIRegistry implements FeederRegistry { Feeder lastScanFeeder; private AbstractFeederGUI currentFeederGUI; - @Inject public FeederGUIRegistry(AbstractFeederGUI[] allTheFeeders, @Named("feederSelectionCombo") Combo feederSelectionCombo, GUIConfig guiConfig) { - this.feederGUIList = Arrays.asList(allTheFeeders); + @Inject public FeederGUIRegistry(List allTheFeeders, @Named("feederSelectionCombo") Combo feederSelectionCombo, GUIConfig guiConfig) { + this.feederGUIList = allTheFeeders; this.feederSelectionCombo = feederSelectionCombo; for (AbstractFeederGUI feederGUI : feederGUIList) { feederSelectionCombo.add(feederGUI.getFeederName()); } this.guiConfig = guiConfig; - this.currentFeederGUI = allTheFeeders[0]; + this.currentFeederGUI = allTheFeeders.get(0); } public AbstractFeederGUI current() { diff --git a/test/net/azib/ipscan/exporters/ExporterRegistryTest.java b/test/net/azib/ipscan/exporters/ExporterRegistryTest.java index ada0e37d..22c06791 100644 --- a/test/net/azib/ipscan/exporters/ExporterRegistryTest.java +++ b/test/net/azib/ipscan/exporters/ExporterRegistryTest.java @@ -3,11 +3,12 @@ */ package net.azib.ipscan.exporters; -import static org.junit.Assert.*; +import org.junit.Test; +import java.util.Arrays; import java.util.Iterator; -import org.junit.Test; +import static org.junit.Assert.*; /** * ExporterRegistryTest @@ -16,7 +17,7 @@ import org.junit.Test; */ public class ExporterRegistryTest { - private ExporterRegistry exporterRegistry = new ExporterRegistry(new Exporter[] {new TXTExporter(), new CSVExporter()}); + private ExporterRegistry exporterRegistry = new ExporterRegistry(Arrays.asList(new TXTExporter(), new CSVExporter())); @Test public void testIterator() { diff --git a/test/net/azib/ipscan/fetchers/FetcherRegistryTest.java b/test/net/azib/ipscan/fetchers/FetcherRegistryTest.java index ccd22c75..853a9513 100644 --- a/test/net/azib/ipscan/fetchers/FetcherRegistryTest.java +++ b/test/net/azib/ipscan/fetchers/FetcherRegistryTest.java @@ -13,6 +13,7 @@ import org.picocontainer.defaults.DefaultPicoContainer; import java.util.Iterator; import java.util.prefs.Preferences; +import static java.util.Arrays.asList; import static org.junit.Assert.*; /** @@ -39,7 +40,7 @@ public class FetcherRegistryTest { hostnameFetcher = new HostnameFetcher(); commentFetcher = new CommentFetcher(null); portsFetcher = new PortsFetcher(null); - fetcherRegistry = new FetcherRegistry(new Fetcher[] {ipFetcher, pingFetcher, hostnameFetcher, commentFetcher, portsFetcher}, preferences); + fetcherRegistry = new FetcherRegistry(asList(ipFetcher, pingFetcher, hostnameFetcher, commentFetcher, portsFetcher), preferences); } @After @@ -72,18 +73,18 @@ public class FetcherRegistryTest { @Test public void testLoadPreferences() throws Exception { preferences.remove(FetcherRegistry.PREFERENCE_SELECTED_FETCHERS); - fetcherRegistry = new FetcherRegistry(new Fetcher[] {ipFetcher, hostnameFetcher, commentFetcher}, preferences); + fetcherRegistry = new FetcherRegistry(asList(ipFetcher, hostnameFetcher, commentFetcher), preferences); assertEquals(4, fetcherRegistry.getSelectedFetchers().size()); preferences.put(FetcherRegistry.PREFERENCE_SELECTED_FETCHERS, hostnameFetcher.getId() + "###" + commentFetcher.getId()); - fetcherRegistry = new FetcherRegistry(new Fetcher[] {ipFetcher, hostnameFetcher, commentFetcher}, preferences); + fetcherRegistry = new FetcherRegistry(asList(ipFetcher, hostnameFetcher, commentFetcher), preferences); assertEquals(2, fetcherRegistry.getSelectedFetchers().size()); Iterator iterator = fetcherRegistry.getSelectedFetchers().iterator(); assertSame(hostnameFetcher, iterator.next()); assertSame(commentFetcher, iterator.next()); preferences.put(FetcherRegistry.PREFERENCE_SELECTED_FETCHERS, "not-existing-fetcher###" + hostnameFetcher.getId()); - fetcherRegistry = new FetcherRegistry(new Fetcher[] {ipFetcher, hostnameFetcher}, preferences); + fetcherRegistry = new FetcherRegistry(asList(ipFetcher, hostnameFetcher), preferences); assertEquals(1, fetcherRegistry.getSelectedFetchers().size()); } @@ -126,7 +127,7 @@ public class FetcherRegistryTest { container.registerComponentInstance(message); Fetcher editableFetcher = new EditableFetcher(); - fetcherRegistry = new FetcherRegistry(new Fetcher[] {ipFetcher, editableFetcher}, preferences); + fetcherRegistry = new FetcherRegistry(asList(ipFetcher, editableFetcher), preferences); EditableFetcherPrefs.calledWithMessage = null; fetcherRegistry.openPreferencesEditor(editableFetcher); @@ -142,14 +143,13 @@ public class FetcherRegistryTest { } public static class EditableFetcher extends AbstractFetcher { - public String getId() { + @Override public String getId() { return null; } - public Object scan(ScanningSubject subject) { + @Override public Object scan(ScanningSubject subject) { return null; } - @Override - public Class getPreferencesClass() { + @Override public Class getPreferencesClass() { return EditableFetcherPrefs.class; } } diff --git a/test/net/azib/ipscan/gui/feeders/FeederGUIRegistryTest.java b/test/net/azib/ipscan/gui/feeders/FeederGUIRegistryTest.java index 1ed7587f..cb80022b 100644 --- a/test/net/azib/ipscan/gui/feeders/FeederGUIRegistryTest.java +++ b/test/net/azib/ipscan/gui/feeders/FeederGUIRegistryTest.java @@ -15,6 +15,8 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; +import java.util.Collections; + import static org.junit.Assert.*; import static org.mockito.Mockito.*; @@ -38,7 +40,7 @@ public class FeederGUIRegistryTest { feederGUI = new RangeFeederGUI(parent); feederGUI.initialize(); - registry = new FeederGUIRegistry(new AbstractFeederGUI[] {feederGUI}, feederSelectionCombo, null); + registry = new FeederGUIRegistry(Collections.singletonList(feederGUI), feederSelectionCombo, null); } @After @@ -49,7 +51,7 @@ public class FeederGUIRegistryTest { @Test public void addFeederNamesToTheCombo() throws Exception { reset(feederSelectionCombo); - new FeederGUIRegistry(new AbstractFeederGUI[] {feederGUI}, feederSelectionCombo, null); + new FeederGUIRegistry(Collections.singletonList(feederGUI), feederSelectionCombo, null); verify(feederSelectionCombo).add(Labels.getLabel(feederGUI.getFeederId())); }