package vroom.optimization.online.jmsa.vrp;
import vroom.common.modeling.util.ISolutionFactory;
import vroom.common.utilities.params.ClassParameterKey;
import vroom.common.utilities.params.GlobalParameters;
import vroom.common.utilities.params.ParameterKey;
import vroom.common.utilities.params.RequiredParameter;
import vroom.optimization.online.jmsa.IActualRequest;
import vroom.optimization.online.jmsa.MSAGlobalParameters;
/**
* Creation date: Mar 4, 2010 - 4:27:28 PM<br/>
* <code>VRPParameterKeys</code>
*
* @author Victor Pillac, <a href="http://uniandes.edu.co">Universidad de Los Andes</a>-<a
* href="http://copa.uniandes.edu.co">Copa</a> <a href="http://www.emn.fr">Ecole des Mines de Nantes</a>-<a
* href="http://www.irccyn.ec-nantes.fr/irccyn/d/en/equipes/Slp">SLP</a>
* @version 1.0
*/
public class VRPParameterKeys {
/** The class used to represent an actual request */
public static final ClassParameterKey<IActualRequest> ACTUAL_REQUEST_CLASS = new ClassParameterKey<IActualRequest>(
"ACTUAL_REQUEST_CLASS",
IActualRequest.class,
VRPActualRequest.class);
/** The implementation of {@link ISolutionFactory} that will be used to create new scenarios and routes */
@RequiredParameter
public static final ClassParameterKey<MSAVRPSolutionFactory> SCENARIO_FACTORY_CLASS = new ClassParameterKey<MSAVRPSolutionFactory>(
"SOLUTION_FACTORY_CLASS",
MSAVRPSolutionFactory.class,
MSAVRPSolutionFactory.class);
private static final ClassParameterKey<?>[] REQUIRED_PARAMETERS = new ClassParameterKey<?>[] {
ACTUAL_REQUEST_CLASS, SCENARIO_FACTORY_CLASS };
/**
* Add the required parameters for VRP applications to the global MSA parameters
*/
public static void registerRequiredParameters() {
for (ParameterKey<?> key : REQUIRED_PARAMETERS) {
GlobalParameters.addRequiredParameter(MSAGlobalParameters.class, key);
}
}
}