package org.lucci.madhoc.simulation.measure;
import org.lucci.madhoc.simulation.Monitor;
import org.lucci.madhoc.simulation.projection.Projection;
public abstract class Sensor
{
public abstract String getName();
private Monitor monitor;
public abstract Class getValueClass();
public abstract Object takeNewValue(Projection projection);
public boolean isValueValid(Object value)
{
return value == null || value.getClass() == getValueClass();
}
public boolean equals(Object o)
{
return o.getClass() == getClass() && o.hashCode() == hashCode();
}
public int hashCode()
{
return getName().hashCode();
}
public MeasureHistory createMeasureHistory()
{
MeasureHistory r = new MeasureHistory();
r.setSensor(this);
return r;
}
public Monitor getMonitor()
{
return monitor;
}
public void setMonitor(Monitor simulationApplication)
{
this.monitor = simulationApplication;
}
}