Added pull-up method refactoring

This commit is contained in:
Raj Patel 2023-04-06 21:52:01 -03:00
parent a61b443f29
commit 75c272e706
4 changed files with 9 additions and 24 deletions

View File

@ -18,6 +18,7 @@ import net.azib.ipscan.core.state.StateMachine.Transition;
import net.azib.ipscan.core.state.StateTransitionListener;
import net.azib.ipscan.gui.ResultTable;
import net.azib.ipscan.gui.StatusBar;
import net.azib.ipscan.gui.feeders.AbstractFeederGUI;
import net.azib.ipscan.gui.feeders.FeederGUIRegistry;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
@ -48,6 +49,7 @@ public class StartStopScanningAction implements SelectionListener, ScanningProgr
private ResultTable resultTable;
private FeederGUIRegistry feederRegistry;
private Button button;
private AbstractFeederGUI abstractFeederGUI;
Image[] buttonImages = new Image[ScanningState.values().length];
String[] buttonTexts = new String[ScanningState.values().length];
@ -80,7 +82,7 @@ public class StartStopScanningAction implements SelectionListener, ScanningProgr
public StartStopScanningAction(ScannerDispatcherThreadFactory scannerThreadFactory, StateMachine stateMachine, ResultTable resultTable,
StatusBar statusBar, FeederGUIRegistry feederRegistry, PingerRegistry pingerRegistry,
Button startStopButton, GUIConfig guiConfig) {
Button startStopButton, GUIConfig guiConfig, AbstractFeederGUI abstractFeederGUI) {
this(startStopButton.getDisplay());
this.scannerThreadFactory = scannerThreadFactory;
@ -92,6 +94,7 @@ public class StartStopScanningAction implements SelectionListener, ScanningProgr
this.stateMachine = stateMachine;
this.guiConfig = guiConfig;
this.taskBarItem = getTaskBarItem();
this.abstractFeederGUI = abstractFeederGUI;
// add listeners to all state changes
stateMachine.addTransitionListener(this);
@ -160,7 +163,7 @@ public class StartStopScanningAction implements SelectionListener, ScanningProgr
resultTable.removeAll();
try {
scannerThread = scannerThreadFactory.createScannerThread(feederRegistry.createFeeder(), StartStopScanningAction.this, createResultsCallback(state));
scannerThread = scannerThreadFactory.createScannerThread(abstractFeederGUI.createFeeder(), StartStopScanningAction.this, createResultsCallback(state));
stateMachine.startScanning();
mainWindowTitle = statusBar.getShell().getText();
}

View File

@ -94,6 +94,10 @@ public abstract class AbstractFeederGUI extends Composite implements FeederCreat
}).start();
}
public Feeder createFeeder() {
return createFeeder();
}
protected void afterLocalHostInfoFilled(InterfaceAddress localInterface) {
}
}

View File

@ -79,14 +79,6 @@ public class FeederGUIRegistry implements FeederRegistry {
throw new FeederException("Feeder not found: " + feederId);
}
/**
* @return new Feeder initialized using the currently selected Feeder GUI
*/
public Feeder createFeeder() {
lastFeeder = current().createFeeder();
return lastFeeder;
}
/**
* @param selection selected table items to derive IP addresses from
* @return initialized instance of RescanFeeder

View File

@ -47,18 +47,4 @@ public class FeederGUIRegistryTest {
assertNotNull(registry.lastFeeder);
assertNotNull(registry.lastFeeder.toString());
}
@Test
public void createFeederRemembersTheLastOne() throws Exception {
Feeder lastFeeder = registry.createFeeder();
assertSame(lastFeeder, registry.lastFeeder);
assertNotSame(lastFeeder, registry.createFeeder());
}
@Test
public void createRescanFeederGetsOriginalFeeder() throws Exception {
Feeder lastFeeder = registry.createFeeder();
Feeder rescanFeeder = registry.createRescanFeeder(new TableItem[] {mock(TableItem.class)});
assertEquals(lastFeeder.getId(), rescanFeeder.getId());
}
}