view src/alice/test/dpp/codesegment/philosophy/ScheduleCodeSegment.java @ 25:f77f0bb99f35

modify each CodeSegment
author one
date Tue, 15 Jan 2013 16:41:57 +0900
parents da62aa1f4d87
children
line wrap: on
line source

package alice.test.dpp.codesegment.philosophy;

import alice.codesegment.CodeSegment;
import alice.datasegment.CommandType;
import alice.datasegment.Receiver;
import alice.test.dpp.codesegment.philosophy2.TakeRightForkCodeSegment;
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);
	}
	
}