import madkit.kernel.GroupIdentifier;
import madkit.kernel.AgentAddress;

import java.util.Vector;



/**
 * Une classe permettant une gestion sécurisée dans les salles de ventes
 * 
 * @author Vincent Delord & Alexandre Lanoix
 * @version 1
 * @see madkit.kernel.GroupIdentifier
 */


public class MonGroupFilter implements GroupIdentifier{
	
    /** 
     * Liste d'adresses d'agent
     *
     */
    private Vector agentAddressList=new Vector(10,10);
    
    /** 
     * Mot de passe pour entrer dans le groupe
     *
     */
    private String password;
    
    /**
     * Type de rôle que l'on désire entrer: ici un agent Acheteur
     *
     */
    private String role;
	

    /******************** Constructeur **********************/
    
    /** 
     * Constructeur qui permet d'initialiser le grope en donnant
     *    - le mot de passe
     *    - le role
     */
    public MonGroupFilter(String p, String r){
	    password=p;
	    role=r;
    }
	

    /******************* Méthodes utiles *******************/

    /**
     * Méthode qui retourne un booléen pour autoriser un agent Acheteur à entrer dans une salle de vente
     *
     * @return un booléen
     */
    public boolean allowAgentToTakeRole(AgentAddress requester, String roleName, Object memberCard) {
	if (memberCard != null && memberCard instanceof String && roleName==role)
	    return (memberCard).equals(password);
	return false;
    }

    
    public boolean allowOverlooking(AgentAddress requester, Object accessCard) {
	return allowAgentToTakeRole(requester, null, accessCard);
    }
}
