Mercurial > hg > Database > Christie
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() {