Mercurial > hg > Members > nobuyasu > Alice > DPPAlice
view src/alice/test/dpp/codesegment/philosophy2/TakeForkManagerCodeSegment.java @ 32:b4a700fd1bd8 draft default tip
move some files
author | one |
---|---|
date | Tue, 29 Jan 2013 17:33:35 +0900 |
parents | src/alice/test/dpp/codesegment/philosophy/TakeForkManagerCodeSegment.java@d45de183af46 |
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.Philosophy; public class TakeForkManagerCodeSegment extends CodeSegment { Receiver arg1 = ids.create(CommandType.TAKE); public TakeForkManagerCodeSegment(String pName) { arg1.setKey(pName); } @Override public void run() { Philosophy phil = arg1.asClass(Philosophy.class); if (phil.hasLeftFork && phil.hasRightFork) { phil.setState(Philosophy.State.EAT); new EatCodeSegment(phil.getName()); } else if (phil.hasRightFork) { phil.setState(Philosophy.State.TAKELEFTFORK); new TakeLeftForkCodeSegment(phil.getName(), phil.getLeftFork()); } else { phil.setState(Philosophy.State.TAKERIGHTFORK); new TakeRightForkCodeSegment(phil.getName(), phil.getRightFork()); } ods.update("local", phil.getName(), phil); } }