diff src/main/java/christie/codegear/CodeGear.java @ 3:e3bb0eea73f2

resolve Annotation error and TestCodeGear is working
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Wed, 13 Dec 2017 17:24:14 +0900
parents bacdcb5e6dcf
children 605f1b0576c2
line wrap: on
line diff
--- a/src/main/java/christie/codegear/CodeGear.java	Tue Dec 12 16:48:30 2017 +0900
+++ b/src/main/java/christie/codegear/CodeGear.java	Wed Dec 13 17:24:14 2017 +0900
@@ -3,7 +3,6 @@
 import christie.annotation.Take;
 import christie.datagear.DataGear;
 import christie.datagear.DataGearManager;
-import christie.datagear.StringData;
 
 import java.lang.reflect.Field;
 import java.util.ArrayList;
@@ -13,27 +12,27 @@
  * Created by e125769 on 12/7/17.
  * Annotationからのinputコマンドの生成、揃ったDataGearの値を返す
  */
-public interface CodeGear extends Runnable{
-    InputDataGear idg = new InputDataGear();
-    OutputDataGear odg = new OutputDataGear();
-    ArrayList<Command> commandList = new ArrayList<Command>();
+public abstract class CodeGear implements Runnable {
+    public InputDataGear idg = new InputDataGear();
+    public OutputDataGear odg = new OutputDataGear();
+    public ArrayList<Command> commandList = new ArrayList<Command>();
+    public CodeGearManager cgm;
 
-    default void start(CodeGearManager cgm){//AnnotationからInputDataGearをセット
+    public CodeGear(CodeGearManager cgm){//AnnotationからInputDataGearをセット
+        this.cgm = cgm;
         odg.initODG(cgm, this);
+
         for (Field field : this.getClass().getDeclaredFields()) {
-            if (field.isAnnotationPresent(Take.class)){//何故かここに入らない
-                if (!field.getType().isInterface()){
-                    System.out.println("DataGearではありません");
-                }
+            if (field.isAnnotationPresent(Take.class)){
                 Take ano = field.getAnnotation(Take.class);
-                System.out.println(ano.value());
                 commandList.add(new Command(this, null, "local", ano.value(), CommandType.TAKE));
             }
         }
-        idg.finishInput(cgm, this, commandList);
+
+        idg.finishInput(this.cgm, this, commandList);
     }
 
-    default void setInputValue(){//Annotationから揃ったInputDataGearの値をキャスト
+    public void setInputValue(){//Annotationから揃ったInputDataGearの値をキャスト
         for (Field field : this.getClass().getDeclaredFields()) {
             field.setAccessible(true);
             if (field.isAnnotationPresent(Take.class)){
@@ -47,12 +46,6 @@
         }
     }
 
-    default void put(String key, Object data){
-        odg.put(key, data);
-    }
-
-    default void put(String dist, String key, Object data){
-        odg.put(dist, key, data);
-    }
+    public void run(){}
 
 }