annotate rep/optimizers/REPCommandOptimizer.java @ 331:f9fa876d3539

Optimizer test
author kono
date Sun, 12 Oct 2008 09:43:17 +0900
parents e44c1773d121
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
223
3680d8357429 Optimizer of REPCommand
kent
parents:
diff changeset
1 package rep.optimizers;
3680d8357429 Optimizer of REPCommand
kent
parents:
diff changeset
2
3680d8357429 Optimizer of REPCommand
kent
parents:
diff changeset
3 import java.util.List;
3680d8357429 Optimizer of REPCommand
kent
parents:
diff changeset
4 import rep.REPCommand;
3680d8357429 Optimizer of REPCommand
kent
parents:
diff changeset
5
331
f9fa876d3539 Optimizer test
kono
parents: 249
diff changeset
6 public interface REPCommandOptimizer {
223
3680d8357429 Optimizer of REPCommand
kent
parents:
diff changeset
7
249
e44c1773d121 *** empty log message ***
kono
parents: 223
diff changeset
8 // なんで、Interfaceじゃないの?
e44c1773d121 *** empty log message ***
kono
parents: 223
diff changeset
9 // Interface じゃないせいで、NullOptimizer でも余計なコピーが生じている。
e44c1773d121 *** empty log message ***
kono
parents: 223
diff changeset
10 // 本来、最適化はコピーしながら作業するので、余計にコピーするのは良くない。
e44c1773d121 *** empty log message ***
kono
parents: 223
diff changeset
11 // まぁ、この方が安全臭いことはあるかも知れないけど。kono
e44c1773d121 *** empty log message ***
kono
parents: 223
diff changeset
12
223
3680d8357429 Optimizer of REPCommand
kent
parents:
diff changeset
13 // リストとその中身のREPCommandをコピーするため. finalでよい?
249
e44c1773d121 *** empty log message ***
kono
parents: 223
diff changeset
14
e44c1773d121 *** empty log message ***
kono
parents: 223
diff changeset
15 // final だとoverride できないので、このコピーを外すことは誰にも出来なくなって
e44c1773d121 *** empty log message ***
kono
parents: 223
diff changeset
16 // しまう。kono
331
f9fa876d3539 Optimizer test
kono
parents: 249
diff changeset
17 // public final List<REPCommand> optimize(List<REPCommand> cmdlist){
f9fa876d3539 Optimizer test
kono
parents: 249
diff changeset
18 // List<REPCommand> copied = new LinkedList<REPCommand>();
f9fa876d3539 Optimizer test
kono
parents: 249
diff changeset
19 // for (REPCommand cmd: cmdlist){
f9fa876d3539 Optimizer test
kono
parents: 249
diff changeset
20 // // ちゃんと new しないといけません!
f9fa876d3539 Optimizer test
kono
parents: 249
diff changeset
21 // copied.add(new REPCommand(cmd));
f9fa876d3539 Optimizer test
kono
parents: 249
diff changeset
22 // }
f9fa876d3539 Optimizer test
kono
parents: 249
diff changeset
23 // return optimize0(copied);
f9fa876d3539 Optimizer test
kono
parents: 249
diff changeset
24 // }
223
3680d8357429 Optimizer of REPCommand
kent
parents:
diff changeset
25
3680d8357429 Optimizer of REPCommand
kent
parents:
diff changeset
26 // 継承したクラスでこれを実装してください 直接cmdlistを返すのもあり.
331
f9fa876d3539 Optimizer test
kono
parents: 249
diff changeset
27 public List<REPCommand> optimize(List<REPCommand> cmdlist);
223
3680d8357429 Optimizer of REPCommand
kent
parents:
diff changeset
28
3680d8357429 Optimizer of REPCommand
kent
parents:
diff changeset
29 }