diff src/main/java/christie/codegear/CodeGear.java @ 21:5baccb8f7fbd

add RemoteTake, but it isn't working
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Mon, 22 Jan 2018 23:22:09 +0900
parents 7b45ccc0f70e
children 77583ea56656
line wrap: on
line diff
--- a/src/main/java/christie/codegear/CodeGear.java	Mon Jan 22 15:34:38 2018 +0900
+++ b/src/main/java/christie/codegear/CodeGear.java	Mon Jan 22 23:22:09 2018 +0900
@@ -1,14 +1,15 @@
 package christie.codegear;
 
 import christie.annotation.Peek;
+import christie.annotation.RemoteTake;
 import christie.annotation.Take;
-import christie.daemon.ChristieDaemon;
+import christie.datagear.Command;
+import christie.datagear.CommandType;
 import christie.datagear.DataGear;
 import christie.datagear.DataGearManager;
 
 import java.lang.reflect.Field;
 import java.util.ArrayList;
-import java.util.HashMap;
 
 /**
  * Created by e125769 on 12/7/17.
@@ -33,19 +34,22 @@
         for (Field field : this.getClass().getDeclaredFields()) {//AnnotationからInputDataGearをセット
             if (field.isAnnotationPresent(Take.class)) {
                 Take ano = field.getAnnotation(Take.class);
-                checkAndSetCommand(field, ano.value());
+                checkAndSetCommand(field, "local", ano.value());
             } else if (field.isAnnotationPresent(Peek.class)) {
                 Peek ano = field.getAnnotation(Peek.class);
-                checkAndSetCommand(field, ano.value());
+                checkAndSetCommand(field, "local", ano.value());
+            } else if (field.isAnnotationPresent(RemoteTake.class)) {
+                RemoteTake ano = field.getAnnotation(RemoteTake.class);
+                checkAndSetCommand(field, ano.dsmName(), ano.key());
             }
         }
 
         idg.finishInput(cgm, commandList);
     }
 
-    public void checkAndSetCommand(Field field, String name){
+    public void checkAndSetCommand(Field field, String dsmName, String key){
 
-        if (!field.getName().equals(name)){
+        if (!field.getName().equals(key)){
             throw new IllegalArgumentException("key and DataGearName do not match");
         }
 
@@ -60,7 +64,7 @@
             throw new NullPointerException("please initialize DataGear");
         }
 
-        commandList.add(new Command(this, dg, cgm.cgmID,"local", name, CommandType.TAKE));
+        commandList.add(new Command(CommandType.TAKE, this, cgm.cgmID, dsmName, key, dg));
     }
 
     public DataGearManager getLocalDGM() {