diff src/main/java/christie/codegear/CodeGear.java @ 7:21372a589bd3

add CodeGearExecutor
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Wed, 27 Dec 2017 18:42:46 +0900
parents 3dcfe63d6394
children 4b608ce0c483
line wrap: on
line diff
--- a/src/main/java/christie/codegear/CodeGear.java	Wed Dec 27 00:06:50 2017 +0900
+++ b/src/main/java/christie/codegear/CodeGear.java	Wed Dec 27 18:42:46 2017 +0900
@@ -13,24 +13,21 @@
  * Created by e125769 on 12/7/17.
  * Annotationからのinputコマンドの生成、揃ったDataGearの値を返す
  */
-public abstract class CodeGear implements Runnable{
+public abstract class CodeGear{
     public InputDataGear idg = new InputDataGear(this);
     public OutputDataGear odg = new OutputDataGear(this);
     public ArrayList<Command> commandList = new ArrayList<Command>();
     public CodeGearManager cgm;
-    public DataGearManager dgm;
-    //public CodeGearExecutor cge;
+    public DataGearManager localDGM;
+    public CodeGearExecutor cge;
 
-    public CodeGear(CodeGearManager cgm){
+    public void setup(CodeGearManager cgm){
         this.cgm = cgm;
-        //this.cge = new CodeGearExecutor();
-        this.dgm = cgm.getDGM();
-    }
-
-    public void execute() {//AnnotationからInputDataGearをセット
+        this.cge = new CodeGearExecutor(this, this.cgm);
+        this.localDGM = cgm.getDGM();
         odg.initODG(cgm);
 
-        for (Field field : this.getClass().getDeclaredFields()) {
+        for (Field field : this.getClass().getDeclaredFields()) {//AnnotationからInputDataGearをセット
             DataGear dg = null;
             try {
                 dg = (DataGear) field.get(this);
@@ -50,4 +47,9 @@
         idg.finishInput(cgm, commandList);
     }
 
+    protected abstract void run(CodeGearManager cgm);
+
+    public DataGearManager dgm(String dest) {
+        return cgm.getDGM(dest);
+    }
 }