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