view rep/optimizers/REPCommandOptimizer.java @ 471:d2762d669617

sleep command to wait for singleton prevention
author one
date Tue, 12 Oct 2010 10:19:59 +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);

}