package net.beadsproject.touch.perform;

import java.util.Hashtable;
import java.util.List;
import java.util.Map;

public class Performer {

	//this gets handed to a PerformNode which operates on it.
	
	private static Map<Performer, PerformNode> performerToPerformNodeMap = new Hashtable<Performer, PerformNode>();
	
	
	public static void switchNodes(PerformNode toNode, Performer performer) {
		PerformNode fromNode = performerToPerformNodeMap.get(performer);
		List<PerformNode> listToRoot = toNode.getListToRoot();
		fromNode.disconnectRecursive(0, listToRoot, performer);
		toNode.connectRecursive(0, performer);
	}
	
	public static void enterNode(PerformNode to, Performer performer) {
		to.connectRecursive(0, performer);
		performerToPerformNodeMap.put(performer, to);
	}
	
	public static void exitNode(Performer performer) {	
		PerformNode fromNode = performerToPerformNodeMap.get(performer);
		fromNode.disconnectRecursive(0, performer);
	}
}
