package agg.xt_basis;
import java.util.Dictionary;
import java.util.Enumeration;
import java.util.Hashtable;
import agg.xt_basis.csp.Completion_CSP_NoBJ;
/**
* This class contains an instance of every available completion strategy
* associated with a minimal description. It provides the basic functionality to
* implement interactive strategy selection via a GUI.
*/
public class CompletionStrategySelector {
/**
* The dictionary of available Strategies, each associated with a short
* descriptive name.
*/
private static final Dictionary<MorphCompletionStrategy, String>
itsStrategies = new Hashtable<MorphCompletionStrategy, String>(2);
/** The default strategy. */
private static final MorphCompletionStrategy itsDefaultStrategy
// = new Completion_CSP();
// = new Completion_InjCSP();
= new Completion_NAC(new Completion_InjCSP(true)); // randomized CSP domain
static {
itsStrategies.put(itsDefaultStrategy, "CSP");
itsStrategies.put(new Completion_NAC(new Completion_CSP_NoBJ()),
"CSP w/o BJ");
// itsStrategies.put( new Completion_NAC( new Completion_SimpleBT() ),
// "Simple BT" );
}
/**
* Return an enumeration of available strategies. Enumeration elements are
* of type <code>MorphCompletionStrategy</code>.
*
* @see agg.xt_basis.MorphCompletionStrategy
*/
public static Enumeration<MorphCompletionStrategy> getStrategies() {
return itsStrategies.keys();
}
/** Return the default strategy. */
public static MorphCompletionStrategy getDefault() {
return itsDefaultStrategy;
}
/**
* Return a short descriptive name for the given strategy. This name is
* intended for use e.g. as a label in a GUI listbox.
*/
public static String getName(MorphCompletionStrategy strat) {
return strat.getName();
// return itsStrategies.get(strat);
}
}