package org.lucci.madhoc.simulation.projection;
import javax.naming.ConfigurationException;
import org.lucci.madhoc.network.Station;
import org.lucci.madhoc.network.net.NetworkingTechnology;
public class NetworkInterfaceBasedProjection extends Projection
{
private NetworkingTechnology acceptedNetworkType;
public boolean acceptComputer(Station computer)
{
return computer.getNetworkingUnit().getNetworkInterface(getAcceptedNetworkType()) != null;
}
public void configure() throws Throwable
{
String networkTypeName = getNetwork().getSimulation().getConfiguration().getConfigurationValue("network_interface_based_projection_network_type");
NetworkingTechnology type = (NetworkingTechnology) getNetwork().getNetworkTypes().get(networkTypeName);
if (type == null)
{
throw new ConfigurationException("Unknown network type: " + networkTypeName);
}
else
{
setAcceptedNetworkType(type);
}
}
public String getName()
{
return getAcceptedNetworkType().getName() + " devices";
}
public NetworkingTechnology getAcceptedNetworkType()
{
return acceptedNetworkType;
}
public void setAcceptedNetworkType(NetworkingTechnology acceptedNetworkType)
{
this.acceptedNetworkType = acceptedNetworkType;
}
}