annotate src/alice/test/dpp/codesegment/TakeLeftForkCodeSegment.java @ 18:f0a2e2d2094e

add PutLeftForkCodeSegment, PutRightCodeSegment
author one
date Sun, 09 Dec 2012 23:00:34 +0900
parents 92cde6277018
children 6018e62cb198
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
1 package alice.test.dpp.codesegment;
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
2
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
3 import alice.codesegment.CodeSegment;
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
4 import alice.datasegment.CommandType;
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
5 import alice.datasegment.Receiver;
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
6 import alice.test.dpp.model.Fork;
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
7 import alice.test.dpp.model.Philosophy;
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
8
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
9 public class TakeLeftForkCodeSegment extends CodeSegment {
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
10
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
11 Receiver arg1 = ids.create(CommandType.TAKE);
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
12 Receiver arg2 = ids.create(CommandType.TAKE);
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
13
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
14 public TakeLeftForkCodeSegment(String pName, String forkName) {
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
15 arg1.setKey(pName);
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
16 arg2.setKey(forkName);
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
17 }
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
18
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
19 @Override
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
20 public void run() {
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
21 Philosophy phil = arg1.asClass(Philosophy.class);
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
22 Fork fork = arg2.asClass(Fork.class);
18
f0a2e2d2094e add PutLeftForkCodeSegment, PutRightCodeSegment
one
parents: 17
diff changeset
23 System.out.println(phil.getName() + " take left fork.");
16
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
24 if (fork.getFork(phil.getName())) {
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
25 phil.setState(Philosophy.State.EAT);
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
26 new EatCodeSegment(phil.getName());
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
27 } else {
17
92cde6277018 modified each CodeSegment linkage
one
parents: 16
diff changeset
28 new TakeLeftForkCodeSegment(phil.getName(), phil.getLeftFork());
16
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
29 }
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
30 ods.update("local", phil.getName(), phil);
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
31 ods.update("local", fork.getForkName(), fork);
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
32 }
f5c2fad58b7e add TakeRightForkCodeSegment TakeLeftForkCodeSegment
one
parents:
diff changeset
33 }