package PluginLoader.Implementation; import EnvironmentPluginAPI.Contract.*; import EnvironmentPluginAPI.Exceptions.CorruptConfigurationFileException; import EnvironmentPluginAPI.Exceptions.TechnicalException; import EnvironmentPluginAPI.CustomNetworkMessages.NetworkMessage; import EnvironmentPluginAPI.Service.AbstractVisualizeReplayPanel; import EnvironmentPluginAPI.Service.ICycleStatisticsSaver; import EnvironmentPluginAPI.Service.IEnvironmentConfiguration; import EnvironmentPluginAPI.Service.IVisualizeReplay; import NetworkAdapter.Interface.IServerNetworkAdapter; import PluginLoader.Interface.Exceptions.PluginNotReadableException; import PluginLoader.Interface.IEnvironmentPluginLoader; import ZeroTypes.Settings.SettingException; import java.io.File; import java.util.List; /** * This class represents the EnvironmentPluginLoaderComponent. */ public class EnvironmentPluginLoaderComponent implements IEnvironmentPluginLoader { private EnvironmentPluginLoaderUseCase environmentPluginLoaderUseCase; public EnvironmentPluginLoaderComponent(IServerNetworkAdapter serverNetworkAdapter) throws TechnicalException, SettingException, PluginNotReadableException { environmentPluginLoaderUseCase = new EnvironmentPluginLoaderUseCase(serverNetworkAdapter); } @Override public List<TEnvironmentDescription> listAvailableEnvironments() throws TechnicalException, PluginNotReadableException, SettingException { return environmentPluginLoaderUseCase.listAvailableEnvironments(); } @Override public void loadEnvironmentPlugin(TEnvironmentDescription environment) throws TechnicalException, PluginNotReadableException { environmentPluginLoaderUseCase.loadEnvironmentPlugin(environment); } @Override public ClassLoader getUsedClassLoader() { return environmentPluginLoaderUseCase.getUsedClassLoader(); } @Override public List<IEnvironmentConfiguration> getAvailableConfigurations() throws CorruptConfigurationFileException, TechnicalException { return environmentPluginLoaderUseCase.getAvailableConfigurations(); } @Override public void saveConfiguration(IEnvironmentConfiguration environmentConfiguration) throws TechnicalException { environmentPluginLoaderUseCase.saveConfiguration(environmentConfiguration); } @Override public File getEnvironmentPluginPath(TEnvironmentDescription environmentDescription) throws TechnicalException, PluginNotReadableException { return environmentPluginLoaderUseCase.getEnvironmentPluginPath(environmentDescription); } @Override public IEnvironment createEnvironmentInstance(ICycleStatisticsSaver cycleStatisticsSaver) throws TechnicalException{ return environmentPluginLoaderUseCase.createEnvironmentInstance(cycleStatisticsSaver); } @Override public NetworkMessage createEnvironmentStateMessage(int clientId, IEnvironmentState environmentState) { return environmentPluginLoaderUseCase.createEnvironmentStateMessage(environmentState,clientId); } @Override public AbstractVisualizeReplayPanel getReplayVisualizationForSwing() { return environmentPluginLoaderUseCase.getReplayVisualizationForSwing(); } @Override public IVisualizeReplay getReplayVisualization() { return environmentPluginLoaderUseCase.getReplayVisualization(); } }