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);
 
 }