package NetworkAdapter.Implementation; import EnvironmentPluginAPI.Exceptions.TechnicalException; import EnvironmentPluginAPI.CustomNetworkMessages.NetworkMessage; import NetworkAdapter.Interface.Exceptions.ConnectionLostException; import NetworkAdapter.Interface.Exceptions.NotConnectedException; import NetworkAdapter.Interface.INetworkMessageReceivedEventHandler; import NetworkAdapter.Interface.IServerNetworkAdapter; import NetworkAdapter.Interface.MessageChannel; import ZeroTypes.Settings.SettingException; import ZeroTypes.TransportTypes.TNetworkClient; import java.util.List; public class ServerNetworkAdapterComponent implements IServerNetworkAdapter { ServerNetworkAdapterUseCase serverNetworkAdapterUseCase; public ServerNetworkAdapterComponent() throws TechnicalException, SettingException { serverNetworkAdapterUseCase = new ServerNetworkAdapterUseCase(); } /** * <b>For unit testing ONLY!!!</b> * @param port */ public ServerNetworkAdapterComponent(int port) { serverNetworkAdapterUseCase = new ServerNetworkAdapterUseCase(port); } @Override public void subscribeForNetworkMessageReceivedEvent(INetworkMessageReceivedEventHandler eventHandler, Class messageType) { serverNetworkAdapterUseCase.subscribeForNetworkMessageReceivedEvent(eventHandler, messageType); } @Override public void startHosting() throws TechnicalException, ConnectionLostException { serverNetworkAdapterUseCase.startHosting(); } @Override public synchronized void sendNetworkMessage(NetworkMessage message, MessageChannel channel) throws NotConnectedException, ConnectionLostException { serverNetworkAdapterUseCase.sendNetworkMessage(message, channel); } @Override public List<TNetworkClient> getConnectedClients() { return serverNetworkAdapterUseCase.getConnectedClients(); } @Override public void stopHosting() { serverNetworkAdapterUseCase.stopHosting(); } @Override public void setContextClassLoader(ClassLoader classLoader) { serverNetworkAdapterUseCase.setContextClassLoader(classLoader); } }