Mercurial > hg > Members > nobuyasu > Alice > DPPAlice
view src/alice/test/dpp/codesegment/philosophy2/TakeLeftForkCodeSegment.java @ 30:5eb22e2f7169 draft
merge 28, 29
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 29 Jan 2013 17:17:44 +0900 |
parents | src/alice/test/dpp/codesegment/philosophy/TakeLeftForkCodeSegment.java@d45de183af46 src/alice/test/dpp/codesegment/philosophy/TakeLeftForkCodeSegment.java@f77f0bb99f35 |
children |
line wrap: on
line source
package alice.test.dpp.codesegment.philosophy2; import alice.codesegment.CodeSegment; import alice.datasegment.CommandType; import alice.datasegment.Receiver; import alice.test.dpp.codesegment.philosophy.EatCodeSegment; import alice.test.dpp.datasegment.Fork; import alice.test.dpp.datasegment.Philosophy; public class TakeLeftForkCodeSegment extends CodeSegment { Receiver arg1 = ids.create(CommandType.TAKE); Receiver arg2 = ids.create(CommandType.TAKE); public TakeLeftForkCodeSegment(String pName, String forkName) { arg1.setKey(pName); arg2.setKey(forkName); } @Override public void run() { Philosophy phil = arg1.asClass(Philosophy.class); Fork fork = arg2.asClass(Fork.class); System.out.println(phil.getName() + " take left fork."); if (fork.takeFork(phil.getName())) { phil.setState(Philosophy.State.EAT); new EatCodeSegment(phil.getName()); } else { new TakeLeftForkCodeSegment(phil.getName(), phil.getLeftFork()); } ods.update("local", phil.getName(), phil); ods.update("local", fork.getForkName(), fork); } }