package AgentSystemManagement.Implementation; import AgentProvider.Interface.IAgentProvider; import AgentSystemManagement.Interface.IAgentSystemManagement; import AgentSystemManagement.Plugins.PluginManager; import AgentSystemPluginAPI.Contract.IAgentSystem; import AgentSystemPluginAPI.Contract.TAgentSystemDescription; import EnvironmentPluginAPI.Exceptions.TechnicalException; import PluginLoader.Interface.Exceptions.PluginNotReadableException; import PluginLoader.Interface.IAgentSystemPluginLoader; import ZeroTypes.Settings.SettingException; import java.util.List; public class AgentSystemManagementComponent implements IAgentSystemManagement { private PluginManager pluginManager; private AgentSystemManagementUseCase agentSystemManagementUseCase; private final IAgentSystemPluginLoader agentSystemPluginLoader; public AgentSystemManagementComponent(IAgentProvider agentProvider, IAgentSystemPluginLoader agentSystemPluginLoader) throws TechnicalException, SettingException { this.agentSystemPluginLoader = agentSystemPluginLoader; pluginManager = new PluginManager(agentSystemPluginLoader); this.agentSystemManagementUseCase = new AgentSystemManagementUseCase(pluginManager, agentProvider, agentSystemPluginLoader); } public List<TAgentSystemDescription> getAvailableAgentSystems() throws TechnicalException, SettingException, PluginNotReadableException { return agentSystemManagementUseCase.getAvailableAgentSystems(); } public IAgentSystem getAgentSystem(TAgentSystemDescription toLoad) throws TechnicalException, PluginNotReadableException, SettingException { return agentSystemManagementUseCase.getAgentSystem(toLoad); } }