package org.lucci.madhoc.simulation.measure;

import org.lucci.madhoc.simulation.projection.Projection;


/*
 * Created on Jul 26, 2004
 */

/**
 * @author luc.hogie
 */
public abstract class NaturalIntegerSensor extends NaturalNumberSensor
{
    /* (non-Javadoc)
     * @see org.lucci.madhoc.simulation.Measure#isValueValid(java.lang.Object)
     */
    public boolean isValueValid(Object value)
    {
        if (super.isValueValid(value))
        {
            if (value != null)
            {
                double v = ((Double) value).doubleValue();
                return  v == (int) v;
            }
            else
            {
                return true;
            }
        }
        else
        {
            return false;
        }
    }
    
    public abstract Integer takeNewIntegerValue(Projection projection);

    @Override
    public final Double takeNewDoubleValue(Projection projection)
    {
        // TODO Auto-generated method stub
        return new Double(takeNewIntegerValue(projection));
    }
    
    

}