annotate src/alice/codesegment/CodeSegment.java @ 335:2f003d5703d5 META_CODESEGMENT

Meta CodeSegment Test
author sugi
date Mon, 14 Apr 2014 15:46:29 +0900
parents f1f0638861ab
children 5fa184113850
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
1 package alice.codesegment;
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
2
248
913ee9dfec4f add recycle method
sugi
parents: 132
diff changeset
3 import java.util.ArrayList;
913ee9dfec4f add recycle method
sugi
parents: 132
diff changeset
4
3
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
5 import alice.codesegment.InputDataSegment;
248
913ee9dfec4f add recycle method
sugi
parents: 132
diff changeset
6 import alice.datasegment.Receiver;
3
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
7
21
145667a554ad run CodeSegment with ThreadPoolExecutor
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
8 public abstract class CodeSegment implements Runnable {
3
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
9
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
10 public InputDataSegment ids = new InputDataSegment(this);
132
1044a79ce4ef delete cs from OutputCodeSegment
sugi
parents: 39
diff changeset
11 public OutputDataSegment ods = new OutputDataSegment();
248
913ee9dfec4f add recycle method
sugi
parents: 132
diff changeset
12 public ArrayList<Receiver> list = new ArrayList<Receiver>();
335
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
13 public CodeSegment codeSegment;
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
14 private Class<CodeSegment> meta;
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
15 private boolean flag = false;
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
16
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
17 public void setKey(){
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
18 // for meta CodeSegment
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
19 }
3
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
20
19
e7867328a2fb change execute() API
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
21 public void execute() {
e7867328a2fb change execute() API
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
22 ids.receive();
e7867328a2fb change execute() API
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
23 }
248
913ee9dfec4f add recycle method
sugi
parents: 132
diff changeset
24
913ee9dfec4f add recycle method
sugi
parents: 132
diff changeset
25 public void recycle(){
314
f1f0638861ab ping responce receivable
sugi
parents: 313
diff changeset
26 ids.init();
248
913ee9dfec4f add recycle method
sugi
parents: 132
diff changeset
27 ids.setCounter(list.size());
276
3e0d1ac4f4a8 Refactor iterating process with for-each sentence.
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 248
diff changeset
28 for (Receiver receiver : list) {
248
913ee9dfec4f add recycle method
sugi
parents: 132
diff changeset
29 ids.recommand(receiver);
913ee9dfec4f add recycle method
sugi
parents: 132
diff changeset
30 }
913ee9dfec4f add recycle method
sugi
parents: 132
diff changeset
31 }
3
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
32
335
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
33 @SuppressWarnings("unchecked")
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
34 public <T> void setMeta(Class<T> cs){
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
35 flag = true;
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
36 meta = (Class<CodeSegment>) cs;
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
37 }
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
38
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
39 public boolean hasMeta(){
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
40 return flag;
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
41 }
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
42
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
43 public void setCodeSegment(CodeSegment cs){
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
44 codeSegment = cs;
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
45 }
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
46
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
47 public CodeSegment getCodeSegment(){
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
48 return codeSegment;
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
49 }
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
50
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
51 public Class<CodeSegment> getMetaClass(){
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
52 flag = false;
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
53 return meta;
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
54 }
2f003d5703d5 Meta CodeSegment Test
sugi
parents: 314
diff changeset
55
3
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
56 }