view src/alice/test/dpp/datasegment/Philosophy.java @ 26:80023cb92594 draft

add some CodeSegment. ForkStateTake, CheckForkOwnerCodeSegment, TakeForkManager
author one
date Tue, 11 Dec 2012 16:07:41 +0900
parents dbc5c8e8e9c2
children
line wrap: on
line source

package alice.test.dpp.datasegment;

import org.msgpack.annotation.Message;
import org.msgpack.annotation.MessagePackOrdinalEnum;





@Message
public class Philosophy {

	@MessagePackOrdinalEnum
	public static enum State {
		THINK,
		TAKERIGHTFORK,
		TAKELEFTFORK,
		TAKEFORK,
		EAT,
		PUTFORK,
		PUTRIGHTFORK,
		PUTLEFTFORK;
	}

	private String name, leftFork, rightFork;
	private State state;
	public boolean hasRightFork = false;
	public boolean hasLeftFork = false;
	
	public Philosophy() {}
	
	public Philosophy(String n,String lFork, String rFork) {
		name = n;
		leftFork = lFork;
		rightFork = rFork;
		state = State.THINK;
	}

	public Philosophy(Philosophy p) {
		name = p.getName();
		leftFork = p.getLeftFork();
		rightFork = p.getRightFork();
	}
	
	public State getState() {
		return state;
	}
	
	public void setState(State s) {
		state = s;
	}
	
	public String getName() {
		return name;
	}

	public String getLeftFork() {
		return leftFork;
	}

	public String getRightFork() {
		return rightFork;
	}
	
	public void resetHasForkFlag() {
		hasRightFork = false;
		hasLeftFork = false;
	}
	
 	public void checkForkFlag(String fork) {
		if (rightFork.equals(fork)) {
			hasRightFork = true;
		} else if (leftFork.equals(fork)) {
			hasLeftFork = true;
		} else {}
	}
 	
 	
 	
}