1 package net.obsearch.index.utils;
2
3 import java.util.HashSet;
4 import java.util.Set;
5
6 import org.opt4j.benchmark.DoubleCopyDecoder;
7 import org.opt4j.benchmark.DoubleString;
8 import org.opt4j.core.problem.Creator;
9 import org.opt4j.core.problem.Decoder;
10 import org.opt4j.core.problem.Evaluator;
11 import org.opt4j.core.problem.ProblemModule;
12
13 import com.google.inject.Inject;
14
15
16
17
18
19 public class OBOptimizerModule extends ProblemModule {
20 private static Creator<DoubleString> creator;
21 private static Evaluator<DoubleString> eval;
22 private static Class<? extends Decoder<DoubleString, DoubleString>> decoder;
23
24 public OBOptimizerModule(){
25
26 }
27
28
29
30
31
32
33
34
35 public OBOptimizerModule(Creator<DoubleString> creator, Evaluator<DoubleString> eval){
36 this.creator = creator;
37 this.eval = eval;
38 decoder = DoubleCopyDecoder.class;
39 }
40
41 @Override
42 protected void configure() {
43
44 Set<Class<?>> classes = new HashSet<Class<?>>() {
45 {
46 add(decoder);
47 }
48 };
49
50 for (Class<?> clazz : classes) {
51 bind(clazz).in(SINGLETON);
52 }
53
54 bind(Creator.class).toInstance(creator);
55 bind(Decoder.class).to(decoder);
56 bind(Evaluator.class).toInstance(eval);
57
58 }
59 @Override
60 protected void config() {
61 configure();
62
63 }
64
65 }