package me.legrange.panstamp.gui.task; import me.legrange.swap.ModemSetup; import me.legrange.panstamp.Network; import me.legrange.panstamp.NetworkException; import me.legrange.swap.SwapException; /** * * @since 1.0 * @author Gideon le Grange https://github.com/GideonLeGrange */ abstract class CreateNetworkTask extends Task<Network> { protected CreateNetworkTask(int channel, int address, int networkId) { this.channel = channel; this.address = address; this.networkId = networkId; } @Override protected final Network run() throws SwapException, NetworkException { Network gw = openNetwork(); update(40, "Configuring modem"); ModemSetup setup = gw.getSWAPModem().getSetup(); update(60, "Configuring modem"); setup.setChannel(channel); update(67, "Configuring modem"); setup.setDeviceAddress(address); update(73, "Configuring modem"); setup.setNetworkID(networkId); update(80, "Configuring modem"); gw.getSWAPModem().setSetup(setup); update(90, "Completed"); return gw; } protected abstract Network openNetwork() throws SwapException, NetworkException; protected final int channel; protected final int address; protected final int networkId; }