Mercurial > hg > RemoteEditor > REPSessionManager
diff rep/optimizers/REPCommandOptimizer.java @ 331:f9fa876d3539
Optimizer test
author | kono |
---|---|
date | Sun, 12 Oct 2008 09:43:17 +0900 |
parents | e44c1773d121 |
children |
line wrap: on
line diff
--- a/rep/optimizers/REPCommandOptimizer.java Sun Oct 12 04:23:57 2008 +0900 +++ b/rep/optimizers/REPCommandOptimizer.java Sun Oct 12 09:43:17 2008 +0900 @@ -1,11 +1,9 @@ package rep.optimizers; -import java.util.LinkedList; import java.util.List; - import rep.REPCommand; -public abstract class REPCommandOptimizer { +public interface REPCommandOptimizer { // なんで、Interfaceじゃないの? // Interface じゃないせいで、NullOptimizer でも余計なコピーが生じている。 @@ -16,16 +14,16 @@ // final だとoverride できないので、このコピーを外すことは誰にも出来なくなって // しまう。kono - public final List<REPCommand> optimize(List<REPCommand> cmdlist){ - List<REPCommand> copied = new LinkedList<REPCommand>(); - for (REPCommand cmd: cmdlist){ - // ちゃんと new しないといけません! - copied.add(new REPCommand(cmd)); - } - return optimize0(copied); - } +// public final List<REPCommand> optimize(List<REPCommand> cmdlist){ +// List<REPCommand> copied = new LinkedList<REPCommand>(); +// for (REPCommand cmd: cmdlist){ +// // ちゃんと new しないといけません! +// copied.add(new REPCommand(cmd)); +// } +// return optimize0(copied); +// } // 継承したクラスでこれを実装してください 直接cmdlistを返すのもあり. - abstract protected List<REPCommand> optimize0(List<REPCommand> cmdlist); + public List<REPCommand> optimize(List<REPCommand> cmdlist); }