package net.gcdc.plugtestcms4;
import net.gcdc.plugtestcms4.ping.PingStatus;
import net.gcdc.plugtestcms4.ping.PingSettings;
public class DUT
{
private boolean active = false;
private String name = "Unset";
private String rootPassword = "voyage";
private String ipv4AddressEth = "Unset";
private String ipv4AddressWLAN = "Unset";
private boolean receives = false;
private int rxPort = 1236;
private boolean transmits = false;
private int txPort = 1235;
private PingSettings pingSettings = null;
private Object pingSettingsLock = new Object ();
public DUT (String name, String ipv4AddressEth, String ipv4AddressWLAN, int rxPort)
{
if (name == null || ipv4AddressEth == null || ipv4AddressWLAN == null)
throw new IllegalArgumentException ();
this.name = name;
this.ipv4AddressEth = ipv4AddressEth;
this.ipv4AddressWLAN = ipv4AddressWLAN;
this.rxPort = rxPort;
}
public synchronized boolean getActive ()
{
return this.active;
}
public synchronized void setActive (boolean active)
{
if (active != this.active)
{
this.active = active;
if (this.active)
{
synchronized (this.pingSettingsLock)
{
if (this.pingSettings == null)
{
this.pingSettings = new PingSettings ();
}
this.pingSettings.setActive (false);
this.pingSettings.setHostAddressesToMonitor (new String[] { this.ipv4AddressEth });
this.pingSettings.setActive (true);
}
}
else
{
synchronized (this.pingSettingsLock)
{
if (this.pingSettings != null)
{
this.pingSettings.setActive (false);
}
}
}
}
}
public String getName ()
{
return this.name;
}
public void setName (String name)
{
if (name == null)
throw new IllegalArgumentException ();
this.name = name;
}
public final String getRootPassword ()
{
return this.rootPassword;
}
public String getIpv4AddressEth ()
{
return this.ipv4AddressEth;
}
public void setIpv4AddressEth (String ipv4AddressEth)
{
if (ipv4AddressEth == null)
throw new IllegalArgumentException ();
if (! ipv4AddressEth.equals (this.ipv4AddressEth))
{
this.ipv4AddressEth = ipv4AddressEth;
}
}
public String getIpv4AddressWLAN ()
{
return this.ipv4AddressWLAN ;
}
public void setIpv4AddressWLAN (String ipv4AddressWLAN)
{
if (ipv4AddressWLAN == null)
throw new IllegalArgumentException ();
if (! ipv4AddressWLAN.equals (this.ipv4AddressWLAN))
{
this.ipv4AddressWLAN = ipv4AddressWLAN;
}
}
public boolean getReceives ()
{
return this.receives;
}
public void setReceives (boolean receives)
{
if (receives != this.receives)
{
this.receives = receives;
}
}
public int getRxPort ()
{
return this.rxPort;
}
public void setRxPort (int rxPort)
{
if (rxPort != this.rxPort)
{
this.rxPort = rxPort;
}
}
public boolean getTransmits ()
{
return this.transmits;
}
public void setTransmits (boolean transmits)
{
if (transmits != this.transmits)
{
this.transmits = transmits;
}
}
public int getTxPort ()
{
return this.txPort;
}
public void setTxPort (int txPort)
{
if (txPort != this.txPort)
{
this.txPort = txPort;
}
}
public PingStatus getPingStatus ()
{
if (! getActive ())
return PingStatus.UNKNOWN;
synchronized (this.pingSettingsLock)
{
if (this.pingSettings == null)
return PingStatus.UNKNOWN;
final PingStatus[] hostStatus = this.pingSettings.getHostStatus ();
if (hostStatus == null || hostStatus.length == 0)
return PingStatus.UNKNOWN;
return hostStatus[0];
}
}
}