# HG changeset patch # User Nozomi Teruya # Date 1512227344 -32400 # Node ID 0423eb7fd9ee24181d648a3638760a6bca9f00c3 # Parent 69f9c5ff1df9a98302c41817add83d19fa18487a work create Receiver from Annotation. Please invoke setKey after create all Receiver. diff -r 69f9c5ff1df9 -r 0423eb7fd9ee src/main/java/alice/Annotation/AliceAnnotationTest.java --- a/src/main/java/alice/Annotation/AliceAnnotationTest.java Fri Dec 01 21:34:22 2017 +0900 +++ b/src/main/java/alice/Annotation/AliceAnnotationTest.java Sun Dec 03 00:09:04 2017 +0900 @@ -20,8 +20,6 @@ AliceAnnotation alice = new AliceAnnotation(); //alice.ods.put("hoge", "hogehogehgoe"); //alice.ods.put("huga", "hugahugahuga"); - //AliceAnnotationTest aliceTest = new AliceAnnotationTest(); - //aliceTest.test(alice); } public void test(AliceAnnotation alice){ diff -r 69f9c5ff1df9 -r 0423eb7fd9ee src/main/java/alice/codesegment/CodeSegment.java --- a/src/main/java/alice/codesegment/CodeSegment.java Fri Dec 01 21:34:22 2017 +0900 +++ b/src/main/java/alice/codesegment/CodeSegment.java Sun Dec 03 00:09:04 2017 +0900 @@ -17,28 +17,41 @@ public InputDataSegment ids = new InputDataSegment(this); public OutputDataSegment ods = new OutputDataSegment(); private ArrayList list = new ArrayList(); + private ArrayList metaReceivers = new ArrayList(); private int priority = Thread.NORM_PRIORITY;//? public CodeSegment(){ + createReceiver(); + setKey(); + } + + public void createReceiver(){ for (Field field : this.getClass().getDeclaredFields()) { if (field.isAnnotationPresent(Take.class)){ - System.out.println(field.getName()); - System.out.println(field.getType()); + metaReceivers.add(ids.create(CommandType.TAKE)); + } + } + } + + public void setKey(){ + int i = 0; + for (Field field : this.getClass().getDeclaredFields()) { + if (field.isAnnotationPresent(Take.class)){ Take ano = field.getAnnotation(Take.class); - System.out.println(ano.value()); field.setAccessible(true); - Receiver receiver = ids.create(CommandType.TAKE);; - receiver.setKey(ano.value()); + metaReceivers.get(i).setKey(ano.value()); try { - field.set(this, receiver); + field.set(this, metaReceivers.get(i)); + i++; } catch (IllegalAccessException e) { e.printStackTrace(); } } } + } public void execute() {