# HG changeset patch # User one # Date 1353830901 -32400 # Node ID 2db314b1a970511bfa3571538e90e7a63586da37 # Parent 2794091a7058d720923823c5a5cee0ef636bea72 add EatCodeSegment TakeForkCodeSegment, ForkState, Table diff -r 2794091a7058 -r 2db314b1a970 src/alice/test/dpp/codesegment/EatCodeSegment.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/alice/test/dpp/codesegment/EatCodeSegment.java Sun Nov 25 17:08:21 2012 +0900 @@ -0,0 +1,18 @@ +package alice.test.dpp.codesegment; + +import alice.codesegment.CodeSegment; +import alice.test.dpp.model.Philosophy; + +public class EatCodeSegment extends CodeSegment { + + Philosophy phil; + public EatCodeSegment(Philosophy p) { + phil = p; + } + + @Override + public void run() { + + } + +} diff -r 2794091a7058 -r 2db314b1a970 src/alice/test/dpp/codesegment/TakeForkCodeSegment.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/alice/test/dpp/codesegment/TakeForkCodeSegment.java Sun Nov 25 17:08:21 2012 +0900 @@ -0,0 +1,36 @@ +package alice.test.dpp.codesegment; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; +import alice.test.dpp.model.Fork; +import alice.test.dpp.model.Philosophy; + +public class TakeForkCodeSegment extends CodeSegment { + + Philosophy phil; + Receiver arg1 = ids.create(CommandType.TAKE); + Receiver arg2 = ids.create(CommandType.TAKE); + + public TakeForkCodeSegment(Philosophy p) { + phil = p; + arg1.setKey(phil.getLeftFork()); + arg2.setKey(phil.getRightFork()); + } + + @Override + public void run() { + System.out.println(phil + " is trying to take the fork."); + Fork leftFork = arg1.asClass(Fork.class); + Fork rightFork = arg2.asClass(Fork.class); + if (leftFork.getFork(phil) && rightFork.getFork(phil) ) { + new EatCodeSegment(phil); + } else { + leftFork.onTheTable(phil); + rightFork.onTheTable(phil); + } + ods.update("local", leftFork.getForkName(), leftFork); + ods.update("local", rightFork.getForkName(), rightFork); + } + +} diff -r 2794091a7058 -r 2db314b1a970 src/alice/test/dpp/model/ForkState.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/alice/test/dpp/model/ForkState.java Sun Nov 25 17:08:21 2012 +0900 @@ -0,0 +1,11 @@ +package alice.test.dpp.model; + +public enum ForkState { + + ON_THE_TABLE, + IN_THE_HAND; + + + + +} diff -r 2794091a7058 -r 2db314b1a970 src/alice/test/dpp/model/Table.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/alice/test/dpp/model/Table.java Sun Nov 25 17:08:21 2012 +0900 @@ -0,0 +1,7 @@ +package alice.test.dpp.model; + +public class Table { + + public static final String TABLE = "TABLE"; + +}