package org.lucci.madhoc.simulation.projection;

import java.util.HashMap;
import java.util.Map;

import org.lucci.madhoc.network.Station;

/*
 * Created on Jun 20, 2005
 */

/**
 * @author luc.hogie
 */
public class RandomProjection extends Projection
{
    private Map map = new HashMap();

    /* (non-Javadoc)
     * @see org.lucci.madhoc.simulation.projection.Projection#getName()
     */
    public String getName()
    {
        return "Random projection";
    }

    /* (non-Javadoc)
     * @see org.lucci.madhoc.simulation.projection.Projection#acceptComputer(org.lucci.madhoc.network.Station)
     */
    public boolean acceptComputer(Station computer)
    {
        Boolean b = (Boolean) map.get(computer);
        
        if (b == null)
        {
            b = new Boolean(getNetwork().getSimulation().getRandomNumberGenerator().getRandomDouble() < 0.5); 
            map.put(computer, b);
            return b.booleanValue();
        }
        else
        {
            return b.booleanValue();
        }
    }

    /* (non-Javadoc)
     * @see org.lucci.madhoc.config.Configurable#configure()
     */
    public void configure() throws Throwable
    {
    }
}