package org.lucci.madhoc.network.monitor.measure;

import org.lucci.madhoc.network.Connection;
import org.lucci.madhoc.simulation.measure.NaturalNumberSensor;
import org.lucci.madhoc.simulation.measure.Unit;
import org.lucci.madhoc.simulation.projection.Projection;

public class ConnectionAverageAgeSensor extends NaturalNumberSensor
{

    public String getName()
    {
        return ("connections average age");
    }

    public Unit getUnit()
    {
        return (Unit.NUMBER_OF_CONNECTION);
    }


    @Override
    public Double takeNewDoubleValue(Projection projection)
    {
        double sum = 0; // sum of all the connection dates
        double currentDate = projection.getNetwork().getSimulation()
                .getSimulatedTime();

        for (Connection myConnection : projection.getNetwork().getConnections())
        {
            sum += currentDate - myConnection.getCreationDate();
        }

        return sum / projection.getNetwork().getConnections().size();
    }
}