Mercurial > hg > RemoteEditor > REPSessionManager
view rep/optimizers/REPCommandOptimizer.java @ 488:c49a86a7ab8f
termination of new merge command...
author | one |
---|---|
date | Thu, 21 Oct 2010 23:03:22 +0900 |
parents | f9fa876d3539 |
children |
line wrap: on
line source
package rep.optimizers; import java.util.List; import rep.REPCommand; public interface REPCommandOptimizer { // なんで、Interfaceじゃないの? // Interface じゃないせいで、NullOptimizer でも余計なコピーが生じている。 // 本来、最適化はコピーしながら作業するので、余計にコピーするのは良くない。 // まぁ、この方が安全臭いことはあるかも知れないけど。kono // リストとその中身のREPCommandをコピーするため. finalでよい? // 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); // } // 継承したクラスでこれを実装してください 直接cmdlistを返すのもあり. public List<REPCommand> optimize(List<REPCommand> cmdlist); }