diff src/main/java/christie/codegear/CodeGear.java @ 25:76fac42a840e

work RemoteTakeTest
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Fri, 26 Jan 2018 18:03:36 +0900
parents 695705dba324
children bf8ac57409af
line wrap: on
line diff
--- a/src/main/java/christie/codegear/CodeGear.java	Thu Jan 25 23:02:02 2018 +0900
+++ b/src/main/java/christie/codegear/CodeGear.java	Fri Jan 26 18:03:36 2018 +0900
@@ -5,6 +5,7 @@
 import christie.annotation.Take;
 import christie.datagear.*;
 import christie.datagear.Command.Command;
+import christie.datagear.Command.PeekCommand;
 import christie.datagear.Command.TakeCommand;
 
 import java.lang.reflect.Field;
@@ -33,22 +34,21 @@
         for (Field field : this.getClass().getDeclaredFields()) {//AnnotationからInputDataGearをセット
             if (field.isAnnotationPresent(Take.class)) {
                 Take ano = field.getAnnotation(Take.class);
-                createCommand(field, "local", ano.value());
+                setTakeCommand("local", ano.value(), initDataGear(field, ano.value()));
             } else if (field.isAnnotationPresent(Peek.class)) {
                 Peek ano = field.getAnnotation(Peek.class);
-                createCommand(field, "local", ano.value());
+                setPeekCommand("local", ano.value(), initDataGear(field, ano.value()));
             } else if (field.isAnnotationPresent(RemoteTake.class)) {
                 RemoteTake ano = field.getAnnotation(RemoteTake.class);
-                createCommand(field, ano.dsmName(), ano.key());
+                setTakeCommand("local", ano.key(), initDataGear(field, ano.key()));
             }
-            //ToDo:add peek
+            //ToDo:add remote peek
         }
 
         idg.finishInput(cgm, commandList);
     }
 
-    public void createCommand(Field field, String toDsmName, String key){
-
+    public DataGear initDataGear(Field field, String key){
         if (!field.getName().equals(key)){
             throw new IllegalArgumentException("key and DataGearName do not match");
         }
@@ -64,7 +64,15 @@
             throw new NullPointerException("please initialize DataGear");
         }
 
-        commandList.add(new TakeCommand(this, cgm.cgmID, toDsmName, key, dg));
+        return dg;
+    }
+
+    public void setTakeCommand(String toDgmName, String key, DataGear dg){
+        commandList.add(new TakeCommand(this, cgm.cgmID, toDgmName, key, dg));
+    }
+
+    public void setPeekCommand(String toDgmName, String key, DataGear dg){
+        commandList.add(new PeekCommand(this, cgm.cgmID, toDgmName, key, dg));
     }
 
     public DataGearManager getLocalDGM() {