view src/alice/test/dpp/codesegment/ScheduleCodeSegment.java @ 16:f5c2fad58b7e

add TakeRightForkCodeSegment TakeLeftForkCodeSegment
author one
date Sun, 09 Dec 2012 22:29:59 +0900
parents 7e91e919a7de
children 6018e62cb198
line wrap: on
line source

package alice.test.dpp.codesegment;

import alice.codesegment.CodeSegment;
import alice.datasegment.CommandType;
import alice.datasegment.Receiver;
import alice.test.dpp.model.Philosophy;

public class ScheduleCodeSegment extends 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);
	}
	
}