annotate src/main/java/alice/datasegment/Receiver.java @ 651:058bff2123c8

fix getValue
author suruga
date Wed, 07 Feb 2018 19:02:56 +0900
parents 33f300d0720a
children fb1ddc5696ca
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
1 package alice.datasegment;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
2
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
3
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
4 import alice.codesegment.InputDataSegment;
636
33f300d0720a running CodeSegment by Annotation without create Receiver :D
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 525
diff changeset
5 import javassist.compiler.ast.ASTree;
651
058bff2123c8 fix getValue
suruga
parents: 636
diff changeset
6 import org.msgpack.type.NilValue;
058bff2123c8 fix getValue
suruga
parents: 636
diff changeset
7 import org.msgpack.type.Value;
058bff2123c8 fix getValue
suruga
parents: 636
diff changeset
8 import org.omg.CORBA.Object;
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
9
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
10 /**
523
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
11 * idsコマンド(create, setKey)の処理をする。コマンドの定義はids/LDSM内にある。
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
12 * MessagePack implementation and DataSegment Receiver
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
13 * @author kazz
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
14 *
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
15 */
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
16 public class Receiver {
452
f68d103498e0 refactor (InputDataSegment holder class changed)
sugi
parents: 417
diff changeset
17 private ReceiveData data;
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
18 public InputDataSegment ids;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
19 public int index;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
20 public String from;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
21 public CommandType type;
525
30a74eee59c7 working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 523
diff changeset
22 public String managerKey;//DSMを一意に特定。localかremoteか、どのremoteからか。
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
23 public String key;
523
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
24 public boolean compressedFlag = false;
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
25
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
26 public Receiver(InputDataSegment ids, CommandType type) {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
27 this.ids = ids;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
28 this.type = type;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
29 ids.register();
523
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
30 }
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
31
523
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
32 public Receiver(InputDataSegment ids, CommandType type, boolean compressedFlag) {
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
33 this.ids = ids;
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
34 this.type = type;
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
35 ids.register();
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
36 this.compressedFlag = compressedFlag;
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
37 }
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
38
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
39 public void setQuickKey(String managerKey, String key){
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
40 setQuickKey(managerKey, key, 0);
523
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
41 }//?
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
42
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
43 public void setQuickKey(String managerKey, String key, int index) {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
44 this.managerKey = managerKey;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
45 this.key = key;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
46 switch (type) {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
47 case PEEK:
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
48 ids.quickPeek(this);
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
49 break;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
50 case TAKE:
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
51 ids.quickTake(this);
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
52 break;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
53 default:
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
54 break;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
55 }
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
56 ids.setKey();
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
57 }
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
58
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
59 public void setKey(String managerKey, String key) {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
60 setKey(managerKey, key, 0);
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
61 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
62
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
63 public void setKey(String managerKey, String key, int index) {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
64 this.managerKey = managerKey;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
65 this.key = key;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
66 this.index = index;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
67 switch (type) {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
68 case PEEK:
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
69 ids.peek(this);
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
70 break;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
71 case TAKE:
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
72 ids.take(this);
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
73 break;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
74 default:
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
75 break;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
76 }
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
77 ids.setKey();
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
78 }
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
79
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
80 public void setKey(String key) {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
81 setKey(key, 0);
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
82 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
83
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
84 public void setKey(String key, int index) {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
85 this.key = key;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
86 this.index = index;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
87 switch (type) {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
88 case PEEK:
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
89 ids.peek(this);
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
90 break;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
91 case TAKE:
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
92 ids.take(this);
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
93 break;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
94 default:
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
95 break;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
96 }
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
97 ids.setKey();
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
98 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
99
523
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
100 //以下各型でDS本体を受け取る
452
f68d103498e0 refactor (InputDataSegment holder class changed)
sugi
parents: 417
diff changeset
101 public void setData(ReceiveData r) {
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
102 data = r;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
103 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
104
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
105 public int asInteger() {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
106 return data.asInteger();
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
107 }
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
108
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
109 public String asString() {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
110 return data.asString();
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
111 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
112
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
113 public <T> T asClass(Class<T> clazz) {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
114 return data.asClass(clazz);
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
115 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
116
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
117 public Object getObj() {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
118 return data.getObj();
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
119 }
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
120
651
058bff2123c8 fix getValue
suruga
parents: 636
diff changeset
121 public Value getVal() {
058bff2123c8 fix getValue
suruga
parents: 636
diff changeset
122 Value obj = data.getVal();
058bff2123c8 fix getValue
suruga
parents: 636
diff changeset
123 if (obj.getClass() == NilValue.class)
058bff2123c8 fix getValue
suruga
parents: 636
diff changeset
124 return null;
058bff2123c8 fix getValue
suruga
parents: 636
diff changeset
125 else
058bff2123c8 fix getValue
suruga
parents: 636
diff changeset
126 return obj;
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
127 }
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
128
458
bcf6f4a6fcd0 need set Meta DataSegment PUT API
sugi
parents: 452
diff changeset
129 public ReceiveData getReceiveData() {
bcf6f4a6fcd0 need set Meta DataSegment PUT API
sugi
parents: 452
diff changeset
130 return data;
bcf6f4a6fcd0 need set Meta DataSegment PUT API
sugi
parents: 452
diff changeset
131 }
525
30a74eee59c7 working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 523
diff changeset
132
30a74eee59c7 working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 523
diff changeset
133 public boolean isCompressed(){
30a74eee59c7 working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 523
diff changeset
134 return data.compressed();
30a74eee59c7 working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 523
diff changeset
135 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
136 }