/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.components.optimizer.execution.algorithms.registry; import java.util.Collection; import java.util.Map; import de.rcenvironment.components.optimizer.common.MethodDescription; import de.rcenvironment.components.optimizer.common.execution.OptimizerAlgorithmExecutor; import de.rcenvironment.core.component.api.ComponentException; import de.rcenvironment.core.component.execution.api.ComponentContext; import de.rcenvironment.core.datamodel.api.TypedDatum; /** * * Must be implemented for all bundles that provide methods to the optimizer. * * @author Sascha Zur */ public interface OptimizerAlgorithmExecutorFactory { /** * Method to identify the optimizer package providing optimization methods. * * @return package identifier this factory produces executors from */ String getOptimizerAlgorithmPackageIdentifier(); /** * Returns an instance for executing the methods of the implementing bundle. * * @param methodConfiguration : * @param outputValues : * @param input : * @param ci : * @param lowerMap map with lower bounds start values * @param upperMap map with upper bounds start values * @param stepValues for the algorithm * @return instance for executing methods * @throws ComponentException on unexpected errors when creating instance of {@link OptimizerAlgorithmExecutor} */ OptimizerAlgorithmExecutor createOptimizerAlgorithmExecutorInstance(Map<String, MethodDescription> methodConfiguration, Map<String, TypedDatum> outputValues, Collection<String> input, ComponentContext ci, Map<String, Double> upperMap, Map<String, Double> lowerMap, Map<String, Double> stepValues) throws ComponentException; }