mirror of
https://github.com/angryip/ipscan.git
synced 2025-10-26 11:18:17 +00:00
use List instead of arrays for feeders/fetchers/exporters - it will be easier to add plugins that way
This commit is contained in:
parent
d82481f601
commit
d07cbd866a
@ -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<AbstractFeederGUI> 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<Exporter> exporters(TXTExporter e1, CSVExporter e2, XMLExporter e3, IPListExporter e4) {
|
||||
return Arrays.<Exporter>asList(e1, e2, e3, e4);
|
||||
}
|
||||
|
||||
@Provides public Fetcher[] fetchers(IPFetcher f1, PingFetcher f2, PingTTLFetcher f3, HostnameFetcher f4, PortsFetcher f5,
|
||||
@Provides public List<Fetcher> 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.<Fetcher>asList(f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12);
|
||||
}
|
||||
|
||||
@Provides MACFetcher selectMacFetcher() {
|
||||
|
||||
@ -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<Exporter> {
|
||||
private Map<String, Exporter> exporters;
|
||||
|
||||
@Inject
|
||||
public ExporterRegistry(Exporter[] registeredExporters) {
|
||||
public ExporterRegistry(List<Exporter> registeredExporters) {
|
||||
exporters = new LinkedHashMap<String, Exporter>();
|
||||
|
||||
for (Exporter exporter : registeredExporters) {
|
||||
|
||||
@ -36,11 +36,11 @@ public class FetcherRegistry {
|
||||
/** A collection of update listeners - observers of FetcherRegistry */
|
||||
private List<FetcherRegistryUpdateListener> updateListeners = new ArrayList<FetcherRegistryUpdateListener>();
|
||||
|
||||
@Inject public FetcherRegistry(Fetcher[] registeredFetchers, Preferences preferences) {
|
||||
@Inject public FetcherRegistry(List<Fetcher> registeredFetchers, Preferences preferences) {
|
||||
this.preferences = preferences;
|
||||
MutablePicoContainer prefsContainer = new DefaultPicoContainer();
|
||||
|
||||
this.registeredFetchers = new LinkedHashMap<String, Fetcher>(registeredFetchers.length);
|
||||
this.registeredFetchers = new LinkedHashMap<String, Fetcher>(registeredFetchers.size());
|
||||
for (Fetcher fetcher : registeredFetchers) {
|
||||
this.registeredFetchers.put(fetcher.getId(), fetcher);
|
||||
Class<? extends FetcherPrefs> prefsClass = fetcher.getPreferencesClass();
|
||||
|
||||
@ -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<AbstractFeederGUI> {
|
||||
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<AbstractFeederGUI> 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() {
|
||||
|
||||
@ -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.<Exporter>asList(new TXTExporter(), new CSVExporter()));
|
||||
|
||||
@Test
|
||||
public void testIterator() {
|
||||
|
||||
@ -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<? extends FetcherPrefs> getPreferencesClass() {
|
||||
@Override public Class<? extends FetcherPrefs> getPreferencesClass() {
|
||||
return EditableFetcherPrefs.class;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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.<AbstractFeederGUI>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.<AbstractFeederGUI>singletonList(feederGUI), feederSelectionCombo, null);
|
||||
verify(feederSelectionCombo).add(Labels.getLabel(feederGUI.getFeederId()));
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user