package NetworkAdapter.Implementation; import EnvironmentPluginAPI.Exceptions.TechnicalException; import EnvironmentPluginAPI.CustomNetworkMessages.NetworkMessage; import NetworkAdapter.Interface.Exceptions.ConnectionLostException; import NetworkAdapter.Interface.Exceptions.HostUnreachableException; import NetworkAdapter.Interface.Exceptions.NotConnectedException; import NetworkAdapter.Interface.IClientNetworkAdapter; import NetworkAdapter.Interface.INetworkMessageReceivedEventHandler; import NetworkAdapter.Interface.MessageChannel; import java.security.InvalidParameterException; /** * Represents the implementation of the IClientNetworkAdapterInterface. */ public class ClientNetworkAdapterComponent implements IClientNetworkAdapter { private ClientNetworkAdapterUseCase clientNetworkAdapterUseCase; public ClientNetworkAdapterComponent() { clientNetworkAdapterUseCase = new ClientNetworkAdapterUseCase(); } @Override public boolean isConnected() { return clientNetworkAdapterUseCase.isConnected(); } @Override public void subscribeForNetworkMessageReceivedEvent(INetworkMessageReceivedEventHandler eventHandler, Class messageType) { clientNetworkAdapterUseCase.subscribeForNetworkMessageReceivedEvent(eventHandler, messageType); } @Override public void sendNetworkMessage(NetworkMessage message, MessageChannel channel) throws NotConnectedException, ConnectionLostException { clientNetworkAdapterUseCase.sendNetworkMessage(message, channel); } @Override public void connectToServer(String address, int port, String clientName) throws HostUnreachableException, InvalidParameterException, TechnicalException { clientNetworkAdapterUseCase.connectToServer(address, port, clientName); } @Override public int getClientId() throws NotConnectedException { return clientNetworkAdapterUseCase.getClientId(); } @Override public void disconnect() { clientNetworkAdapterUseCase.disconnect(); } @Override public void setContextClassLoader(ClassLoader classLoader) { clientNetworkAdapterUseCase.setContextClassLoader(classLoader); } }