package org.lucci.madhoc.simulation.random;

import org.lucci.madhoc.simulation.Configurable;
import org.lucci.madhoc.simulation.Simulation;

/*
 * Created on Apr 30, 2005
 */

/**
 * @author luc.hogie
 */
public class RandomNumberGenerator extends org.lucci.math.random.RandomNumberGenerator implements Configurable
{
    private Simulation simulation;

    /* (non-Javadoc)
     * @see org.lucci.madhoc.util.Configurable#configure(org.lucci.madhoc.util.Configuration)
     */
    public void configure() throws Throwable
    {
        String seed = getSimulation().getConfiguration().getString("random_number_generator_seed");

        if (seed.equalsIgnoreCase("time"))
        {
            setSeedingMode(RandomNumberGenerator.BASED_ON_LOCAL_TIME);
        }
        else if (seed.equalsIgnoreCase("ip"))
        {
            setSeedingMode(RandomNumberGenerator.BASED_ON_LOCAL_IP);
        }
        else if (seed.equalsIgnoreCase("time+ip"))
        {
            setSeedingMode(RandomNumberGenerator.BASED_ON_LOCAL_TIME_AND_IP);
        }
        else
        {
            getRandom().setSeed(seed.hashCode());
        }

    }

    public Simulation getSimulation()
    {
        return simulation;
    }
    public void setSimulation(Simulation simulation)
    {
        this.simulation = simulation;
    }
}