changeset 23:da62aa1f4d87

hg rename codesegment package
author one
date Mon, 10 Dec 2012 00:22:41 +0900
parents fd370b35fac1
children edd9ced13896
files src/alice/test/dpp/codesegment/DPPTestAlice.java src/alice/test/dpp/codesegment/EatCodeSegment.java src/alice/test/dpp/codesegment/PutForkCodeSegment.java src/alice/test/dpp/codesegment/PutLeftForkCodeSegment.java src/alice/test/dpp/codesegment/PutRightForkCodeSegment.java src/alice/test/dpp/codesegment/ScheduleCodeSegment.java src/alice/test/dpp/codesegment/StartCodeSegment.java src/alice/test/dpp/codesegment/TakeForkCodeSegment.java src/alice/test/dpp/codesegment/TakeLeftForkCodeSegment.java src/alice/test/dpp/codesegment/TakeRightForkCodeSegment.java src/alice/test/dpp/codesegment/ThinkCodeSegment.java src/alice/test/dpp/codesegment/philosophy/DPPTestAlice.java src/alice/test/dpp/codesegment/philosophy/EatCodeSegment.java src/alice/test/dpp/codesegment/philosophy/PutForkCodeSegment.java src/alice/test/dpp/codesegment/philosophy/PutLeftForkCodeSegment.java src/alice/test/dpp/codesegment/philosophy/PutRightForkCodeSegment.java src/alice/test/dpp/codesegment/philosophy/ScheduleCodeSegment.java src/alice/test/dpp/codesegment/philosophy/StartCodeSegment.java src/alice/test/dpp/codesegment/philosophy/TakeForkCodeSegment.java src/alice/test/dpp/codesegment/philosophy/TakeLeftForkCodeSegment.java src/alice/test/dpp/codesegment/philosophy/TakeRightForkCodeSegment.java src/alice/test/dpp/codesegment/philosophy/ThinkCodeSegment.java
diffstat 22 files changed, 339 insertions(+), 339 deletions(-) [+]
line wrap: on
line diff
--- a/src/alice/test/dpp/codesegment/DPPTestAlice.java	Mon Dec 10 00:19:27 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-package alice.test.dpp.codesegment;
-
-public class DPPTestAlice {
-
-	public static void main(String[] args) {
-		System.out.println("Start DPPTestAlice");
-		new StartCodeSegment().execute();
-	}
-}
--- a/src/alice/test/dpp/codesegment/EatCodeSegment.java	Mon Dec 10 00:19:27 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-package alice.test.dpp.codesegment;
-
-import alice.codesegment.CodeSegment;
-import alice.datasegment.CommandType;
-import alice.datasegment.Receiver;
-import alice.test.dpp.datasegment.Philosophy;
-
-public class EatCodeSegment extends CodeSegment {
-
-	Receiver arg1 = ids.create(CommandType.TAKE);
-	
-	public EatCodeSegment(String pName) {
-		arg1.setKey(pName);
-	}
-	
-	@Override
-	public void run() {
-		Philosophy phil = arg1.asClass(Philosophy.class);
-		System.out.println(phil.getName() + " is eating.");
-		phil.setState(Philosophy.State.PUTRIGHTFORK);
-		new PutRightForkCodeSegment(phil.getName(), phil.getRightFork());
-		ods.update("local", phil.getName(), phil);
-	}
-}
--- a/src/alice/test/dpp/codesegment/PutForkCodeSegment.java	Mon Dec 10 00:19:27 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-package alice.test.dpp.codesegment;
-
-import alice.codesegment.CodeSegment;
-import alice.datasegment.CommandType;
-import alice.datasegment.Receiver;
-import alice.test.dpp.datasegment.Fork;
-import alice.test.dpp.datasegment.Philosophy;
-
-public class PutForkCodeSegment extends CodeSegment {
-	/*
-	 *  Unuse CodeSegment
-	 */
-	Receiver arg1 = ids.create(CommandType.TAKE);
-	Receiver arg2 = ids.create(CommandType.TAKE);
-	Receiver arg3 = ids.create(CommandType.TAKE);
-	
-	public PutForkCodeSegment(String pName, String rFork, String lFork) {
-		arg1.setKey(pName);
-		arg2.setKey(lFork);
-		arg3.setKey(rFork);
-	}
-	
-	@Override
-	public void run() {
-		Philosophy phil = arg1.asClass(Philosophy.class);
-		Fork leftFork = arg2.asClass(Fork.class);
-		Fork rightFork = arg3.asClass(Fork.class);
-		System.out.println(phil.getName() +" put fork.");
-		leftFork.onTheTable(phil.getName());
-		rightFork.onTheTable(phil.getName());
-		phil.setState(Philosophy.State.THINK);
-		new ThinkCodeSegment(phil.getName());
-		ods.update("local", phil.getName(), phil);
-		ods.update("local", leftFork.getForkName(), leftFork);
-		ods.update("local", rightFork.getForkName(), rightFork);
-	}
-
-}
--- a/src/alice/test/dpp/codesegment/PutLeftForkCodeSegment.java	Mon Dec 10 00:19:27 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-package alice.test.dpp.codesegment;
-
-import alice.codesegment.CodeSegment;
-import alice.datasegment.CommandType;
-import alice.datasegment.Receiver;
-import alice.test.dpp.datasegment.Fork;
-import alice.test.dpp.datasegment.Philosophy;
-
-public class PutLeftForkCodeSegment extends CodeSegment {
-	
-	Receiver arg1 = ids.create(CommandType.TAKE);
-	Receiver arg2 = ids.create(CommandType.TAKE);
-	
-	public PutLeftForkCodeSegment(String pName, String fork) {
-		arg1.setKey(pName);
-		arg2.setKey(fork);
-	}
-	
-	@Override
-	public void run() {
-		Philosophy phil = arg1.asClass(Philosophy.class);
-		Fork fork = arg2.asClass(Fork.class);
-		System.out.println(phil.getName() +" put left fork.");
-		fork.onTheTable(phil.getName());
-		phil.setState(Philosophy.State.THINK);
-		new ThinkCodeSegment(phil.getName());
-		ods.update("local", phil.getName(), phil);
-		ods.update("local", fork.getForkName(), fork);
-	}
-}
--- a/src/alice/test/dpp/codesegment/PutRightForkCodeSegment.java	Mon Dec 10 00:19:27 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-package alice.test.dpp.codesegment;
-import alice.codesegment.CodeSegment;
-import alice.datasegment.CommandType;
-import alice.datasegment.Receiver;
-import alice.test.dpp.datasegment.Fork;
-import alice.test.dpp.datasegment.Philosophy;
-
-
-public class PutRightForkCodeSegment extends CodeSegment {
-	
-	Receiver arg1 = ids.create(CommandType.TAKE);
-	Receiver arg2 = ids.create(CommandType.TAKE);
-	
-	public PutRightForkCodeSegment(String pName, String fork) {
-		arg1.setKey(pName);
-		arg2.setKey(fork);
-	}
-	
-	@Override
-	public void run() {
-		Philosophy phil = arg1.asClass(Philosophy.class);
-		Fork fork = arg2.asClass(Fork.class);
-		System.out.println(phil.getName() +" put right fork.");
-		fork.onTheTable(phil.getName());
-		phil.setState(Philosophy.State.PUTLEFTFORK);
-		new PutLeftForkCodeSegment(phil.getName(), phil.getLeftFork());
-		ods.update("local", phil.getName(), phil);
-		ods.update("local", fork.getForkName(), fork);
-	}
-}
--- a/src/alice/test/dpp/codesegment/ScheduleCodeSegment.java	Mon Dec 10 00:19:27 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-package alice.test.dpp.codesegment;
-
-import alice.codesegment.CodeSegment;
-import alice.datasegment.CommandType;
-import alice.datasegment.Receiver;
-import alice.test.dpp.datasegment.Philosophy;
-
-public class ScheduleCodeSegment extends CodeSegment {
-	/*
-	 *  This CodeSegment is unuse CodeSegment.
-	 */
-	Receiver arg1 = ids.create(CommandType.TAKE);
-	
-	public ScheduleCodeSegment(String pName) {
-		arg1.setKey(pName);
-	}
-	
-	@Override
-	public void run() {
-		Philosophy phil = arg1.asClass(Philosophy.class);	
-		switch(phil.getState()) {
-		case THINK:
-			new ThinkCodeSegment(phil.getName());
-			break;
-		case TAKERIGHTFORK:
-			new TakeRightForkCodeSegment(phil.getName(), phil.getRightFork());
-			break;
-		case TAKELEFTFORK:
-			new TakeRightForkCodeSegment(phil.getName(), phil.getLeftFork());
-			break;
-/*			
-		case TAKEFORK:
-			new TakeForkCodeSegment(phil.getName(), phil.getRightFork(), phil.getLeftFork() );
-			break;
-*/
-		case EAT:
-			new EatCodeSegment(phil.getName());
-			break;
-		case PUTFORK:
-			new PutForkCodeSegment(phil.getName(), phil.getRightFork(), phil.getLeftFork());
-			break;
-		default:
-			
-		}
-		ods.update("local", phil.getName(), phil);
-	}
-	
-}
--- a/src/alice/test/dpp/codesegment/StartCodeSegment.java	Mon Dec 10 00:19:27 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-package alice.test.dpp.codesegment;
-
-import alice.codesegment.CodeSegment;
-import alice.test.dpp.datasegment.Fork;
-import alice.test.dpp.datasegment.Philosophy;
-
-public class StartCodeSegment extends CodeSegment {
-
-	@Override
-	public void run() {
-		System.out.println("run StartCodeSegment");
-		
-		new ScheduleCodeSegment("phil1");
-		new ScheduleCodeSegment("phil2");
-		new ScheduleCodeSegment("phil3");
-		
-		ods.update("local", "phil1", new Philosophy("phil1","fork1","fork2"));
-		ods.update("local", "phil2", new Philosophy("phil2","fork2","fork3"));
-		ods.update("local", "phil3", new Philosophy("phil3","fork3","fork1"));
-		ods.update("local", "fork1", new Fork("fork1"));
-		ods.update("local", "fork2", new Fork("fork2"));
-		ods.update("local", "fork3", new Fork("fork3"));
-
-	}
-
-}
--- a/src/alice/test/dpp/codesegment/TakeForkCodeSegment.java	Mon Dec 10 00:19:27 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-package alice.test.dpp.codesegment;
-
-import alice.codesegment.CodeSegment;
-import alice.datasegment.CommandType;
-import alice.datasegment.Receiver;
-import alice.test.dpp.datasegment.Fork;
-import alice.test.dpp.datasegment.Philosophy;
-
-public class TakeForkCodeSegment extends CodeSegment {
-
-	/*
-	 * Unuse CodeSegment
-	 */
-	Receiver arg1 = ids.create(CommandType.TAKE);
-	Receiver arg2 = ids.create(CommandType.TAKE);
-	Receiver arg3 = ids.create(CommandType.TAKE);
-
-	public TakeForkCodeSegment(String pName, String rFork, String lFork) {
-		arg1.setKey(pName);
-		// dead lock
-		arg2.setKey(rFork);
-		arg3.setKey(lFork);
-	}
-	
-	@Override
-	public void run() {
-		Philosophy phil = arg1.asClass(Philosophy.class);
-		Fork rightFork = arg2.asClass(Fork.class);
-		Fork leftFork = arg3.asClass(Fork.class);
-		System.out.println(phil.getName() + " is trying to take the fork.");
-
-		if (leftFork.getFork(phil.getName()) && rightFork.getFork(phil.getName()) ) {
-			phil.setState(Philosophy.State.EAT);
-		} else {
-			leftFork.onTheTable(phil.getName());
-			rightFork.onTheTable(phil.getName());
-		}
-
-		new ScheduleCodeSegment(phil.getName());
-		ods.update("local", phil.getName(), phil);
-		ods.update("local", leftFork.getForkName(), leftFork);
-		ods.update("local", rightFork.getForkName(), rightFork);
-	}
-}
--- a/src/alice/test/dpp/codesegment/TakeLeftForkCodeSegment.java	Mon Dec 10 00:19:27 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-package alice.test.dpp.codesegment;
-
-import alice.codesegment.CodeSegment;
-import alice.datasegment.CommandType;
-import alice.datasegment.Receiver;
-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.getFork(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);
-	}
-}
--- a/src/alice/test/dpp/codesegment/TakeRightForkCodeSegment.java	Mon Dec 10 00:19:27 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-package alice.test.dpp.codesegment;
-
-import alice.codesegment.CodeSegment;
-import alice.datasegment.CommandType;
-import alice.datasegment.Receiver;
-import alice.test.dpp.datasegment.Fork;
-import alice.test.dpp.datasegment.Philosophy;
-
-public class TakeRightForkCodeSegment extends CodeSegment {
-
-	Receiver arg1 = ids.create(CommandType.TAKE);
-	Receiver arg2 = ids.create(CommandType.TAKE);
-	
-	public TakeRightForkCodeSegment(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);
-		if (fork.getFork(phil.getName())) {
-			phil.setState(Philosophy.State.TAKELEFTFORK);
-			new TakeLeftForkCodeSegment(phil.getName(), phil.getLeftFork());
-		} else { 
-			new TakeRightForkCodeSegment(phil.getName(), phil.getRightFork());
-		}
-		ods.update("local", phil.getName(), phil);
-		ods.update("local", fork.getForkName(), fork);
-	}
-}
--- a/src/alice/test/dpp/codesegment/ThinkCodeSegment.java	Mon Dec 10 00:19:27 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-package alice.test.dpp.codesegment;
-
-import alice.codesegment.CodeSegment;
-import alice.datasegment.CommandType;
-import alice.datasegment.Receiver;
-import alice.test.dpp.datasegment.Philosophy;
-
-public class ThinkCodeSegment extends CodeSegment {
-
-	Receiver arg1 = ids.create(CommandType.TAKE);
-
-	public ThinkCodeSegment(String pName) {
-		arg1.setKey(pName);
-	}
-
-	@Override
-	public void run() {
-		Philosophy phil = arg1.asClass(Philosophy.class);		
-		System.out.println(phil.getName() + " is thinking");
-		phil.setState(Philosophy.State.TAKERIGHTFORK);
-		new TakeRightForkCodeSegment(phil.getName(), phil.getRightFork());
-		ods.update("local", phil.getName(), phil);
-	}
-	
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/alice/test/dpp/codesegment/philosophy/DPPTestAlice.java	Mon Dec 10 00:22:41 2012 +0900
@@ -0,0 +1,9 @@
+package alice.test.dpp.codesegment.philosophy;
+
+public class DPPTestAlice {
+
+	public static void main(String[] args) {
+		System.out.println("Start DPPTestAlice");
+		new StartCodeSegment().execute();
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/alice/test/dpp/codesegment/philosophy/EatCodeSegment.java	Mon Dec 10 00:22:41 2012 +0900
@@ -0,0 +1,24 @@
+package alice.test.dpp.codesegment.philosophy;
+
+import alice.codesegment.CodeSegment;
+import alice.datasegment.CommandType;
+import alice.datasegment.Receiver;
+import alice.test.dpp.datasegment.Philosophy;
+
+public class EatCodeSegment extends CodeSegment {
+
+	Receiver arg1 = ids.create(CommandType.TAKE);
+	
+	public EatCodeSegment(String pName) {
+		arg1.setKey(pName);
+	}
+	
+	@Override
+	public void run() {
+		Philosophy phil = arg1.asClass(Philosophy.class);
+		System.out.println(phil.getName() + " is eating.");
+		phil.setState(Philosophy.State.PUTRIGHTFORK);
+		new PutRightForkCodeSegment(phil.getName(), phil.getRightFork());
+		ods.update("local", phil.getName(), phil);
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/alice/test/dpp/codesegment/philosophy/PutForkCodeSegment.java	Mon Dec 10 00:22:41 2012 +0900
@@ -0,0 +1,38 @@
+package alice.test.dpp.codesegment.philosophy;
+
+import alice.codesegment.CodeSegment;
+import alice.datasegment.CommandType;
+import alice.datasegment.Receiver;
+import alice.test.dpp.datasegment.Fork;
+import alice.test.dpp.datasegment.Philosophy;
+
+public class PutForkCodeSegment extends CodeSegment {
+	/*
+	 *  Unuse CodeSegment
+	 */
+	Receiver arg1 = ids.create(CommandType.TAKE);
+	Receiver arg2 = ids.create(CommandType.TAKE);
+	Receiver arg3 = ids.create(CommandType.TAKE);
+	
+	public PutForkCodeSegment(String pName, String rFork, String lFork) {
+		arg1.setKey(pName);
+		arg2.setKey(lFork);
+		arg3.setKey(rFork);
+	}
+	
+	@Override
+	public void run() {
+		Philosophy phil = arg1.asClass(Philosophy.class);
+		Fork leftFork = arg2.asClass(Fork.class);
+		Fork rightFork = arg3.asClass(Fork.class);
+		System.out.println(phil.getName() +" put fork.");
+		leftFork.onTheTable(phil.getName());
+		rightFork.onTheTable(phil.getName());
+		phil.setState(Philosophy.State.THINK);
+		new ThinkCodeSegment(phil.getName());
+		ods.update("local", phil.getName(), phil);
+		ods.update("local", leftFork.getForkName(), leftFork);
+		ods.update("local", rightFork.getForkName(), rightFork);
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/alice/test/dpp/codesegment/philosophy/PutLeftForkCodeSegment.java	Mon Dec 10 00:22:41 2012 +0900
@@ -0,0 +1,30 @@
+package alice.test.dpp.codesegment.philosophy;
+
+import alice.codesegment.CodeSegment;
+import alice.datasegment.CommandType;
+import alice.datasegment.Receiver;
+import alice.test.dpp.datasegment.Fork;
+import alice.test.dpp.datasegment.Philosophy;
+
+public class PutLeftForkCodeSegment extends CodeSegment {
+	
+	Receiver arg1 = ids.create(CommandType.TAKE);
+	Receiver arg2 = ids.create(CommandType.TAKE);
+	
+	public PutLeftForkCodeSegment(String pName, String fork) {
+		arg1.setKey(pName);
+		arg2.setKey(fork);
+	}
+	
+	@Override
+	public void run() {
+		Philosophy phil = arg1.asClass(Philosophy.class);
+		Fork fork = arg2.asClass(Fork.class);
+		System.out.println(phil.getName() +" put left fork.");
+		fork.onTheTable(phil.getName());
+		phil.setState(Philosophy.State.THINK);
+		new ThinkCodeSegment(phil.getName());
+		ods.update("local", phil.getName(), phil);
+		ods.update("local", fork.getForkName(), fork);
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/alice/test/dpp/codesegment/philosophy/PutRightForkCodeSegment.java	Mon Dec 10 00:22:41 2012 +0900
@@ -0,0 +1,30 @@
+package alice.test.dpp.codesegment.philosophy;
+import alice.codesegment.CodeSegment;
+import alice.datasegment.CommandType;
+import alice.datasegment.Receiver;
+import alice.test.dpp.datasegment.Fork;
+import alice.test.dpp.datasegment.Philosophy;
+
+
+public class PutRightForkCodeSegment extends CodeSegment {
+	
+	Receiver arg1 = ids.create(CommandType.TAKE);
+	Receiver arg2 = ids.create(CommandType.TAKE);
+	
+	public PutRightForkCodeSegment(String pName, String fork) {
+		arg1.setKey(pName);
+		arg2.setKey(fork);
+	}
+	
+	@Override
+	public void run() {
+		Philosophy phil = arg1.asClass(Philosophy.class);
+		Fork fork = arg2.asClass(Fork.class);
+		System.out.println(phil.getName() +" put right fork.");
+		fork.onTheTable(phil.getName());
+		phil.setState(Philosophy.State.PUTLEFTFORK);
+		new PutLeftForkCodeSegment(phil.getName(), phil.getLeftFork());
+		ods.update("local", phil.getName(), phil);
+		ods.update("local", fork.getForkName(), fork);
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/alice/test/dpp/codesegment/philosophy/ScheduleCodeSegment.java	Mon Dec 10 00:22:41 2012 +0900
@@ -0,0 +1,48 @@
+package alice.test.dpp.codesegment.philosophy;
+
+import alice.codesegment.CodeSegment;
+import alice.datasegment.CommandType;
+import alice.datasegment.Receiver;
+import alice.test.dpp.datasegment.Philosophy;
+
+public class ScheduleCodeSegment extends CodeSegment {
+	/*
+	 *  This CodeSegment is unuse CodeSegment.
+	 */
+	Receiver arg1 = ids.create(CommandType.TAKE);
+	
+	public ScheduleCodeSegment(String pName) {
+		arg1.setKey(pName);
+	}
+	
+	@Override
+	public void run() {
+		Philosophy phil = arg1.asClass(Philosophy.class);	
+		switch(phil.getState()) {
+		case THINK:
+			new ThinkCodeSegment(phil.getName());
+			break;
+		case TAKERIGHTFORK:
+			new TakeRightForkCodeSegment(phil.getName(), phil.getRightFork());
+			break;
+		case TAKELEFTFORK:
+			new TakeRightForkCodeSegment(phil.getName(), phil.getLeftFork());
+			break;
+/*			
+		case TAKEFORK:
+			new TakeForkCodeSegment(phil.getName(), phil.getRightFork(), phil.getLeftFork() );
+			break;
+*/
+		case EAT:
+			new EatCodeSegment(phil.getName());
+			break;
+		case PUTFORK:
+			new PutForkCodeSegment(phil.getName(), phil.getRightFork(), phil.getLeftFork());
+			break;
+		default:
+			
+		}
+		ods.update("local", phil.getName(), phil);
+	}
+	
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/alice/test/dpp/codesegment/philosophy/StartCodeSegment.java	Mon Dec 10 00:22:41 2012 +0900
@@ -0,0 +1,26 @@
+package alice.test.dpp.codesegment.philosophy;
+
+import alice.codesegment.CodeSegment;
+import alice.test.dpp.datasegment.Fork;
+import alice.test.dpp.datasegment.Philosophy;
+
+public class StartCodeSegment extends CodeSegment {
+
+	@Override
+	public void run() {
+		System.out.println("run StartCodeSegment");
+		
+		new ScheduleCodeSegment("phil1");
+		new ScheduleCodeSegment("phil2");
+		new ScheduleCodeSegment("phil3");
+		
+		ods.update("local", "phil1", new Philosophy("phil1","fork1","fork2"));
+		ods.update("local", "phil2", new Philosophy("phil2","fork2","fork3"));
+		ods.update("local", "phil3", new Philosophy("phil3","fork3","fork1"));
+		ods.update("local", "fork1", new Fork("fork1"));
+		ods.update("local", "fork2", new Fork("fork2"));
+		ods.update("local", "fork3", new Fork("fork3"));
+
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/alice/test/dpp/codesegment/philosophy/TakeForkCodeSegment.java	Mon Dec 10 00:22:41 2012 +0900
@@ -0,0 +1,44 @@
+package alice.test.dpp.codesegment.philosophy;
+
+import alice.codesegment.CodeSegment;
+import alice.datasegment.CommandType;
+import alice.datasegment.Receiver;
+import alice.test.dpp.datasegment.Fork;
+import alice.test.dpp.datasegment.Philosophy;
+
+public class TakeForkCodeSegment extends CodeSegment {
+
+	/*
+	 * Unuse CodeSegment
+	 */
+	Receiver arg1 = ids.create(CommandType.TAKE);
+	Receiver arg2 = ids.create(CommandType.TAKE);
+	Receiver arg3 = ids.create(CommandType.TAKE);
+
+	public TakeForkCodeSegment(String pName, String rFork, String lFork) {
+		arg1.setKey(pName);
+		// dead lock
+		arg2.setKey(rFork);
+		arg3.setKey(lFork);
+	}
+	
+	@Override
+	public void run() {
+		Philosophy phil = arg1.asClass(Philosophy.class);
+		Fork rightFork = arg2.asClass(Fork.class);
+		Fork leftFork = arg3.asClass(Fork.class);
+		System.out.println(phil.getName() + " is trying to take the fork.");
+
+		if (leftFork.getFork(phil.getName()) && rightFork.getFork(phil.getName()) ) {
+			phil.setState(Philosophy.State.EAT);
+		} else {
+			leftFork.onTheTable(phil.getName());
+			rightFork.onTheTable(phil.getName());
+		}
+
+		new ScheduleCodeSegment(phil.getName());
+		ods.update("local", phil.getName(), phil);
+		ods.update("local", leftFork.getForkName(), leftFork);
+		ods.update("local", rightFork.getForkName(), rightFork);
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/alice/test/dpp/codesegment/philosophy/TakeLeftForkCodeSegment.java	Mon Dec 10 00:22:41 2012 +0900
@@ -0,0 +1,33 @@
+package alice.test.dpp.codesegment.philosophy;
+
+import alice.codesegment.CodeSegment;
+import alice.datasegment.CommandType;
+import alice.datasegment.Receiver;
+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.getFork(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);
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/alice/test/dpp/codesegment/philosophy/TakeRightForkCodeSegment.java	Mon Dec 10 00:22:41 2012 +0900
@@ -0,0 +1,32 @@
+package alice.test.dpp.codesegment.philosophy;
+
+import alice.codesegment.CodeSegment;
+import alice.datasegment.CommandType;
+import alice.datasegment.Receiver;
+import alice.test.dpp.datasegment.Fork;
+import alice.test.dpp.datasegment.Philosophy;
+
+public class TakeRightForkCodeSegment extends CodeSegment {
+
+	Receiver arg1 = ids.create(CommandType.TAKE);
+	Receiver arg2 = ids.create(CommandType.TAKE);
+	
+	public TakeRightForkCodeSegment(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);
+		if (fork.getFork(phil.getName())) {
+			phil.setState(Philosophy.State.TAKELEFTFORK);
+			new TakeLeftForkCodeSegment(phil.getName(), phil.getLeftFork());
+		} else { 
+			new TakeRightForkCodeSegment(phil.getName(), phil.getRightFork());
+		}
+		ods.update("local", phil.getName(), phil);
+		ods.update("local", fork.getForkName(), fork);
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/alice/test/dpp/codesegment/philosophy/ThinkCodeSegment.java	Mon Dec 10 00:22:41 2012 +0900
@@ -0,0 +1,25 @@
+package alice.test.dpp.codesegment.philosophy;
+
+import alice.codesegment.CodeSegment;
+import alice.datasegment.CommandType;
+import alice.datasegment.Receiver;
+import alice.test.dpp.datasegment.Philosophy;
+
+public class ThinkCodeSegment extends CodeSegment {
+
+	Receiver arg1 = ids.create(CommandType.TAKE);
+
+	public ThinkCodeSegment(String pName) {
+		arg1.setKey(pName);
+	}
+
+	@Override
+	public void run() {
+		Philosophy phil = arg1.asClass(Philosophy.class);		
+		System.out.println(phil.getName() + " is thinking");
+		phil.setState(Philosophy.State.TAKERIGHTFORK);
+		new TakeRightForkCodeSegment(phil.getName(), phil.getRightFork());
+		ods.update("local", phil.getName(), phil);
+	}
+	
+}