/*
 * Created on 12/05/2004
 *
 * To change the template for this generated file go to
 * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
 */
package modelo;

import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Map;

/**
 * @author german
 *
 * To change the template for this generated type comment go to
 * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
 */
public class AsignarRol extends FuncionAbstracta {

	public AsignarRol(){}

// Como parametro viene el proyecto, Usuario y rol
	public Object execute(Map m) {
		Proyecto project=(Proyecto)m.get(Constants.PROYECTO);
		Usuario usuario=(Usuario)m.get(Constants.USUARIO);
		Rol rol=(Rol)m.get(Constants.ROL);
		Collection rolMiembros=project.getRolesMiembros();
		Iterator it= rolMiembros.iterator();
//Verifica si el usuario es el primero al que se le asigna dicho rol en este proyecto
//Si es asi crea una nueva Instancia de RolMiembros para el proyecto que 
//viene como parametro.
		boolean found=false;
		RolMiembros rm=null;
		while (it.hasNext() && !found){
			rm=(RolMiembros) it.next();
			Rol r=rm.getRol();
			found=r.equals(rol);
		}
		if(found){
			rm.addUsuario(usuario);
		}
		else {
			rm=new RolMiembros(new LinkedList(),rol);
			rm.addUsuario(usuario);
		}
		return null;
	
		
	}

}